ساخت محمولهی سفارش (در صف)
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Post, RequestUri = new Uri("https://api.seller360.ir/v1/packages"), Headers = { { "Idempotency-Key", "example" }, { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"delivery_method\": \"seller\", \"date\": \"2026-11-14\", \"items\": [ { \"variant_id\": 84780448, \"count\": 3 } ], \"place_id\": 1, \"capacity_id\": 9081733 }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}const url = 'https://api.seller360.ir/v1/packages';const options = { method: 'POST', headers: { 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"delivery_method":"seller","date":"2026-11-14","items":[{"variant_id":84780448,"count":3}],"place_id":1,"capacity_id":9081733}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.seller360.ir/v1/packages \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --data '{ "delivery_method": "seller", "date": "2026-11-14", "items": [ { "variant_id": 84780448, "count": 3 } ], "place_id": 1, "capacity_id": 9081733 }'برای اقلامی که تعهد ارسال دارند، محمولهی سفارش میسازد؛ اقلام کوچک در یک محموله و
اقلام متوسط و سنگین در محمولهی دوم (حداکثر دو محموله در هر درخواست). پیش از ساخت،
تعهد ارسال هر تنوع دوباره از دیجیکالا خوانده میشود و تعداد بیشتر از تعهد پذیرفته
نمیشود. محل و زمان تحویل را از GET /v1/packages/build-options بخوانید؛ برای روش
digikala نیازی به محل و زمان نیست، اما پس از ساخت باید جمعآوری را ثبت کنید
(POST /v1/packages/pickups).
پاسخ فوری فقط ثبت در صف است (202). نتیجه با GET /v1/jobs/{job_id} و رویداد
job.completed اعلام میشود. اگر پاسخ دیجیکالا نرسد، وضعیت کار unknown است، نه
failed: محموله ممکن است ساخته شده باشد. در این حالت پیش از تکرار، فهرست محمولهها را
بخوانید؛ درخواست با کلید یکتای تازه ممکن است محمولهی دوم بسازد.
همزمان با تقسیم موجودی پذیرفته نمیشود (stock_write_locked) و در هر پنل در هر لحظه
فقط یک ساخت یا ثبت جمعآوری اجرا میشود (build_in_progress).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”یک شناسهی یکتا برای هر تغییر (مثلا UUID). اگر پاسخ را دریافت نکردید، همان درخواست را با همان کلید تکرار کنید؛ تغییر دو بار انجام نمیشود. پاسخ اول تا ۲۴ ساعت نگه داشته میشود.
Request Bodyrequired
Section titled “Request Bodyrequired”object
روش تحویل محمولهی سفارش. seller: خودتان به انبار دیجیکالا میبرید؛ digikala:
دیجیکالا از نشانی شما جمعآوری میکند؛ mobile_hub: تحویل به انبار سیار؛ post: توسط پست.
روز ارسال، از امروز تا ۷ روز بعد.
Example
2026-11-14تعداد هر تنوع حداکثر برابر تعهد ارسال فعلی آن.
object
Example
84780448Example
3شناسهی محل از build-options؛ برای همهی روشها جز digikala الزامی است.
Example
1شناسهی نوبت از build-options؛ برای همهی روشها جز digikala الزامی است.
Example
9081733Responses
Section titled “Responses”کار در صف ثبت شد.
object
object
unknown یعنی پاسخ دیجیکالا نرسید و نتیجه هنوز روشن نیست؛ این وضعیت هرگز به معنی «انجام نشد» نیست
و سلر ۳۶۰ با بررسی دوباره آن را به completed یا failed تبدیل میکند.
نتیجهی کارهایی که قلم به قلم نیستند، به شکل خاص هر نوع کار؛ مثلا شناسهی محمولهی ساختهشده
(package_id)، شناسهی اجرای تقسیم موجودی (run_id) یا شناسهی تنوع ساختهشده (variant_id).
object
کد خطا برای قلم ردشده.
Example
{ "status": "ok", "data": { "id": "job_8f2c1e", "kind": "stock_batch", "status": "queued", "items": [ { "status": "pending" } ] }}Headers
Section titled “Headers”کد پیگیری این درخواست.
سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.
درخواستهای باقیمانده تا پایان دقیقهی جاری.
زمان شروع دقیقهی بعد، به ثانیه از ۱۹۷۰ (Unix).
پارامتر یا بدنهی نامعتبر.
object
object
پیام فارسی برای برنامهنویس.
آنچه دقیقا نادرست بود، مثلا نام پارامتر.
Example
{ "status": "error", "error": { "code": "missing_api_key" }}Headers
Section titled “Headers”کد پیگیری این درخواست.
سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.
درخواستهای باقیمانده تا پایان دقیقهی جاری.
زمان شروع دقیقهی بعد، به ثانیه از ۱۹۷۰ (Unix).
کلید ارسال نشده یا نامعتبر است.
object
object
پیام فارسی برای برنامهنویس.
آنچه دقیقا نادرست بود، مثلا نام پارامتر.
Example
{ "status": "error", "error": { "code": "missing_api_key" }}کلید دسترسی لازم را ندارد، یا ماژول یا پنل فعال نیست.
object
object
پیام فارسی برای برنامهنویس.
آنچه دقیقا نادرست بود، مثلا نام پارامتر.
Example
{ "status": "error", "error": { "code": "missing_api_key" }}تغییر با وضعیت فعلی سازگار نیست (موجودی ناکافی، نسخهی تغییرکرده، قفل یا کلید یکتای تکراری).
object
object
پیام فارسی برای برنامهنویس.
آنچه دقیقا نادرست بود، مثلا نام پارامتر.
Example
{ "status": "error", "error": { "code": "missing_api_key" }}Headers
Section titled “Headers”کد پیگیری این درخواست.
سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.
درخواستهای باقیمانده تا پایان دقیقهی جاری.
زمان شروع دقیقهی بعد، به ثانیه از ۱۹۷۰ (Unix).
درخواست درست است اما قاعدهی کسبوکار اجازه نمیدهد (مثلا قیمت بیرون از بازه).
object
object
پیام فارسی برای برنامهنویس.
آنچه دقیقا نادرست بود، مثلا نام پارامتر.
Example
{ "status": "error", "error": { "code": "missing_api_key" }}Headers
Section titled “Headers”کد پیگیری این درخواست.
سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.
درخواستهای باقیمانده تا پایان دقیقهی جاری.
زمان شروع دقیقهی بعد، به ثانیه از ۱۹۷۰ (Unix).
سقف درخواست گذشته است.
object
object
پیام فارسی برای برنامهنویس.
آنچه دقیقا نادرست بود، مثلا نام پارامتر.
Example
{ "status": "error", "error": { "code": "missing_api_key" }}Headers
Section titled “Headers”چند ثانیه صبر کنید و دوباره تلاش کنید.
سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.
درخواستهای باقیمانده تا پایان دقیقهی جاری.
زمان شروع دقیقهی بعد، به ثانیه از ۱۹۷۰ (Unix).