پرش به محتویات

وب سرویس اضافه کردن محصول (غیر وردپرس) به گرند بازار

وب سرویس اضافه کردن محصولات سایت‌های غیروردپرسی به گرند بازار

این مستند، نحوه‌ی استفاده از سرویس‌های گرند بازار را توضیح می‌دهد. برای پیاده‌سازی، شما نیاز دارید تا ابتدا دسته‌بندی محصولات را همسان‌سازی کنید و سپس محصولات خود را ایجاد یا به‌روزرسانی نمایید. در صورت نیاز، امکان حذف محصولات نیز فراهم است. برای پیاده سازی وب سرویس می‌توانید از نمونه کدهایی که در ادامه در همین مستند آورده شده استفاده کنید.

مراحل کلی پیاده‌سازی

  1. فراخوانی سرویس همسان‌سازی دسته‌بندی: ارسال دسته‌بندی‌های محصولات توسط فروشنده.
  2. فراخوانی سرویس ایجاد یا به‌روزرسانی محصولات: ارسال اطلاعات محصولات توسط فروشنده.

دسترسی به سرویس‌ها

توکن دسترسی

برای استفاده از وب‌سرویس‌های گرند بازار، به یک توکن احراز هویت نیاز دارید. برای دریافت این توکن، لطفاً با پشتیبانی تماس بگیرید.

نحوه‌ی استفاده از توکن

توکن احراز هویت باید در هدر درخواست به صورت زیر قرار بگیرد:

headers: {
    "Authorization": "Api-key YourSecretApiKeyFromGrandBazaar"
}

همسان سازی دسته‌بندی محصولات

Endpoint :

POST https://grandbazaar-backend.darkube.app/api/v1/external/sync-categories/

ساختار Request body :

{

    "id": 0,
    "name": "string",
    "parent": 0,
    "children": [
        {
            "id": 0,
            "name": "string",
            "parent": 0,
        }  
    ]

}

هدرهای درخواست :

Authorization: Api-Key {token}

پاسخ موفق :

Status code: 200
Field Type Description
"id": 0 Integer شناسه دسته‌بندی فروشنده
"name": "string" string نام دسته‌بندی فروشنده
"parent": 0 Integer Null

"children": [

{

"id": 0,

"name": "string",

"parent": 0,}

]

}]

json

شناسه دسته‌بندی کودک

نام دسته‌بندی کودک

شناسه دسته‌بندی والد

درخواست نمونه :

cURL (bash)

curl -X 'POST' \
'https://grandbazaar-backend.darkube.app/api/v1/external/sync-categories/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'X-CSRFTOKEN: x4EJodrVM4YQtKbaAmKAJcYle8fcCeYTDw7rcF3oYrmoaZIKtG59Fuda5G3mFhAd' \
-d '{
    "id": 0,
    "name": "string",
    "parent": 0,
    "children": [
            {
                "id": 0,
                "name": "string",
                "parent": 0,
            }
    ]
}

Python (requests)

import requests
url = "https://grandbazaar-backend.darkube.app/api/v1/external/sync-categories/"
headers = {
    "accept": "application/json",
    "Content-Type": "application/json",
    "Authorization": "Api-key {YourToken}"
}

data = {
    "id": 0,
    "name": "string",
    "parent": 0,
    "children": [
        {
            "id": 0,
            "name": "string",
            "parent": 0,
        }      
    ]
}
response = requests.post(url, json=data, headers=headers)
print(response.status_code, response.json())

JavaScript (Node.js – axios)

const axios = require('axios');
const url = 'https://grandbazaar-backend.darkube.app/api/v1/external/sync-categories/';
const headers = {
    'accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': 'Api-key {YourToken}'
};
const data = {
    id: 0,
    name: 'string',
    parent: 0,
    children: [
        {
            id: 0,
            name: ‘string’,
            parent: 0,
        }    
    ]
};
axios.post(url, data, { headers })
.then(response => {
    console.log(response.status, response.data);
})
.catch(error => {
    console.error(error);
});

PHP (cURL)

$curl = curl_init();
$data = json_encode([
    "id" => 0,
    "name" => "string",
    "parent" => 0,
    "children" => [
    [
        "id" => 0,
        "name" => "string",
        " parent " => 0
    ]
]]);
curl_setopt_array($curl, [
CURLOPT_URL => "https://grandbazaar-backend.darkube.app/api/v1/external/sync-categories/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "Content-Type: application/json",
    "Authorization: Api-key {YourToken}"
    ],
    CURLOPT_POSTFIELDS => $data
    );
    $response = curl_exec($curl);
    curl_close($curl);
    echo $response;
]);

ایجاد و یا به‌روزرسانی محصولات

Endpoint :

    POST https://grandbazaar-backend.darkube.app/api/v1/external/sync-categories/

ساختار Request body :

[
{

    "id": 0,
    "name": "string",
    "regular_price": "string",
    "sale_price": "string",
    "product_url": "string",
    "base_image_url": "string",
    "images": [
        "string"
        ],
    "available": true,
    "full_description": "string",
    "stock_status": "string",
    "stock": 0,
    "seller": 0,
    "categories": [
            0
    ],
    "currency": "IRR",
    "price": "string"
    }
 ]

هدرهای درخواست :

    Authorization: Api-Key {token}

پاسخ موفق :

    Status code: 200
Field Type Description
"id": 0 Integer شناسه یکتا محصول در دیتابیس فروشنده
"name": "string" string نام محصول
"regular_price": "string" Int float
"sale_price": "string", Int float
"product_url": "string" string آدرس صفحه محصول
"base_image_url": "string" string آدرس عکس اصلی محصول (عکس نمایشی در سایت)

