Update Variant
curl --request PUT \
--url https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId} \
--header 'Content-Type: application/json' \
--header 'X-Shop-API-Key: <x-shop-api-key>' \
--data '
{
"variantPrice": 123,
"stockQuantity": 123
}
'import requests
url = "https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}"
payload = {
"variantPrice": 123,
"stockQuantity": 123
}
headers = {
"X-Shop-API-Key": "<x-shop-api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-Shop-API-Key': '<x-shop-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({variantPrice: 123, stockQuantity: 123})
};
fetch('https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'variantPrice' => 123,
'stockQuantity' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Shop-API-Key: <x-shop-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}"
payload := strings.NewReader("{\n \"variantPrice\": 123,\n \"stockQuantity\": 123\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-Shop-API-Key", "<x-shop-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}")
.header("X-Shop-API-Key", "<x-shop-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"variantPrice\": 123,\n \"stockQuantity\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-Shop-API-Key"] = '<x-shop-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"variantPrice\": 123,\n \"stockQuantity\": 123\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Variant updated successfully",
"data": {
"variantId": 12,
"variantPrice": 1300000,
"stockQuantity": 25
}
}
{
"message": "FORM_VALIDATION_ERROR",
"code": 400,
"validationErrors": [
{
"path": [
"variantPrice"
],
"message": "Variant price must be greater than 0"
}
]
}
Product Variants
Update Variant
PUT
/
api
/
v1
/
hub
/
shop
/
{shopId}
/
product
/
{productId}
/
variants
/
{variantId}
Update Variant
curl --request PUT \
--url https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId} \
--header 'Content-Type: application/json' \
--header 'X-Shop-API-Key: <x-shop-api-key>' \
--data '
{
"variantPrice": 123,
"stockQuantity": 123
}
'import requests
url = "https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}"
payload = {
"variantPrice": 123,
"stockQuantity": 123
}
headers = {
"X-Shop-API-Key": "<x-shop-api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-Shop-API-Key': '<x-shop-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({variantPrice: 123, stockQuantity: 123})
};
fetch('https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'variantPrice' => 123,
'stockQuantity' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Shop-API-Key: <x-shop-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}"
payload := strings.NewReader("{\n \"variantPrice\": 123,\n \"stockQuantity\": 123\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-Shop-API-Key", "<x-shop-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}")
.header("X-Shop-API-Key", "<x-shop-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"variantPrice\": 123,\n \"stockQuantity\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sabivendor.com/api/v1/hub/shop/{shopId}/product/{productId}/variants/{variantId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-Shop-API-Key"] = '<x-shop-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"variantPrice\": 123,\n \"stockQuantity\": 123\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Variant updated successfully",
"data": {
"variantId": 12,
"variantPrice": 1300000,
"stockQuantity": 25
}
}
{
"message": "FORM_VALIDATION_ERROR",
"code": 400,
"validationErrors": [
{
"path": [
"variantPrice"
],
"message": "Variant price must be greater than 0"
}
]
}
Modifies pricing, status, or stock settings for an existing product SKU variant.
Authorizations
string
required
Your Secret API Key (
sk_live_... or sk_test_...) generated from the Developer dashboard. Must be kept secret.Path Parameters
string
required
The unique UUID of the shop.
number
required
The unique ID of the product.
number
required
The unique ID of the variant.
Request Body (JSON)
number
Updated variant price in Kobo.
number
Updated variant stock count.
{
"status": "success",
"message": "Variant updated successfully",
"data": {
"variantId": 12,
"variantPrice": 1300000,
"stockQuantity": 25
}
}
{
"message": "FORM_VALIDATION_ERROR",
"code": 400,
"validationErrors": [
{
"path": [
"variantPrice"
],
"message": "Variant price must be greater than 0"
}
]
}
⌘I