curl --request GET \
--url https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}import requests
url = "https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}', 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.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<this-id>",
"source_ref": {
"id": "<target-software-id>",
"model": "invoice"
},
"parent_id": "<commerce-product-id>",
"name": "T-Shirt - M",
"description": "Classic cotton T-Shirt, available in several sizes.",
"description_html": "<p>Classic cotton T-Shirt, available in several sizes.</p>",
"categories": [],
"created_on": "2026-01-15T10:30:00Z",
"sku": "TSHIRT-M",
"taxable": true,
"barcode": "5410000000000",
"available_quantity": 10,
"prices": [],
"unit_cost": {
"amount": 100,
"currency": "EUR"
},
"unit_of_measure": "piece",
"weight": 0.2,
"weight_unit": "kg",
"status": "unknown",
"inventory_details": [],
"common_attributes": [],
"variant_attributes": [],
"common_images": [],
"variant_images": []
}{
"message": "Error while trying to perform your request",
"status": "error"
}{
"message": "The variant doesn't exist.",
"status": "error",
"error_code": "ERROR_VARIANT_NOT_FOUND"
}{
"message": "Validation error",
"status": "error",
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get one specific product variant
Returns a specific product variant from the e-commerce system by its unique identifier.
curl --request GET \
--url https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}import requests
url = "https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}', 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.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chift.eu/consumers/{consumer_id}/commerce/variants/{variant_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<this-id>",
"source_ref": {
"id": "<target-software-id>",
"model": "invoice"
},
"parent_id": "<commerce-product-id>",
"name": "T-Shirt - M",
"description": "Classic cotton T-Shirt, available in several sizes.",
"description_html": "<p>Classic cotton T-Shirt, available in several sizes.</p>",
"categories": [],
"created_on": "2026-01-15T10:30:00Z",
"sku": "TSHIRT-M",
"taxable": true,
"barcode": "5410000000000",
"available_quantity": 10,
"prices": [],
"unit_cost": {
"amount": 100,
"currency": "EUR"
},
"unit_of_measure": "piece",
"weight": 0.2,
"weight_unit": "kg",
"status": "unknown",
"inventory_details": [],
"common_attributes": [],
"variant_attributes": [],
"common_images": [],
"variant_images": []
}{
"message": "Error while trying to perform your request",
"status": "error"
}{
"message": "The variant doesn't exist.",
"status": "error",
"error_code": "ERROR_VARIANT_NOT_FOUND"
}{
"message": "Validation error",
"status": "error",
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}- What is a product? ↗
Response
Successful Response
Technical id in Chift
"<this-id>"
Technical id in the target software
Show child attributes
Show child attributes
Technical id of the parent product in Chift
"<commerce-product-id>"
"T-Shirt - M"
"Classic cotton T-Shirt, available in several sizes."
"<p>Classic cotton T-Shirt, available in several sizes.</p>"
Show child attributes
Show child attributes
"2026-01-15T10:30:00Z"
"TSHIRT-M"
"5410000000000"
10
Show child attributes
Show child attributes
Show child attributes
Show child attributes
"piece"
0.2
"kg"
unknown, archived, unpublished, published Show child attributes
Show child attributes
List of attributes that are shared by all variants of the product.
Show child attributes
Show child attributes
List of attributes that are specific to the variant of the product.
Show child attributes
Show child attributes
List of images that are shared by all variants of the product.
Show child attributes
Show child attributes
List of images that are specific to the variant of the product.
Show child attributes
Show child attributes