Varyasyonlar ve Çeviriler
Ürün oluşturma ve güncellemede çok dilli metinler için translations,
renk/beden gibi seçenekler için variations dizisini kullanın.
Temel akış: Ürün Ekle ve
Ürün Güncelle.
Çeviriler (translations)
Dil koduna göre anahtarlanan bir nesnedir (tr, en vb.).
Her dil altında tipik alanlar:
name— ürün adıdescription_html— HTML açıklamashort_description— kısa metinslug— isteğe bağlı URL parçası
Not: Tek dilde çalışıyorsanız düz
name /
description_html alanları yeterlidir.
Çok dilli mağazalarda translations tercih edin.
Varyasyonlar (variations)
Her satır bir stok tutulabilir varyantı temsil eder:
sku— stok kodubarcode— barkodstock— varyant stoğuprice— varyant fiyatı (üst üründen farklı olabilir)options— seçenek haritası, örn.Renk/Bedenactive— isteğe bağlı etkinlik bayrağı
Üst stok mu, varyasyon stoğu mu?
-
Varyasyonsuz ürün: stok ve fiyatı üst ürün alanlarında
(
stock,price) tutun. -
Varyasyonlu ürün: satılabilir miktar her varyantın
stockdeğerinden gelir. Üststocközet veya yedek amaçlı olabilir; satış mantığı varyant satırlarına dayanır.
Dikkat: Varyasyon ekledikten sonra yalnızca üst stoğu güncellemek
vitrinde yanlış miktar gösterebilir. Stok senkronunda varyant satırlarını da güncelleyin
(bkz. Stok Güncelle).
Güncelleme en iyi uygulaması
GET /products/{id}ile mevcut ürünü alın (Ürün Getir.- İhtiyacınız olan alanları / varyantları birleştirin (merge).
- Eksik satır kaybetmemek için
PATCHile mümkün olduğunca tam gövdeyi gönderin Ürün Güncelle.
Örnek istek gövdesi
{
"translations": {
"tr": {
"name": "Pamuklu Tişört",
"description_html": "<p>Yumuşak kumaş</p>",
"short_description": "Günlük kullanım"
},
"en": {
"name": "Cotton T-Shirt",
"description_html": "<p>Soft fabric</p>",
"short_description": "Everyday wear"
}
},
"category": "Giyim",
"brand": "Demo Marka",
"price": 199.99,
"stock": 15,
"active": 1,
"variations": [
{
"sku": "TSH-KIRMIZI-M",
"barcode": "8690000001001",
"options": {
"Renk": "Kırmızı",
"Beden": "M"
},
"price": 249.90,
"stock": 12,
"active": true
},
{
"sku": "TSH-KIRMIZI-L",
"barcode": "8690000001002",
"options": {
"Renk": "Kırmızı",
"Beden": "L"
},
"price": 249.90,
"stock": 8,
"active": true
}
]
}
İlgili sayfalar
PHP
<?php
$baseUrl = 'https://example.com/api/v1';
$apiKey = 'YOUR_API_KEY';
$payload = [
'translations' => [
'tr' => [
'name' => 'Pamuklu Tişört',
'slug' => 'pamuklu-tisort',
'description_html' => '<p>Yumuşak kumaş</p>',
'short_description' => 'Günlük kullanım',
],
'en' => [
'name' => 'Cotton T-Shirt',
'slug' => 'cotton-t-shirt',
'description_html' => '<p>Soft fabric</p>',
'short_description' => 'Everyday wear',
],
],
'category' => 'Test Category',
'brand' => 'Test Brand',
'cost' => 50,
'price' => 199.99,
'stock' => 15,
'active' => 1,
'barcode' => '86991233322',
'stock_code' => 'fs123',
'variations' => [
[
'sku' => 'TSH-RED-M',
'barcode' => '8690000001001',
'options' => [
'Color' => 'Red',
'Size' => 'M',
],
'price' => 249.90,
'stock' => 12,
'active' => true,
],
[
'sku' => 'TSH-RED-L',
'barcode' => '8690000001002',
'options' => [
'Color' => 'Red',
'Size' => 'L',
],
'price' => 249.90,
'stock' => 8,
'active' => true,
],
],
];
$ch = curl_init($baseUrl . '/products');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'X-API-Key: ' . trim($apiKey),
'Content-Type: application/json',
'Accept: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
CURLOPT_SSL_VERIFYPEER => true,
]);
$response = curl_exec($ch);
$httpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode . PHP_EOL;
echo $response;
cURL
curl -s -X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"translations": {
"tr": {
"name": "Pamuklu Tişört",
"slug": "pamuklu-tisort",
"description_html": "<p>Yumuşak kumaş</p>",
"short_description": "Günlük kullanım"
},
"en": {
"name": "Cotton T-Shirt",
"slug": "cotton-t-shirt",
"description_html": "<p>Soft fabric</p>",
"short_description": "Everyday wear"
}
},
"category": "Test Category",
"brand": "Test Brand",
"cost": 50,
"price": 199.99,
"stock": 15,
"active": 1,
"barcode": "86991233322",
"stock_code": "fs123",
"variations": [
{
"sku": "TSH-RED-M",
"barcode": "8690000001001",
"options": { "Color": "Red", "Size": "M" },
"price": 249.90,
"stock": 12,
"active": true
},
{
"sku": "TSH-RED-L",
"barcode": "8690000001002",
"options": { "Color": "Red", "Size": "L" },
"price": 249.90,
"stock": 8,
"active": true
}
]
}' \
"https://example.com/api/v1/products"
Örnek Yanıt (JSON)
{
"success": true,
"message": "Ürün eklendi",
"lang": "tr",
"data": {
"id": 6,
"name": "Pamuklu Tişört",
"slug": "pamuklu-tisort",
"price": 199.99,
"stock": 15,
"active": 1,
"barcode": "86991233322",
"stock_code": "fs123",
"category_name": "Test Category",
"brand_name": "Test Brand",
"has_variations": true
}
}