رفتن به محتوا

ربات هر تنوع

GET
/v1/bot/variants
curl --request GET \
--url 'https://api.seller360.ir/v1/bot/variants?page=1&size=50&state=running&strategy_id=412&stop_code=no_reference_price' \
--header 'Authorization: Bearer <token>'

تنظیمات ربات هر تنوعی که ردیف تنظیمات ربات دارد: روشن بودن، استراتژی، حداقل و حداکثر قیمت، آخرین تصمیم و دلیل توقف.

page
integer
default: 1 >= 1
size
integer
default: 50 >= 1 <= 500
state
  • running: ربات روشن است و تنوع را قیمت‌گذاری می‌کند.
  • stopped: ربات روشن است اما استراتژی آن را متوقف کرده است (دلیل در stop_code)؛ با تغییر شرایط خودکار ادامه می‌دهد.
  • disabled: استراتژی ربات این تنوع را خاموش کرده است (مثلا در فهرست فروشندگان نیستید).
  • parked: دیجی‌کالا ۵ بار پیاپی ثبت قیمت را رد کرد؛ تا write_blocked_until تلاشی نمی‌شود.
  • over_quota: ربات روشن است اما تنوع بیرون از سقف اشتراک است و قیمت‌گذاری نمی‌شود.
  • no_strategy: استراتژی متصل نیست؛ ربات کاری نمی‌کند.
  • off: ربات این تنوع خاموش است.
string
Allowed values: running stopped disabled parked over_quota no_strategy off

فقط تنوع‌هایی با این وضعیت.

strategy_id
integer

Example

412

فقط تنوع‌های متصل به این استراتژی.

stop_code

دلیل توقف ربات برای یک تنوع (کلیدهای ثابت):

  • no_reference_price: دیجی‌کالا برای این کالا قیمت مرجع اعلام نکرده است.
  • not_in_sellers: پیشنهاد شما در فهرست فروشندگان کالا دیده نمی‌شود.
  • floor_above_cap: حداقل قیمت شما از سقف مجاز دیجی‌کالا (۱٫۱۴ برابر قیمت مرجع) بالاتر است و استراتژی گفته متوقف شود.
  • floor_unreachable: همان وضعیت، و استراتژی گفته تنوع در دیجی‌کالا غیرفعال شود.
  • needed_price_below_floor: بردن بای‌باکس به قیمتی کمتر از حداقل قیمت شما نیاز دارد و استراتژی گفته تنوع غیرفعال شود.
  • alone_in_market: شما تنها فروشنده هستید و استراتژی گفته متوقف شود.
  • no_rivals_after_filters: رقیب وجود دارد اما با استثناهای استراتژی هیچ رقیبی نماند.
  • we_own_the_box: بای‌باکس در اختیار شماست و استراتژی گفته متوقف شود.
string
Allowed values: no_reference_price not_in_sellers floor_above_cap floor_unreachable needed_price_below_floor alone_in_market no_rivals_after_filters we_own_the_box

فقط تنوع‌هایی که ربات با این دلیل متوقف کرده است.

یک صفحه از تنظیمات ربات تنوع‌ها.

Media typeapplication/json
object
status
required
Allowed value: ok
data
required
pager
required

همان نام فیلدهای صفحه‌بندی دیجی‌کالا.

object
page
required
integer
item_per_page
required
integer
total_pages
required
integer
total_rows
required
integer
data
Array<object>
object
variant_id
required
integer
sku
string | null
enabled
required

ربات این تنوع روشن است (بدون استراتژی اثری ندارد).

boolean
strategy_id
required
integer | null
strategy_title
string | null
state
required
  • running: ربات روشن است و تنوع را قیمت‌گذاری می‌کند.
  • stopped: ربات روشن است اما استراتژی آن را متوقف کرده است (دلیل در stop_code)؛ با تغییر شرایط خودکار ادامه می‌دهد.
  • disabled: استراتژی ربات این تنوع را خاموش کرده است (مثلا در فهرست فروشندگان نیستید).
  • parked: دیجی‌کالا ۵ بار پیاپی ثبت قیمت را رد کرد؛ تا write_blocked_until تلاشی نمی‌شود.
  • over_quota: ربات روشن است اما تنوع بیرون از سقف اشتراک است و قیمت‌گذاری نمی‌شود.
  • no_strategy: استراتژی متصل نیست؛ ربات کاری نمی‌کند.
  • off: ربات این تنوع خاموش است.
string
Allowed values: running stopped disabled parked over_quota no_strategy off
stop_code
One of:

دلیل توقف ربات برای یک تنوع (کلیدهای ثابت):

  • no_reference_price: دیجی‌کالا برای این کالا قیمت مرجع اعلام نکرده است.
  • not_in_sellers: پیشنهاد شما در فهرست فروشندگان کالا دیده نمی‌شود.
  • floor_above_cap: حداقل قیمت شما از سقف مجاز دیجی‌کالا (۱٫۱۴ برابر قیمت مرجع) بالاتر است و استراتژی گفته متوقف شود.
  • floor_unreachable: همان وضعیت، و استراتژی گفته تنوع در دیجی‌کالا غیرفعال شود.
  • needed_price_below_floor: بردن بای‌باکس به قیمتی کمتر از حداقل قیمت شما نیاز دارد و استراتژی گفته تنوع غیرفعال شود.
  • alone_in_market: شما تنها فروشنده هستید و استراتژی گفته متوقف شود.
  • no_rivals_after_filters: رقیب وجود دارد اما با استثناهای استراتژی هیچ رقیبی نماند.
  • we_own_the_box: بای‌باکس در اختیار شماست و استراتژی گفته متوقف شود.
string
Allowed values: no_reference_price not_in_sellers floor_above_cap floor_unreachable needed_price_below_floor alone_in_market no_rivals_after_filters we_own_the_box
stop_reason

توضیح فارسی دلیل توقف.

string | null
floor_mode

روش تعیین حداقل قیمت:

  • manual: حداقل قیمتی که خودتان تعیین می‌کنید (min_price).
  • cost_plus: بهای خرید به‌علاوه‌ی سود هدف، خودکار محاسبه می‌شود.
string
Allowed values: manual cost_plus
min_price

حداقل قیمت دستی به ریال (در حالت cost_plus هم اگر بیشتر باشد رعایت می‌شود).

integer | null
max_price

حداکثر قیمت به ریال.

integer | null
target_profit_pct

سود هدف حالت cost_plus به درصد بهای خرید، با یک رقم اعشار.

number | null
target_profit

سود هدف حالت cost_plus به ریال؛ اگر درصد هم تعیین شده باشد، درصد ملاک است.

integer | null
floor

حداقل قیمتی که ربات اکنون رعایت می‌کند (بیشترین مقدار از روش‌های بالا و حداقل استراتژی).

integer | null
floor_source
One of:

حداقلی که ربات اکنون رعایت می‌کند از کجا آمده است:

  • manual: حداقل قیمت دستی.
  • cost_plus: بهای خرید به‌علاوه‌ی سود هدف.
  • strategy: حداقل قیمتی که استراتژی (مثلا بر پایه‌ی حاشیه‌ی سود یا قیمت مرجع) می‌سازد.
string
Allowed values: manual cost_plus strategy
base_floor

حداقل قیمت پایه (حداقل پیش از اولین کاهش گروهی)، اگر نگه داشته شده باشد.

integer | null
floor_restore_at

زمان بازگشت خودکار به حداقل قیمت پایه.

string | null format: date-time
effective_interval_minutes

فاصله‌ی فعلی بازبینی این تنوع به دقیقه (با سرعت تطبیقی و کف سرعت اشتراک).

integer | null
last_repriced_at
string | null format: date-time
last_decision

آخرین تصمیم ربات برای این تنوع.

object
at
string format: date-time
new_price
integer | null
changed
boolean
status
  • applied: پاسخ دیجی‌کالا ثبت قیمت را تایید کرد.
  • failed: تصمیم گرفته شد اما در دیجی‌کالا ثبت نشد (رد، محدودیت یا خطای ارتباط).
  • dry: شبیه‌سازی (فقط پنل نمایشی)؛ هرگز قرار نبود ثبت شود.
string
Allowed values: applied failed dry
reason
string
write_fail_streak

ردهای پیاپی ثبت قیمت توسط دیجی‌کالا.

integer
write_blocked_until
string | null format: date-time
write_fail_reason
string | null

Example

{
"status": "ok",
"pager": {
"page": 1,
"item_per_page": 50,
"total_pages": 12,
"total_rows": 587
},
"data": [
{
"variant_id": 84780448,
"strategy_id": 412,
"strategy_title": "استراتژی سلر ۳۶۰",
"state": "running",
"stop_code": "no_reference_price",
"floor_mode": "manual",
"min_price": 280000000,
"max_price": 340000000,
"target_profit_pct": 15,
"floor_source": "manual",
"effective_interval_minutes": 5,
"last_decision": {
"status": "applied"
},
"write_fail_streak": 0
}
]
}
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"
}
}
Retry-After
integer

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

X-RateLimit-Limit
integer

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

X-RateLimit-Remaining
integer

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

X-RateLimit-Reset
integer

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