"images": [

"string"

]

[string] لیستی از آدرس عکس های دیگر محصول
"available": true boolean وضعیت فعال یا غیرفعال بودن محصول
"full_description": "string" string توضیحات کامل محصول
"stock_status": "string"

“in_stock”

“out_of_stock”

"stock": 0 Integer تعداد موجودی
"seller": 0 Integer لازم نیست پر شود

"categories": [

0

]

[ Integer] لیستی از آیدی دسته بندی های محصول در فروشگاه فروشنده
"currency": "IRR"

“IRR”

“ IRT”

"price" Int float

درخواست نمونه :

cURL (bash)

curl -X 'POST' \
'https://grandbazaar-backend.darkube.app/api/v1/external/create-or-update-products/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'X-CSRFTOKEN: x4EJodrVM4YQtKbaAmKAJcYle8fcCeYTDw7rcF3oYrmoaZIKtG59Fuda5G3mFhAd' \
-d '{
    "id": 0,
    "name": "string",
    "regular_price": "string",
    "sale_price": "string",
    "product_url": "string",
    "base_image_url": "string",
    "images": [
        "string"
    ],
    "available": true,
    "full_description": "string",
    "stock_status": "string",
    "stock": 0,
    "seller": 0,
    "categories": [
                0
    ],
    "currency": "IRR",
    "price": "string"
}'

Python (requests)

import requests
url = "https://grandbazaar-backend.darkube.app/api/v1/external/create-or-update-products/"
headers = {
    "accept": "application/json",
    "Content-Type": "application/json",
    "Authorization": "Api-key {YourToken}"
}

data = {
    "id": 0,
    "name": "string",
    "regular_price": "string",
    "sale_price": "string",
    "product_url": "string",
    "base_image_url": "string",
    "images": ["string"],
    "available": True,
    "full_description": "string",
    "stock_status": "string",
    "stock": 0,
    "seller": 0,
    "categories": [0],
    "currency": "IRR",
    "price": "string"
}
response = requests.post(url, json=data, headers=headers)
print(response.status_code, response.json())

JavaScript (Node.js - axios)

[
const axios = require('axios');
const url = 'https://grandbazaar-backend.darkube.app/api/v1/external/create-or-update-products/';
const headers = {
    'accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': 'Api-key {YourToken}'
};
const data = {
    id: 0,
    name: 'string',
    regular_price: 'string',
    sale_price: 'string',
    product_url: 'string',
    base_image_url: 'string',
    images: ['string'],
    available: true,
    full_description: 'string',
    stock_status: 'string',
    stock: 0,
    seller: 0,
    categories: [0],
    currency: 'IRR',
    price: 'string'
};
axios.post(url, data, { headers })
.then(response => {
    console.log(response.status, response.data);
})
.catch(error => {
    console.error(error);
});
]

PHP (cURL)

$curl = curl_init();
$data = json_encode([
    "id" => 0,
    "name" => "string",
    "regular_price" => "string",
    "sale_price" => "string",
    "product_url" => "string",
    "base_image_url" => "string",
    "images" => ["string"],
    "available" => true,
    "full_description" => "string",
    "stock_status" => "string",
    "stock" => 0,
    "seller" => 0,
    "categories" => [0],
    "currency" => "IRR",
    "price" => "string"

]);
curl_setopt_array($curl, [
CURLOPT_URL => "https://grandbazaar-backend.darkube.app/api/v1/external/create-or-update-products/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "Content-Type: application/json",
    "Authorization: Api-key {YourToken}"
],
CURLOPT_POSTFIELDS => $data
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;

حذف محصولات

Endpoint :

    DELETE https://grandbazaar-backend.darkube.app/api/v1/external/delete/

ساختار Request body :

{
    "ids": 0
}

هدرهای درخواست :

    Authorization: Api-Key {token}

پاسخ موفق :

{
    Status code: 200
 }
Field Type Description
"ids": 0 [integer] لیستی از شناسه یکتاهای محصولات برای حذف

درخواست نمونه :

cURL (bash)

curl -X 'DELETE' \
'https://grandbazaar-backend.darkube.app/api/v1/external/delete/' \
-H 'accept: */*' \
-H 'X-CSRFTOKEN: x4EJodrVM4YQtKbaAmKAJcYle8fcCeYTDw7rcF3oYrmoaZIKtG59Fuda5G3mFhAd'

Python (requests)

import requests
url = "https://grandbazaar-backend.darkube.app/api/v1/external/delete/"
headers = {
    "accept": "*/*",
    "Authorization": "Api-key {YourToken}"
}
data = {"ids": [0]}
response = requests.delete(url, json=data, headers=headers)
print(response.status_code, response.json())

JavaScript (Node.js - axios)

const axios = require('axios');
const url = 'https://grandbazaar-backend.darkube.app/api/v1/external/delete/';
const headers = {
    'accept': '*/*',
    'Authorization': 'Api-key {YourToken}'
};
const data = { ids: [0] };
axios.delete(url, { headers, data })
.then(response => {
    console.log(response.status, response.data);
})
.catch(error => {
    console.error(error);
});

PHP (cURL)

$curl = curl_init();
$data = json_encode(["ids" => [0]]);
curl_setopt_array($curl, [
    CURLOPT_URL => "https://grandbazaar-backend.darkube.app/api/v1/external/delete/",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "DELETE",
    CURLOPT_HTTPHEADER => [
        "accept: */*",
        "Authorization: Api-key {YourToken}"
    ],
    CURLOPT_POSTFIELDS => $data
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;