تغییر ربات یک تنوع
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Patch, RequestUri = new Uri("https://api.seller360.ir/v1/bot/variants/84780448"), Headers = { { "Idempotency-Key", "example" }, { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"enabled\": true, \"strategy_id\": 1, \"floor_mode\": \"manual\", \"min_price\": 1, \"max_price\": 1, \"target_profit_pct\": 1 }") { 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/bot/variants/84780448';const options = { method: 'PATCH', headers: { 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"enabled":true,"strategy_id":1,"floor_mode":"manual","min_price":1,"max_price":1,"target_profit_pct":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://api.seller360.ir/v1/bot/variants/84780448 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --data '{ "enabled": true, "strategy_id": 1, "floor_mode": "manual", "min_price": 1, "max_price": 1, "target_profit_pct": 1 }'فقط فیلدهای ارسالشده تغییر میکنند. همان قواعد پنل اعمال میشود:
- روشن کردن ربات (
enabled: true) بدون استراتژی متصل رد میشود (bot_strategy_required). - اگر با این تغییر تعداد تنوعهای دارای ربات روشن از سقف اشتراک بیشتر شود، کل تغییر رد
میشود (
bot_quota_full)؛ سقف را باGET /v1/bot/limitsببینید. strategy_id: nullاستراتژی را جدا میکند و ربات تنوع را نیز خاموش میکند.- اتصال استراتژی ربات، استراتژی ارزی همان تنوع را (اگر داشته باشد) برمیدارد؛ هر تنوع فقط یک نویسندهی قیمت دارد.
- استراتژی پنهان قابل اتصال نیست (
strategy_hidden). - با روشن کردن ربات یا اتصال استراتژی، تنوع در نوبت بعدی زمانبند بررسی میشود.
این تغییر فقط تنظیمات سلر ۳۶۰ را عوض میکند و همان لحظه چیزی در دیجیکالا ثبت نمیشود؛ قیمتها در دورهای بعدی ربات تغییر میکنند.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Example
84780448عدد کد DKPC تنوع.
Header Parameters
Section titled “Header Parameters”یک شناسهی یکتا برای هر تغییر (مثلا UUID). اگر پاسخ را دریافت نکردید، همان درخواست را با همان کلید تکرار کنید؛ تغییر دو بار انجام نمیشود. پاسخ اول تا ۲۴ ساعت نگه داشته میشود.
Request Bodyrequired
Section titled “Request Bodyrequired”object
روشن یا خاموش کردن ربات همین تنوع.
استراتژی متصل؛ null استراتژی را جدا و ربات تنوع را خاموش میکند.
حداقل قیمت دستی به ریال. فرستادن عدد، floor_mode را manual میکند مگر floor_mode را هم بفرستید.
حداکثر قیمت به ریال.
سود هدف حالت cost_plus به درصد بهای خرید.
Responses
Section titled “Responses”تنظیمات ربات تنوع پس از تغییر.
object
object
ربات این تنوع روشن است (بدون استراتژی اثری ندارد).
running: ربات روشن است و تنوع را قیمتگذاری میکند.stopped: ربات روشن است اما استراتژی آن را متوقف کرده است (دلیل درstop_code)؛ با تغییر شرایط خودکار ادامه میدهد.disabled: استراتژی ربات این تنوع را خاموش کرده است (مثلا در فهرست فروشندگان نیستید).parked: دیجیکالا ۵ بار پیاپی ثبت قیمت را رد کرد؛ تاwrite_blocked_untilتلاشی نمیشود.over_quota: ربات روشن است اما تنوع بیرون از سقف اشتراک است و قیمتگذاری نمیشود.no_strategy: استراتژی متصل نیست؛ ربات کاری نمیکند.off: ربات این تنوع خاموش است.
دلیل توقف ربات برای یک تنوع (کلیدهای ثابت):
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: بایباکس در اختیار شماست و استراتژی گفته متوقف شود.
توضیح فارسی دلیل توقف.
روش تعیین حداقل قیمت:
manual: حداقل قیمتی که خودتان تعیین میکنید (min_price).cost_plus: بهای خرید بهعلاوهی سود هدف، خودکار محاسبه میشود.
حداقل قیمت دستی به ریال (در حالت cost_plus هم اگر بیشتر باشد رعایت میشود).
حداکثر قیمت به ریال.
سود هدف حالت cost_plus به درصد بهای خرید، با یک رقم اعشار.
سود هدف حالت cost_plus به ریال؛ اگر درصد هم تعیین شده باشد، درصد ملاک است.
حداقل قیمتی که ربات اکنون رعایت میکند (بیشترین مقدار از روشهای بالا و حداقل استراتژی).
حداقل قیمت پایه (حداقل پیش از اولین کاهش گروهی)، اگر نگه داشته شده باشد.
زمان بازگشت خودکار به حداقل قیمت پایه.
فاصلهی فعلی بازبینی این تنوع به دقیقه (با سرعت تطبیقی و کف سرعت اشتراک).
آخرین تصمیم ربات برای این تنوع.
object
applied: پاسخ دیجیکالا ثبت قیمت را تایید کرد.failed: تصمیم گرفته شد اما در دیجیکالا ثبت نشد (رد، محدودیت یا خطای ارتباط).dry: شبیهسازی (فقط پنل نمایشی)؛ هرگز قرار نبود ثبت شود.
ردهای پیاپی ثبت قیمت توسط دیجیکالا.
Example
{ "status": "ok", "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 }}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).
سقف درخواست گذشته است.
object
object
پیام فارسی برای برنامهنویس.
آنچه دقیقا نادرست بود، مثلا نام پارامتر.
Example
{ "status": "error", "error": { "code": "missing_api_key" }}Headers
Section titled “Headers”چند ثانیه صبر کنید و دوباره تلاش کنید.
سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.
درخواستهای باقیمانده تا پایان دقیقهی جاری.
زمان شروع دقیقهی بعد، به ثانیه از ۱۹۷۰ (Unix).