ساخت تنوع و کالای تازه
مخاطب: برنامهنویس سایت فروشگاهی یا نرمافزار مدیریت کالا که میخواهد کالاهای تازهی خود را بدون ورود دستی به پنل دیجیکالا، بهصورت تنوع یا کالای جدید در دیجیکالا بسازد و نتیجهی بررسی تیم محتوا را دنبال کند.
📖 مقدمه
Section titled “📖 مقدمه”در دیجیکالا دو راه برای فروش کالای تازه وجود دارد: اگر کالا (کد DKP) از قبل در دیجیکالا هست، روی آن تنوع میسازید (رنگ یا اندازه، گارانتی، قیمت و موجودی)؛ اگر نیست، کالای تازه میسازید که پیش از فروش باید تیم محتوای دیجیکالا آن را تایید کند. اگر تیم محتوا کالایی را برگشت دهد، باید آن را ویرایش و دوباره ارسال کنید. سلر ۳۶۰ هر سه کار را مثل صفحهی «درج کالا و تنوع» پنل انجام میدهد: هر ردیف پیش از ارسال با همان بررسیهای پنل سنجیده میشود، ساختها در صف و یکییکی انجام میشوند و نتیجهی هر ردیف با کار ثبتشده و وبهوک اعلام میشود.
با مسیرهای این صفحه میتوانید:
| کار | مسیر | در دسترس |
|---|---|---|
| فهرست درخواستهای ساخت تنوع | GET /v1/catalog/variant-requests |
فعال |
| ساخت تنوعهای تازه (در صف) | POST /v1/catalog/variant-requests |
فعال |
| یک درخواست با وضعیت هر ردیف | GET /v1/catalog/variant-requests/{request_id} |
فعال |
| خارج کردن ردیفهای در صف از ساخت | POST /v1/catalog/variant-requests/{request_id}/cancel |
فعال |
| کالاهای تازه و وضعیت تایید محتوا | GET /v1/catalog/product-drafts |
فعال |
| ساخت کالای تازه (در صف) | POST /v1/catalog/product-drafts |
فعال |
| یک کالای تازه | GET /v1/catalog/product-drafts/{draft_id} |
فعال |
| کالاهای برگشتی از تیم محتوا | GET /v1/catalog/returned-products |
فعال |
| کالای برگشتی با دلایل برگشت | GET /v1/catalog/returned-products/{product_id} |
فعال |
| ویرایش کالای برگشتی و ارسال دوباره | PUT /v1/catalog/returned-products/{product_id} |
فعال |
و با رویدادهای وبهوک variant.request_completed و product.moderation_changed از پایان ساخت و تغییر وضعیت تایید محتوا خبردار شوید.
⚙️ پیشنیازها
Section titled “⚙️ پیشنیازها”دسترسی (Scope)
Section titled “دسترسی (Scope)”| دسترسی | برچسب در پنل | برای |
|---|---|---|
catalog:read |
«خواندن کاتالوگ کالا» | همهی مسیرهای خواندن این صفحه، و جستوجوی دسته و برند |
catalog:write |
«تغییر کاتالوگ و جفت کردن کد کالا» | ساخت تنوع و کالا، لغو ردیفها و ویرایش کالای برگشتی |
فعال بودن ماژول و اشتراک
Section titled “فعال بودن ماژول و اشتراک”ماژول «API و وبهوک» باید برای پنل فعال باشد؛ در غیر این صورت پاسخ 403 با خطای module_inactive (ماژول API) یا module_required (ماژول این بخش، با نام آن در detail) برمیگردد. مسیرهای این صفحه همچنین بخش «درج کالا و تنوع» را لازم دارند، همانطور که صفحهی آن در پنل؛ بدون آن نیز پاسخ 403 با خطای module_inactive برمیگردد. ساخت و ویرایش در دیجیکالا برای پنلی که اشتراک آن به پایان رسیده است با خطای subscription_inactive رد میشود، و در پنل نمایشی با خطای demo_panel_unsupported.
آنچه پیش از ساخت لازم دارید
Section titled “آنچه پیش از ساخت لازم دارید”| برای | از کجا |
|---|---|
کد کالا (product_id) برای ساخت تنوع |
صفحهی کالا در دیجیکالا، یا GET /v1/products برای کالاهای پنل خودتان |
شناسهی دستهی برگ (category_id) برای کالای تازه |
GET /v1/catalog/categories |
شناسهی برند (brand_id) برای کالای تازه |
GET /v1/catalog/brands |
آدرس پایه
Section titled “آدرس پایه”https://api.seller360.ir🧮 مفاهیم
Section titled “🧮 مفاهیم”درخواست ساخت تنوع (VariantRequest)
Section titled “درخواست ساخت تنوع (VariantRequest)”یک درخواست تا ۳۰۰ ردیف دارد و هر ردیف یک تنوع است.
| فیلد | برچسب در پنل | معنی |
|---|---|---|
id |
— | شناسهی درخواست. |
source |
— | از کجا ساخته شد: builder «تنوع جدید»، similar «تنوع مشابه»، panel «کپی از پنل دیگر»، excel «فایل اکسل» یا api. |
title |
— | نام دلخواه شما برای پیگیری. |
created_at، finished_at |
— | زمان ثبت و پایان. |
counts |
— | تعداد ردیفها در هر وضعیت. |
items |
— | ردیفها؛ فقط در پاسخ یک درخواست و در وبهوک. |
ردیف ورودی (VariantRequestRow)
Section titled “ردیف ورودی (VariantRequestRow)”| فیلد | اجباری | معنی |
|---|---|---|
product_id |
بله | کد DKP کالایی که تنوع روی آن ساخته میشود؛ اگر کالا در پنل شما نباشد، ابتدا به پنل افزوده میشود. |
theme_value_id |
خیر | شناسهی رنگ یا اندازه از تنظیمات کالا در دیجیکالا؛ برای کالای بدون تنوع خالی. |
warranty_id |
بله | شناسهی گارانتی. |
shipping_type |
بله | digikala «ارسال دیجیکالا»، seller «ارسال فروشنده» یا both هر دو. |
three_hour_delivery |
خیر | ارسال ۳ ساعته؛ ارسال فروشنده را هم لازم دارد. پیشفرض false. |
price |
بله | قیمت فروش به ریال. |
stock |
بله | موجودی فروشنده. |
order_limit |
خیر | سقف تعداد در هر سفارش؛ اگر فرستاده نشود ۱ در نظر گرفته میشود. |
lead_time |
بله | زمان آمادهسازی به روز. |
fbs_lead_time |
خیر | زمان آمادهسازی ارسال فروشنده به روز. |
supplier_code |
خیر | کد فروشندهی تنوع تازه؛ تا ۱۰۰ نویسه. |
is_active |
خیر | تنوع پس از ساخت فعال باشد؛ پیشفرض true. |
وضعیت هر ردیف
Section titled “وضعیت هر ردیف”status |
معنی |
|---|---|
waiting |
در صف. |
sending |
در حال ارسال به دیجیکالا. |
unknown |
ارسال شده و پاسخ دیجیکالا نرسیده است؛ پیش از هر کار دیگری در دیجیکالا جستوجو میشود و هرگز «ناموفق» گزارش نمیشود (هشدار ۲). |
done |
ساخته شد؛ variant_id کد DKPC تنوع تازه است. |
failed |
ناموفق؛ علت در message. |
skipped |
تکراری بود: همان رنگ یا اندازه و همان گارانتی روی همان کالا از قبل وجود دارد. |
cancelled |
پیش از ارسال لغو شد. |
archived |
ساخته و سپس بایگانی شد. |
کالای تازه (ProductDraft)
Section titled “کالای تازه (ProductDraft)”| فیلد | معنی |
|---|---|
id |
شناسهی پیشنویس در سلر ۳۶۰. |
status |
وضعیت (جدول بعد). |
category_id، category_title |
دسته. |
title_fa |
عنوان فارسی. |
product_id |
کد DKP کالا در دیجیکالا، پس از ثبت. |
moderation_status |
وضعیت تایید محتوا به نام دیجیکالا (مثلا waiting_for_confirm)؛ فهرست کامل مقادیر اعلام نشده است. |
moderation_checked_at |
آخرین بررسی وضعیت. |
source_product_id |
کالایی که از روی آن کپی شده است. |
publish |
پس از ساخت برای تیم محتوا فرستاده شود. |
message |
علت ناموفق بودن مرحله، به فارسی. |
created_at، updated_at، sent_at |
زمانها. |
status کالای تازه |
معنی |
|---|---|
editing |
در حال تکمیل. |
queued |
در صف ساخت. |
staged |
پیشنویس در دیجیکالا ساخته شد و برای تیم محتوا ارسال نشد (publish: false). |
failed |
ناموفق؛ علت در message. |
sent |
در انتظار بررسی دیجیکالا. |
approved |
تایید شد. |
rejected |
نیاز به ویرایش. |
removed |
حذف شد. |
کالای برگشتی (ReturnedProduct)
Section titled “کالای برگشتی (ReturnedProduct)”کالایی که تیم محتوای دیجیکالا برای ویرایش برگشت داده است؛ چه با سلر ۳۶۰ ساخته شده باشد، چه جای دیگر.
| فیلد | معنی |
|---|---|
product_id، title، image_url، category_title |
کالا. |
status |
نوع برگشت به نام دیجیکالا: in_review یا in_review_after_approved. |
first_seen_at |
اولین باری که سلر ۳۶۰ کالا را برگشتی دید. |
last_seen_at |
آخرین باری که کالا برگشتی دیده شد. |
resolved_at |
زمانی که کالا دیگر برگشتی نبود. |
before_tracking |
کالا پیش از شروع پیگیری برگشتی بوده و first_seen_at تاریخ واقعی برگشت نیست. |
جزئیات یک کالای برگشتی (ReturnedProductDetail) بهعلاوهی اینها مشخصات پایه (basic)، ویژگیها (attributes)، عکسها با دلیل برگشت هر عکس، دلایل برگشت هر بخش (reasons)، فیلدهای قابل ویرایش (enabled_fields؛ خالی یا ALL یعنی همه) و locked را دارد.
🔢 تازگی و سرعت
Section titled “🔢 تازگی و سرعت”- ساخت تنوع: هر پنل حداکثر یک ساخت در هر ۱۵ ثانیه دارد؛ درخواستی با ۳۰۰ ردیف دستکم ۷۵ دقیقه طول میکشد. ربات قیمتگذاری اولویت دارد: تا وقتی مسیر تغییر قیمت ربات در دیجیکالا به سقف رسیده است، ساختی فرستاده نمیشود. اگر دیجیکالا به ساختی پاسخ «تعداد درخواست بیش از حد» (
429) بدهد، صف پنل تا زمان اعلامشدهی دیجیکالا متوقف میشود. - تایید محتوا: وضعیت کالاهای تازه هر ۳۰ دقیقه از دیجیکالا بررسی و تغییر آن با
product.moderation_changedاعلام میشود. - کالاهای برگشتی: فهرست هر ۳۰ دقیقه از دیجیکالا بهروز میشود. جزئیات یک کالا همان لحظه از دیجیکالا خوانده میشود تا دلایل و فیلدهای قابل ویرایش تازه باشند.
⚠️ هشدارها
Section titled “⚠️ هشدارها”📡 مسیرها
Section titled “📡 مسیرها”POST /v1/catalog/variant-requests — ساخت تنوعهای تازه فعال
Section titled “POST /v1/catalog/variant-requests — ساخت تنوعهای تازه ”POST /v1/catalog/variant-requests HTTP/1.1Host: api.seller360.irAuthorization: Bearer s360_live_...Idempotency-Key: colors-PE5144-1405-08-23Content-Type: application/json
{ "title": "رنگهای تازهی PE5144", "rows": [ { "product_id": 22961150, "theme_value_id": 2, "warranty_id": 18421, "shipping_type": "digikala", "price": 32500000, "stock": 10, "order_limit": 5, "lead_time": 1, "supplier_code": "5144" } ]}| فیلد بدنه | نوع | اجباری | توضیح |
|---|---|---|---|
title |
متن | خیر | نام دلخواه برای پیگیری؛ تا ۲۰۰ نویسه. |
rows |
فهرست | بله | تا ۳۰۰ ردیف؛ ساختار هر ردیف در جدول «ردیف ورودی» بالا. |
پاسخ نمونه (کد 202)
{ "status": "ok", "data": { "id": "job_3b91d4", "kind": "variant_request", "status": "queued", "created_at": "2026-11-13T11:02:15+03:30", "finished_at": null, "result": null }}خطاهای این مسیر
| کد HTTP | خطا | معنی | تکرار بیخطر است؟ |
|---|---|---|---|
400 |
invalid_parameter |
فیلدی نادرست است یا بیش از ۳۰۰ ردیف فرستاده شده است. | خیر؛ بدنه را اصلاح کنید. |
403 |
subscription_inactive |
اشتراک پنل فعال نیست. | خیر. |
409 |
demo_panel_unsupported |
این بخش در پنل نمایشی در دسترس نیست. | خیر. |
422 |
catalog_row_invalid |
ردیفی با قواعد دیجیکالا سازگار نیست؛ جزئیات در detail. |
خیر؛ ردیفها را اصلاح کنید. |
409 |
idempotency_mismatch |
این کلید یکتا قبلا با بدنهی دیگری استفاده شده است. | خیر؛ کلید تازه بسازید. |
409 |
idempotency_in_progress |
درخواستی با همین کلید در حال انجام است. | بله، چند ثانیه بعد. |
اگر پاسخ همین درخواست را دریافت نکردید، آن را با همان Idempotency-Key تکرار کنید تا درخواست دوم در صف نرود.
GET /v1/catalog/variant-requests — درخواستها فعال
Section titled “GET /v1/catalog/variant-requests — درخواستها ”درخواستهای ساخت تنوع از پنل و API، تازهترین اول، بدون فهرست ردیفها. پارامترها: page و size.
GET /v1/catalog/variant-requests/{request_id} — یک درخواست فعال
Section titled “GET /v1/catalog/variant-requests/{request_id} — یک درخواست ”{ "status": "ok", "data": { "id": 57, "source": "api", "title": "رنگهای تازهی PE5144", "created_at": "2026-11-13T11:02:15+03:30", "finished_at": null, "counts": { "waiting": 1, "sending": 0, "unknown": 1, "done": 2, "failed": 0, "skipped": 1, "cancelled": 0, "archived": 0 }, "items": [ { "id": 1903, "position": 0, "product_id": 22961150, "product_title": "محافظ ولتاژ پارت الکتریک مدل PE5144", "label": "آبی · گارانتی ۱۸ ماهه پارت الکتریک · ارسال دیجیکالا", "status": "done", "variant_id": 91200417, "message": null, "attempts": 1, "sent_at": "2026-11-13T11:02:31+03:30", "finished_at": "2026-11-13T11:02:33+03:30" }, { "id": 1905, "position": 2, "product_id": 22961150, "product_title": "محافظ ولتاژ پارت الکتریک مدل PE5144", "label": "قرمز · گارانتی ۱۸ ماهه پارت الکتریک · ارسال دیجیکالا", "status": "unknown", "variant_id": null, "message": null, "attempts": 1, "sent_at": "2026-11-13T11:03:02+03:30", "finished_at": null } ] }}POST /v1/catalog/variant-requests/{request_id}/cancel — لغو ردیفهای در صف فعال
Section titled “POST /v1/catalog/variant-requests/{request_id}/cancel — لغو ردیفهای در صف ”بدنه ندارد. ردیفهای waiting لغو میشوند (هشدار ۳). پاسخ موفق: کد 200 با درخواست.
POST /v1/catalog/product-drafts — ساخت کالای تازه فعال
Section titled “POST /v1/catalog/product-drafts — ساخت کالای تازه ”همان مراحل «کالای جدید» پنل در صف انجام میشود: اعتبارسنجی دسته و مشخصات، ویژگیها، عنوان، تصاویر و ثبت در دیجیکالا.
{ "category_id": 8925, "brand_id": 61944, "basic": { "model": "PE6100", "description": "محافظ ولتاژ دیجیتال با تاخیر قابل تنظیم", "is_iranian": true }, "attributes": { "1290": "یخچال و فریزر" }, "images": ["https://dkstatic1.digikala.com/digikala-products/pe6100-main.jpg", "https://dkstatic1.digikala.com/digikala-products/pe6100-side.jpg"], "publish": true}| فیلد بدنه | نوع | اجباری | توضیح |
|---|---|---|---|
category_id |
عدد | بله | دستهی برگ. |
brand_id |
عدد | بله | برند. |
source_product_id |
عدد | خیر | کپی از این کالا. |
basic |
شیء | بله | مشخصات پایه با نامهای دیجیکالا (model، description، advantages، disadvantages، is_iranian، ابعاد و وزن بسته و کالا، …). |
attributes |
شیء | بله | مقدار ویژگیهای دسته؛ کلید شناسهی ویژگی است. |
title_fa، title_en |
متن | خیر | تا ۳۰۰ نویسه؛ title_fa خالی یعنی عنوان پیشنهادی دیجیکالا. |
images |
فهرست نشانی | بله | ۱ تا ۱۵ نشانی؛ اولی عکس اصلی است. در حال حاضر فقط نشانیهای میزبان تصویر دیجیکالا (https://dkstatic*.digikala.com) پذیرفته میشوند، همانند «کپی کالا» در پنل. |
publish |
true یا false |
خیر | false: فقط پیشنویس در دیجیکالا ساخته شود و برای تیم محتوا نرود. پیشفرض true. |
پاسخ موفق: کد 202 با کار product_draft. خطاها همانند ساخت تنوعاند.
GET /v1/catalog/product-drafts و GET /v1/catalog/product-drafts/{draft_id} — کالاهای تازه فعال
Section titled “GET /v1/catalog/product-drafts و GET /v1/catalog/product-drafts/{draft_id} — کالاهای تازه ”تازهترین تغییر اول. پارامترها: page، size و status.
{ "status": "ok", "data": { "id": 418, "status": "sent", "category_id": 8925, "category_title": "محافظ ولتاژ", "title_fa": "محافظ ولتاژ پارت الکتریک مدل PE6100", "product_id": 23100544, "moderation_status": "waiting_for_confirm", "moderation_checked_at": "2026-11-13T12:30:04+03:30", "source_product_id": null, "publish": true, "message": null, "created_at": "2026-11-13T11:40:12+03:30", "updated_at": "2026-11-13T11:44:58+03:30", "sent_at": "2026-11-13T11:44:58+03:30" }}GET /v1/catalog/returned-products — کالاهای برگشتی فعال
Section titled “GET /v1/catalog/returned-products — کالاهای برگشتی ”تازهترین اول. پارامترها: page، size و resolved (1 برطرفشده، 0 هنوز برگشتی).
GET /v1/catalog/returned-products/{product_id} — جزئیات و دلایل برگشت فعال
Section titled “GET /v1/catalog/returned-products/{product_id} — جزئیات و دلایل برگشت ”همان لحظه از دیجیکالا خوانده میشود؛ اگر دیجیکالا پاسخ ندهد، کد 503 با خطای digikala_unavailable و سرآیند Retry-After برمیگردد.
{ "status": "ok", "data": { "product_id": 22961150, "category_id": 8925, "brand_id": 61944, "brand_title": "پارت الکتریک", "title_fa": "محافظ ولتاژ پارت الکتریک مدل PE5144", "title_en": "Part Electric PE5144 Voltage Protector", "suggested_title_fa": null, "basic": { "model": "PE5144" }, "attributes": { "1290": "یخچال و فریزر" }, "images": [ { "id": "img_71203", "url": "https://dkstatic.digikala.com/digikala-products/a1b2c3.jpg", "is_main": true, "active": true, "reasons": ["پسزمینهی عکس اصلی باید سفید باشد."] } ], "reasons": { "title_fa": [], "model": ["مدل با عنوان همخوانی ندارد."], "attributes": {}, "images": {}, "other": {} }, "moderation_status": "in_review", "enabled_fields": ["ALL"], "locked": false }}PUT /v1/catalog/returned-products/{product_id} — ویرایش و ارسال دوباره فعال
Section titled “PUT /v1/catalog/returned-products/{product_id} — ویرایش و ارسال دوباره ”فقط فیلدهای فرستادهشده تغییر میکنند و بقیه همانطور که در دیجیکالا هست فرستاده میشوند. کالا پیش از ارسال دوباره خوانده میشود و پس از ارسال، نتیجه از دیجیکالا خوانده و برگردانده میشود.
{ "basic": { "model": "PE5144" }, "title_fa": "محافظ ولتاژ یخچال پارت الکتریک مدل PE5144", "images": [ { "id": "img_71210", "active": true }, { "id": "img_71203", "active": false } ]}| فیلد بدنه | نوع | توضیح |
|---|---|---|
title_fa، title_en |
متن | تا ۳۰۰ نویسه. |
basic |
شیء | فقط کلیدهای تغییرکرده. |
attributes |
شیء | فقط ویژگیهای تغییرکرده؛ کلید شناسهی ویژگی. |
images |
فهرست | ترتیب و فعال بودن عکسهای موجود؛ اولی عکس اصلی است. |
پاسخ نمونه (کد 200)
{ "status": "ok", "data": { "moderation_status": "waiting_for_confirm", "mismatch": [], "product": { "product_id": 22961150, "title_fa": "محافظ ولتاژ یخچال پارت الکتریک مدل PE5144", "locked": true } }}خطاهای این مسیر
| کد HTTP | خطا | معنی | تکرار بیخطر است؟ |
|---|---|---|---|
404 |
not_found |
این کالا برگشتی نیست یا در این پنل نیست. | خیر. |
409 |
product_locked_for_moderation |
تیم محتوا در حال بررسی کالاست. | خیر؛ پس از پایان بررسی. |
409 |
demo_panel_unsupported |
این بخش در پنل نمایشی در دسترس نیست. | خیر. |
502 |
digikala_refused |
دیجیکالا ویرایش را نپذیرفت؛ هیچ تغییری ثبت نشد. | پس از بررسی علت در detail. |
503 |
digikala_unavailable |
دیجیکالا در دسترس نیست. | بله، پس از Retry-After؛ با همان Idempotency-Key. |
503 |
digikala_rate_limited |
سقف درخواست دیجیکالا برای این پنل پر است. | بله، پس از Retry-After. |
🔔 رویدادهای وبهوک
Section titled “🔔 رویدادهای وبهوک”| رویداد | چه وقت |
|---|---|
variant.request_completed |
هیچ ردیفی از یک درخواست ساخت تنوع در صف، در حال ارسال یا در انتظار پاسخ نمانده است؛ با وضعیت هر ردیف و شناسهی تنوعهای ساختهشده. |
product.moderation_changed |
وضعیت تایید محتوای کالایی تغییر کرد: کالای ساختهشده با سلر ۳۶۰ (source: draft) یا کالایی که برگشت داده شده یا برگشت آن برطرف شده است (source: returned). |
job.completed |
کار ساخت تنوع یا کالای تازه تمام شد. |
نمونهی پیام product.moderation_changed
{ "id": "evt_01J0E8NB", "type": "product.moderation_changed", "created_at": "2026-11-14T09:30:06+03:30", "panel_id": 1, "livemode": true, "data": { "product_id": 23100544, "source": "draft", "draft_id": 418, "moderation_status": "approved", "previous_moderation_status": "waiting_for_confirm", "draft": { "id": 418, "status": "approved", "product_id": 23100544, "title_fa": "محافظ ولتاژ پارت الکتریک مدل PE6100" }, "returned_product": null }}پیام variant.request_completed در data.request همان ساختار یک درخواست را با همهی ردیفها دارد. پیش از استفاده از هر پیام، امضای آن را بررسی کنید.
💻 نمونهکد: ساخت تنوع تازه
Section titled “💻 نمونهکد: ساخت تنوع تازه”- درخواست را با
POST /v1/catalog/variant-requestsبفرستید وdata.idکار را نگه دارید. - منتظر رویداد
variant.request_completedبمانید، یا هر چند ثانیه کار را بخوانید. - برای ردیفهای
done،variant_idتازه را باPUT /v1/variants/{variant_id}/skuبه کد کالای سایت خود جفت کنید.
curl -X POST https://api.seller360.ir/v1/catalog/variant-requests \ -H "Authorization: Bearer $S360_API_KEY" \ -H "Idempotency-Key: colors-PE5144-1405-08-23" \ -H "Content-Type: application/json" \ -d '{"rows": [{"product_id": 22961150, "theme_value_id": 2, "warranty_id": 18421, "shipping_type": "digikala", "price": 32500000, "stock": 10, "lead_time": 1}]}'$row = [ "product_id" => 22961150, "theme_value_id" => 2, "warranty_id" => 18421, "shipping_type" => "digikala", "price" => 32500000, "stock" => 10, "lead_time" => 1,];$ch = curl_init("https://api.seller360.ir/v1/catalog/variant-requests");curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer " . getenv("S360_API_KEY"), "Idempotency-Key: colors-PE5144-1405-08-23", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => json_encode(["rows" => [$row]]), CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 20,]);$res = json_decode(curl_exec($ch), true);if (($res["error"]["code"] ?? null) === "catalog_row_invalid") { echo $res["error"]["detail"]; // علت ردیفهای نامعتبر}import os, requests
row = {"product_id": 22961150, "theme_value_id": 2, "warranty_id": 18421, "shipping_type": "digikala", "price": 32500000, "stock": 10, "lead_time": 1}res = requests.post( "https://api.seller360.ir/v1/catalog/variant-requests", headers={ "Authorization": f"Bearer {os.environ['S360_API_KEY']}", "Idempotency-Key": "colors-PE5144-1405-08-23", }, json={"rows": [row]}, timeout=20,).json()if res["status"] == "ok": job_id = res["data"]["id"]elif res["error"]["code"] == "catalog_row_invalid": print(res["error"]["detail"]) # علت ردیفهای نامعتبرconst row = { product_id: 22961150, theme_value_id: 2, warranty_id: 18421, shipping_type: 'digikala', price: 32500000, stock: 10, lead_time: 1,}const res = await fetch('https://api.seller360.ir/v1/catalog/variant-requests', { method: 'POST', headers: { Authorization: `Bearer ${process.env.S360_API_KEY}`, 'Idempotency-Key': 'colors-PE5144-1405-08-23', 'Content-Type': 'application/json', }, body: JSON.stringify({ rows: [row] }),})const body = await res.json()if (body.error?.code === 'catalog_row_invalid') { console.log(body.error.detail) // علت ردیفهای نامعتبر}using var http = new HttpClient();var req = new HttpRequestMessage(HttpMethod.Post, "https://api.seller360.ir/v1/catalog/variant-requests");req.Headers.Add("Authorization", $"Bearer {Environment.GetEnvironmentVariable("S360_API_KEY")}");req.Headers.Add("Idempotency-Key", "colors-PE5144-1405-08-23");req.Content = JsonContent.Create(new { rows = new[] { new { product_id = 22961150, theme_value_id = 2, warranty_id = 18421, shipping_type = "digikala", price = 32500000, stock = 10, lead_time = 1, } },});var res = await http.SendAsync(req);var body = await res.Content.ReadFromJsonAsync<JsonElement>();