curl --request POST \
--url https://sandbox.api.riqra.com/products/{productId}/variants \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"sku": "<string>",
"price": 123,
"stock": 123,
"erpCode": "<string>",
"priceIsTaxExempt": false,
"salesUnitFactor": 1,
"jumpFactor": 1,
"images": [
{
"url": "<string>",
"order": 123
}
],
"order": 123,
"attributes": [
{
"name": "<string>",
"value": "<string>"
}
],
"weight": 123,
"length": 123,
"width": 123,
"height": 123
}
'import requests
url = "https://sandbox.api.riqra.com/products/{productId}/variants"
payload = {
"sku": "<string>",
"price": 123,
"stock": 123,
"erpCode": "<string>",
"priceIsTaxExempt": False,
"salesUnitFactor": 1,
"jumpFactor": 1,
"images": [
{
"url": "<string>",
"order": 123
}
],
"order": 123,
"attributes": [
{
"name": "<string>",
"value": "<string>"
}
],
"weight": 123,
"length": 123,
"width": 123,
"height": 123
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
sku: '<string>',
price: 123,
stock: 123,
erpCode: '<string>',
priceIsTaxExempt: false,
salesUnitFactor: 1,
jumpFactor: 1,
images: [{url: '<string>', order: 123}],
order: 123,
attributes: [{name: '<string>', value: '<string>'}],
weight: 123,
length: 123,
width: 123,
height: 123
})
};
fetch('https://sandbox.api.riqra.com/products/{productId}/variants', 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://sandbox.api.riqra.com/products/{productId}/variants",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'sku' => '<string>',
'price' => 123,
'stock' => 123,
'erpCode' => '<string>',
'priceIsTaxExempt' => false,
'salesUnitFactor' => 1,
'jumpFactor' => 1,
'images' => [
[
'url' => '<string>',
'order' => 123
]
],
'order' => 123,
'attributes' => [
[
'name' => '<string>',
'value' => '<string>'
]
],
'weight' => 123,
'length' => 123,
'width' => 123,
'height' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <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://sandbox.api.riqra.com/products/{productId}/variants"
payload := strings.NewReader("{\n \"sku\": \"<string>\",\n \"price\": 123,\n \"stock\": 123,\n \"erpCode\": \"<string>\",\n \"priceIsTaxExempt\": false,\n \"salesUnitFactor\": 1,\n \"jumpFactor\": 1,\n \"images\": [\n {\n \"url\": \"<string>\",\n \"order\": 123\n }\n ],\n \"order\": 123,\n \"attributes\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"weight\": 123,\n \"length\": 123,\n \"width\": 123,\n \"height\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<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.post("https://sandbox.api.riqra.com/products/{productId}/variants")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"sku\": \"<string>\",\n \"price\": 123,\n \"stock\": 123,\n \"erpCode\": \"<string>\",\n \"priceIsTaxExempt\": false,\n \"salesUnitFactor\": 1,\n \"jumpFactor\": 1,\n \"images\": [\n {\n \"url\": \"<string>\",\n \"order\": 123\n }\n ],\n \"order\": 123,\n \"attributes\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"weight\": 123,\n \"length\": 123,\n \"width\": 123,\n \"height\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.riqra.com/products/{productId}/variants")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sku\": \"<string>\",\n \"price\": 123,\n \"stock\": 123,\n \"erpCode\": \"<string>\",\n \"priceIsTaxExempt\": false,\n \"salesUnitFactor\": 1,\n \"jumpFactor\": 1,\n \"images\": [\n {\n \"url\": \"<string>\",\n \"order\": 123\n }\n ],\n \"order\": 123,\n \"attributes\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"weight\": 123,\n \"length\": 123,\n \"width\": 123,\n \"height\": 123\n}"
response = http.request(request)
puts response.read_body{
"errors": [
{
"message": "<string>",
"code": 123
}
]
}Crear
Crea una variante de un producto.
curl --request POST \
--url https://sandbox.api.riqra.com/products/{productId}/variants \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"sku": "<string>",
"price": 123,
"stock": 123,
"erpCode": "<string>",
"priceIsTaxExempt": false,
"salesUnitFactor": 1,
"jumpFactor": 1,
"images": [
{
"url": "<string>",
"order": 123
}
],
"order": 123,
"attributes": [
{
"name": "<string>",
"value": "<string>"
}
],
"weight": 123,
"length": 123,
"width": 123,
"height": 123
}
'import requests
url = "https://sandbox.api.riqra.com/products/{productId}/variants"
payload = {
"sku": "<string>",
"price": 123,
"stock": 123,
"erpCode": "<string>",
"priceIsTaxExempt": False,
"salesUnitFactor": 1,
"jumpFactor": 1,
"images": [
{
"url": "<string>",
"order": 123
}
],
"order": 123,
"attributes": [
{
"name": "<string>",
"value": "<string>"
}
],
"weight": 123,
"length": 123,
"width": 123,
"height": 123
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
sku: '<string>',
price: 123,
stock: 123,
erpCode: '<string>',
priceIsTaxExempt: false,
salesUnitFactor: 1,
jumpFactor: 1,
images: [{url: '<string>', order: 123}],
order: 123,
attributes: [{name: '<string>', value: '<string>'}],
weight: 123,
length: 123,
width: 123,
height: 123
})
};
fetch('https://sandbox.api.riqra.com/products/{productId}/variants', 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://sandbox.api.riqra.com/products/{productId}/variants",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'sku' => '<string>',
'price' => 123,
'stock' => 123,
'erpCode' => '<string>',
'priceIsTaxExempt' => false,
'salesUnitFactor' => 1,
'jumpFactor' => 1,
'images' => [
[
'url' => '<string>',
'order' => 123
]
],
'order' => 123,
'attributes' => [
[
'name' => '<string>',
'value' => '<string>'
]
],
'weight' => 123,
'length' => 123,
'width' => 123,
'height' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <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://sandbox.api.riqra.com/products/{productId}/variants"
payload := strings.NewReader("{\n \"sku\": \"<string>\",\n \"price\": 123,\n \"stock\": 123,\n \"erpCode\": \"<string>\",\n \"priceIsTaxExempt\": false,\n \"salesUnitFactor\": 1,\n \"jumpFactor\": 1,\n \"images\": [\n {\n \"url\": \"<string>\",\n \"order\": 123\n }\n ],\n \"order\": 123,\n \"attributes\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"weight\": 123,\n \"length\": 123,\n \"width\": 123,\n \"height\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<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.post("https://sandbox.api.riqra.com/products/{productId}/variants")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"sku\": \"<string>\",\n \"price\": 123,\n \"stock\": 123,\n \"erpCode\": \"<string>\",\n \"priceIsTaxExempt\": false,\n \"salesUnitFactor\": 1,\n \"jumpFactor\": 1,\n \"images\": [\n {\n \"url\": \"<string>\",\n \"order\": 123\n }\n ],\n \"order\": 123,\n \"attributes\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"weight\": 123,\n \"length\": 123,\n \"width\": 123,\n \"height\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.riqra.com/products/{productId}/variants")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sku\": \"<string>\",\n \"price\": 123,\n \"stock\": 123,\n \"erpCode\": \"<string>\",\n \"priceIsTaxExempt\": false,\n \"salesUnitFactor\": 1,\n \"jumpFactor\": 1,\n \"images\": [\n {\n \"url\": \"<string>\",\n \"order\": 123\n }\n ],\n \"order\": 123,\n \"attributes\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"weight\": 123,\n \"length\": 123,\n \"width\": 123,\n \"height\": 123\n}"
response = http.request(request)
puts response.read_body{
"errors": [
{
"message": "<string>",
"code": 123
}
]
}Autorizaciones
Todas las llamadas al API tienen que contener este header junto a la clave para poder autenticar y autorizar al cliente.
Parámetros de ruta
ID del producto.
Cuerpo
SKU(Stock Keeping Unit) de la variante del producto.
El precio se adjuntará a la lista de precios por defecto.
El stock se adjuntará al almacén por defecto.
ErpCode es el código utilizado internamente por su ERP para identificar la variante del producto.
Indica si el precio de la variante está o no exento del cálculo de impuestos.
La cantidad de ventas de este producto es un múltiplo de este valor.
El valor debe tener como máximo 2 valores decimales.
3.14
JumpFactor de un producto: es un múltiplo en el que saltará el contador. Ejemplo: si jumpFactor es 4, la cantidad mínima a comprar será 4, entonces el contador pasará de 4 a 8, de 8 a 12 y así sucesivamente.
El valor debe ser un número entero positivo.
x >= 14
5Show child attributes
Show child attributes
Orden de la variante entre todas las demás variantes, si existe más de una.
Atributos con sus valores que siguen los nombres dictados por el producto padre (principal).
Show child attributes
Show child attributes
Peso de la variante.
Largura de la variante.
Anchura de la variante.
Altura de la variante.
Respuesta
No Content