Api
محصولات#
GET /api/v2/products کاتالوگ محصولات تجارت را برمیگرداند. یک محصول فقط وقتی ظاهر میشود که دستکم یک شعبهٔ دیدنی برای اعتبارنامه یک رشته موجودی فعال برای یکی از واریانتهایش داشته باشد، که کاتالوگ را با آنچه تجارت واقعاً میتواند بفروشد همخوان نگه میدارد.
اجازه#
| الزام | مقدار |
|---|---|
| صلاحیت | products:read |
| اجازه صفحه | inventory.products.read |
| رفتار شعبه | سطح کل تجارت یا شعبهفیلترشده |
پارامترهای کوئری#
| پارامتر | نوع | پیشفرض | یادداشت |
|---|---|---|---|
search | string ≤ 100 | — | با کوک محصول، مدل یا نام ترجمهشده مطابق میشود |
language_code | string | App locale | کود دو حرفی، اختیاریاً با یک منطقه |
page | integer ≥ 1 | 1 | شماره صفحه |
per_page | integer 1–100 | 25 | اندازه صفحه |
برای محصولات فیلتر تاریخ وجود ندارد. جستجو یک تطبیق LIKE است، بنابراین اصطلاحات کوتاه نتیجههای گسترده برمیگردانند.
درخواست#
curl -s "https://app.example.com/api/v2/products?search=router&language_code=fa_AF" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"پاسخ#
{
"data": [
{
"id": 128,
"code": "NET-0042",
"product_model": "AX3000",
"product_name": "روتر ایایکس ۳۰۰۰"
}
],
"links": {
"first": "...",
"last": "...",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 25,
"total": 1
}
}فیلدها#
| فیلد | معنا |
|---|---|
id | شناسه محصول، باثبات بین زبانها |
code | کود داخلی محصول |
product_model | مدل تولیدکننده |
product_name | نام ترجمهشده، با بازگشت به کوک محصول |
نام محصول برای زبان درخواستی تعیین میشود. اگر ترجمهای وجود نداشته باشد، API بهجای رشته خالی کود محصول را برمیگرداند.
مدیریت زبان#
- اگر
language_codeفرستاده شود، نرمال میشود (برای مثالfa-AFبهfa_AFتبدیل میشود). - اگر حذف شود، locale برنامه استفاده میشود.
- اگر زبان ناشناخته باشد، نخستین زبان در دیتابیس استفاده میشود.
- درون یک زبان، یک ترجمه بهصورت قطعی (deterministic) انتخاب میشود.
زبان را در یکپارچهسازی ثابت (pin) کنید تا نامها با تغییر زبان رابط کاربری یک کاربر عوض نشوند.
رفتار دامنه#
- اعتبارنامه سطح کل تجارت: محصولات موجود در هر شعبه فعال.
- اعتبارنامه با دامنه شعبه: فقط محصولات موجود در شعبههای اعطاشده.
X-Business-Branchنتیجه را به همان شعبه تنگ میکند.
محصولی که موجودیاش فقط در شعبهای است که شما نمیتوانید ببینید، هرگز ظاهر نمیشود، حتی اگر کوکش را بدانید.
صفحهبندی و ترتیب#
محصولات بر اساس id صعودی مرتب میشوند که بین صفحهها باثبات است. از per_page تا 100 استفاده کنید و پیوند next را دنبال نمایید. به صفحهبندی و فیلترها مراجعه کنید.
استفادههای رایج#
| استفاده | روش |
|---|---|
| همگامسازی کاتالوگ | همه محصولات را صفحهبهصفحه بخوانید، id را بهعنوان کلید خارجی ذخیره کنید |
| جستجوی بارکد | با code یا مدل جستجو کنید |
| کاتالوگ بومیشده | با یک language_code ثابت درخواست کنید |
| بررسی دسترسپذیری | با /api/v2/stock برای مقدارها ترکیب کنید |
محدودیتها#
- فقطخواندنی: محصولات نمیتوانند ایجاد یا ویرایش شوند.
- قیمتهای تمامشده و دادههای تأمینکننده افشا نمیشوند.
- فقط محصولات با موجودی فعال در یک شعبه دیدنی ظاهر میشوند.
searchوایلدکارت نمیپذیرد؛ آن یک تطبیق زیررشتهای است.