رفتن به محتوا

ساخت پیش‌نویس محموله‌ی انبارش

POST
/v1/consignment-drafts
curl --request POST \
--url https://api.seller360.ir/v1/consignment-drafts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "title": "ارسال هفتگی کرج", "warehouse_id": 1, "shipping_nature_id": 1, "target_date": "2026-11-16", "deadline_at": "2026-04-15T12:00:00Z", "hours": [ 9, 10, 13 ], "hour_order": "early", "mode": "auto", "split": true, "follow_allowed_max": true, "enabled": true }'

هر پیش‌نویس برای یک روز تحویل است (حداکثر ۷ روز بعد) و خاموش ساخته می‌شود. اقلام را با PUT /v1/consignment-drafts/{draft_id}/items تعیین کنید. هر پنل حداکثر ۳۰ پیش‌نویس دارد (draft_limit_reached). اگر مهلت ارسال نشود، ساعت ۲۳:۵۹ شب پیش از روز تحویل است.

Idempotency-Key
required
string
>= 8 characters <= 255 characters

یک شناسه‌ی یکتا برای هر تغییر (مثلا UUID). اگر پاسخ را دریافت نکردید، همان درخواست را با همان کلید تکرار کنید؛ تغییر دو بار انجام نمی‌شود. پاسخ اول تا ۲۴ ساعت نگه داشته می‌شود.

Media typeapplication/json
object
title
string
<= 120 characters

Example

ارسال هفتگی کرج
warehouse_id
required

باید با همین اندازه در GET /v1/warehouses آمده باشد.

integer

Example

1
shipping_nature_id
required

اندازه‌ی محموله؛ ۱ کوچک، ۲ متوسط، ۳ سنگین.

integer
Allowed values: 1 2 3
target_date
required

روز تحویل، از امروز تا ۷ روز بعد.

string format: date

Example

2026-11-16
deadline_at

آخرین لحظه‌ی تلاش ربات؛ دیرتر از پایان روز تحویل پذیرفته نمی‌شود.

string format: date-time
hours

ساعت‌های شروع قابل قبول؛ فهرست خالی یعنی هر ساعت.

Array<integer>

Example

[
9,
10,
13
]
hour_order

early: از زودترین ساعت؛ late: از دیرترین ساعت.

string
Allowed values: early late
mode

auto: ثبت خودکار کامل؛ confirm: پیش از ثبت، در تلگرام یا بله تایید خواسته می‌شود.

string
Allowed values: auto confirm
split

اگر یک نوبت جای همه را نداشت، تا سه تکه در ساعت‌های دیگر همان روز.

boolean
follow_allowed_max

اگر سقف انبارش کم شد، به همان اندازه بساز.

boolean
enabled

روشن کردن یعنی اجازه‌ی ثبت خودکار در دیجی‌کالا؛ از فاز ۳ پذیرفته می‌شود.

boolean

پیش‌نویس ساخته شد.

Media typeapplication/json
object
status
required
Allowed value: ok
data
required
data
required
object
id
required
integer
code
required

کد کوتاه، ماه و روز شمسی روز تحویل و شماره‌ی پیش‌نویس آن روز.

string
title
string
origin
required

seller: ساخته‌ی شما؛ replenish: ساخته‌ی انبارش هوشمند.

string
Allowed values: seller replenish
enabled
required
boolean
waiting_approval

پیش‌نویس انبارش هوشمند که منتظر تایید شماست.

boolean
mode
required
string
Allowed values: auto confirm
warehouse_id
required
integer
warehouse_title
string
shipping_nature_id
required

اندازه‌ی محموله؛ ۱ کوچک، ۲ متوسط، ۳ سنگین.

integer
Allowed values: 1 2 3
target_date
string | null format: date
deadline_at
string | null format: date-time
searching_from

اولین روزی که ربات برای این پیش‌نویس جست‌وجو می‌کند.

string | null format: date
hours
Array<integer>
hour_order
string
Allowed values: early late
split
boolean
follow_allowed_max
boolean
tag
required

reserved: روز تحویل هنوز دور است (ربات از سه روز مانده شروع می‌کند)؛ active: ربات در جست‌وجوی نوبت است؛ off: خاموش؛ built: محموله ثبت شد؛ missed: مهلت بدون ثبت تمام شد؛ stopped: ثبت به دلیلی متوقف شد که با تلاش دوباره حل نمی‌شود.

string
Allowed values: reserved active off built missed stopped
ending

