POST https://example.com/api/v1/products

Ürün Ekle

Yeni bir ürün oluşturur. Zorunlu alanlar: ürün adı, kategori, marka ve fiyat. Kategori/marka ID veya ad olarak gönderilebilir (eksik adlar otomatik oluşturulur).

İstek Gövdesi Parametreleri

ParametreTipZorunluAçıklama
namestringEvet*Ürün adı (veya translations kullanın)
category / category_idstring / intEvetKategori adı veya ID
brand / brand_idstring / intEvetMarka adı veya ID
pricefloatEvet*Satış fiyatı (veya doviz_price)
costfloatHayırMaliyet fiyatı
old_pricefloatHayırListe / üzeri çizili fiyat
stockintegerHayırStok miktarı
activeintegerHayır1 veya 0
barcodestringHayırBarkod
stock_codestringHayırSKU / stok kodu
description_htmlstringHayırHTML açıklama
short_descriptionstringHayırKısa metin
vatfloatHayırKDV oranı
dovizstringHayırtry, usd, eur, xau
doviz_pricefloatHayırDöviz cinsinden fiyat
cargo_dayintegerHayırKargo günü
labelstringHayırÜrün etiketi
desifloatHayırDesi / hacimsel ağırlık
translationsobjectHayırDil koduna göre çok dilli alanlar
variationsarrayHayırVaryant satırları (sku, options, price, stock)
Not: Oluşturma sonrası görselleri POST /products/{id}/image ile yükleyin. Başarı durumunda HTTP durumu 201'dir.
PHP
<?php

$baseUrl = 'https://example.com/api/v1';
$apiKey  = 'YOUR_API_KEY';

function apiRequest(string $method, string $url, string $apiKey, ?array $data = null): array
{
    $ch = curl_init();
    $headers = [
        'X-API-Key: ' . trim($apiKey),
        'Accept: application/json',
    ];
    if ($data !== null) {
        $headers[] = 'Content-Type: application/json';
    }
    curl_setopt_array($ch, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CUSTOMREQUEST => $method,
        CURLOPT_HTTPHEADER => $headers,
        CURLOPT_SSL_VERIFYPEER => true,
    ]);
    if ($data !== null) {
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE));
    }
    $response = curl_exec($ch);
    $httpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);
    curl_close($ch);
    $decoded = json_decode((string) $response, true);
    return [
        'http_code' => $httpCode,
        'curl_error' => $error,
        'response' => is_array($decoded) ? $decoded : $response,
    ];
}

// Multi-language product with variations
$payload = [
    'translations' => [
        'tr' => [
            'name' => 'Pamuklu Tişört',
            'slug' => 'pamuklu-tisort',
            'description_html' => '<p>Yumuşak kumaş</p>',
        ],
        'en' => [
            'name' => 'Cotton T-Shirt',
            'slug' => 'cotton-t-shirt',
            'description_html' => '<p>Soft fabric</p>',
        ],
    ],
    '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,
        ],
    ],
];

$result = apiRequest('POST', $baseUrl . '/products', $apiKey, $payload);
$productId = (int) ($result['response']['data']['id'] ?? 0);
print_r($result);
cURL
# Simple create (category / brand by name)
curl -s -X POST \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "Omega 3 Balık Yağı 90 Kapsül",
    "category": "Vitamin & Takviye",
    "brand": "Nutrof",
    "price": 249.90,
    "old_price": 299.90,
    "stock": 50,
    "active": 1,
    "barcode": "8690000000888",
    "stock_code": "OMEGA3-90",
    "description_html": "<p>90 kapsül, soğuk sıkım.</p>"
  }' \
  "https://example.com/api/v1/products"

# Multi-language + variations
curl -s -X POST \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "translations": {
      "tr": { "name": "Pamuklu Tişört", "slug": "pamuklu-tisort", "description_html": "<p>Yumuşak kumaş</p>" },
      "en": { "name": "Cotton T-Shirt", "slug": "cotton-t-shirt", "description_html": "<p>Soft fabric</p>" }
    },
    "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
      }
    ]
  }' \
  "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
  }
}