چگونه تمام شد؛ تا وقتی تمام نشده، خالی است.

string | null
Allowed values: built missed stopped
ended_at
string | null format: date-time
problem

دلیل فارسی اینکه پیش‌نویس روشن نمی‌تواند کار کند؛ وگرنه خالی.

string | null
items
required
Array<object>
object
variant_id
required
integer
count
required
integer
title
string
allowed_max

سقف انبارش در آخرین خواندن.

integer | null
digikala_stock

موجودی انبار دیجی‌کالا در آخرین خواندن.

integer | null
synced_at
string | null format: date-time
total_units
required
integer
remaining_units
required

واحدهایی که هنوز در محموله‌ای ثبت نشده‌اند.

integer
open_slots

نوبت‌های باز سازگار که پایش همین حالا می‌شناسد (حداکثر ۶).

Array<object>
object
date
string format: date
capacity_id
integer
starts_at
integer
ends_at
integer
remained
integer | null
last_built_on
string | null format: date
paused_until

ربات تا این زمان برای این پیش‌نویس صبر می‌کند.

string | null format: date-time
created_at
string format: date-time
updated_at
string format: date-time

Example

{
"status": "ok",
"data": {
"id": 318,
"code": "0825-1",
"title": "ارسال هفتگی کرج",
"origin": "seller",
"mode": "auto",
"warehouse_id": 1,
"warehouse_title": "انبار کرج",
"shipping_nature_id": 1,
"target_date": "2026-11-16",
"hours": [
9,
10,
13
],
"hour_order": "early",
"tag": "reserved",
"ending": "built",
"items": [
{
"variant_id": 84780448,
"count": 40,
"allowed_max": 60,
"digikala_stock": 12
}
],
"total_units": 120,
"remaining_units": 80,
"open_slots": [
{
"capacity_id": 9081733,
"starts_at": 10,
"ends_at": 11
}
]
}
}
X-Request-Id
string

کد پیگیری این درخواست.

X-RateLimit-Limit
integer

سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.

X-RateLimit-Remaining
integer

درخواست‌های باقی‌مانده تا پایان دقیقه‌ی جاری.

X-RateLimit-Reset
integer

زمان شروع دقیقه‌ی بعد، به ثانیه از ۱۹۷۰ (Unix).

پارامتر یا بدنه‌ی نامعتبر.

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}
X-Request-Id
string

کد پیگیری این درخواست.

X-RateLimit-Limit
integer

سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.

X-RateLimit-Remaining
integer

درخواست‌های باقی‌مانده تا پایان دقیقه‌ی جاری.

X-RateLimit-Reset
integer

زمان شروع دقیقه‌ی بعد، به ثانیه از ۱۹۷۰ (Unix).

کلید ارسال نشده یا نامعتبر است.

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}

کلید دسترسی لازم را ندارد، یا ماژول یا پنل فعال نیست.

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}

تغییر با وضعیت فعلی سازگار نیست (موجودی ناکافی، نسخه‌ی تغییرکرده، قفل یا کلید یکتای تکراری).

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}
X-Request-Id
string

کد پیگیری این درخواست.

X-RateLimit-Limit
integer

سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.

X-RateLimit-Remaining
integer

درخواست‌های باقی‌مانده تا پایان دقیقه‌ی جاری.

X-RateLimit-Reset
integer

زمان شروع دقیقه‌ی بعد، به ثانیه از ۱۹۷۰ (Unix).

درخواست درست است اما قاعده‌ی کسب‌وکار اجازه نمی‌دهد (مثلا قیمت بیرون از بازه).

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}
X-Request-Id
string

کد پیگیری این درخواست.

X-RateLimit-Limit
integer

سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.

X-RateLimit-Remaining
integer

درخواست‌های باقی‌مانده تا پایان دقیقه‌ی جاری.

X-RateLimit-Reset
integer

زمان شروع دقیقه‌ی بعد، به ثانیه از ۱۹۷۰ (Unix).

سقف درخواست گذشته است.

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}
Retry-After
integer

چند ثانیه صبر کنید و دوباره تلاش کنید.

X-RateLimit-Limit
integer

سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.

X-RateLimit-Remaining
integer

درخواست‌های باقی‌مانده تا پایان دقیقه‌ی جاری.

X-RateLimit-Reset
integer

زمان شروع دقیقه‌ی بعد، به ثانیه از ۱۹۷۰ (Unix).