تعیین قیمت فروش (فوری)
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Put, RequestUri = new Uri("https://api.seller360.ir/v1/prices/84780448"), Headers = { { "Idempotency-Key", "example" }, { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"selling_price\": 299999900, \"pause_bot\": false }") { 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/prices/84780448';const options = { method: 'PUT', headers: { 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"selling_price":299999900,"pause_bot":false}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api.seller360.ir/v1/prices/84780448 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --data '{ "selling_price": 299999900, "pause_bot": false }'قیمت فروش یک تنوع را در دیجیکالا تغییر میدهد و پاسخ را پس از ثبت قطعی در دیجیکالا
برمیگرداند (200). مراحل، همان مراحل ویرایش قیمت در صفحهی محصولات پنل است:
- اگر بیش از ۲۴ ساعت از آخرین خواندن قیمت مرجع گذشته باشد (
reference_price_stale)، قیمت مرجع پیش از هر چیز دوباره از دیجیکالا خوانده میشود. - قیمت باید مضرب ۱۰۰ ریال و داخل بازهی مجاز (
allowed_min_priceتاallowed_max_price، یعنی ۰٫۵ تا ۱٫۱۴ برابر قیمت مرجع) باشد. قیمت بیرون از بازه با خطای422 price_out_of_bandرد میشود و هرگز گرد یا به لبهی بازه منتقل نمیشود؛ درdetailبازهی مجاز اعلام میشود. - اگر ربات قیمتگذاری روی این تنوع روشن باشد، تغییر با خطای
409 price_managed_by_botرد میشود؛ زیرا ربات در دور بعد قیمت را دوباره تغییر میدهد. - اگر تنوع با استراتژی ارزی قیمتگذاری شود، تغییر با خطای
409 price_managed_by_fxرد میشود.
گزینهی pause_bot: اگر pause_bot: true بفرستید و ربات روی تنوع روشن باشد، ربات
همین تنوع خاموش میشود (استراتژی متصل باقی میماند) و قیمت نوشته میشود. خاموش شدن ربات
بخشی از همین تغییر است: اگر قیمت در دیجیکالا ثبت نشود یا نتیجهی آن معلوم نباشد، ربات روشن
میماند. پس از ثبت موفق، ربات این تنوع خاموش میماند تا خودتان آن را با
PATCH /v1/bot/variants/{variant_id} و enabled: true روشن کنید. کلید اصلی ربات و تنوعهای
دیگر تغییری نمیکنند. در پاسخ موفق، bot_paused نشان میدهد که ربات خاموش شد یا نه.
قیمتی کمتر از حداقل قیمت شما رد نمیشود، اما در warnings اعلام میشود. هر تغییر موفق در
تاریخچهی قیمت با منشا api ثبت و رویداد price.changed فرستاده میشود. اگر سقف درخواست
دیجیکالا پر باشد، یا ربات قیمتگذاری منتظر باز شدن سقف باشد، یا بخش پایانی سقف هر دوره که
برای ربات کنار گذاشته میشود رسیده باشد، تغییر در صف قرار نمیگیرد و خطای
503 digikala_rate_limited با سرآیند Retry-After برمیگردد.
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
قیمت فروش به ریال، مضرب ۱۰۰ و داخل بازهی مجاز.
Example
299999900اگر ربات روی این تنوع روشن باشد، ابتدا ربات فقط همین تنوع خاموش شود و سپس قیمت نوشته
شود. بدون این گزینه، تغییر قیمت تنوعی که ربات دارد با price_managed_by_bot رد میشود.
ربات خاموششده خودکار روشن نمیشود.
Responses
Section titled “Responses”قیمت پس از ثبت در دیجیکالا.
object
object
object
قیمت فروش (پایه) به ریال.
قیمتی که خریدار میپردازد؛ با تخفیف فعال برابر قیمت تخفیف، وگرنه برابر قیمت فروش.
قیمت مرجع دیجیکالا به ریال؛ خالی یعنی دیجیکالا قیمت مرجعی اعلام نکرده است.
زمان آخرین خواندن قیمت مرجع از دیجیکالا (سن قیمت مرجع).
قیمت مرجع بیش از ۲۴ ساعت پیش خوانده شده است.
کمترین قیمتی که دیجیکالا میپذیرد (۰٫۵ برابر قیمت مرجع، گرد به بالا تا مضرب ۱۰۰).
بیشترین قیمتی که دیجیکالا میپذیرد (۱٫۱۴ برابر قیمت مرجع، گرد به پایین تا مضرب ۱۰۰).
کمترین قیمت مجاز مرجع که دیجیکالا برای این تنوع اعلام کرده است.
قیمت تخفیف فعال به ریال؛ جزئیات در GET /v1/promotions/{variant_id}.
قیمت برندهی بایباکس از همگامسازی پنل دیجیکالا؛ وضعیت زنده در GET /v1/buybox/{variant_id}.
برنده بودن بایباکس از همگامسازی پنل دیجیکالا (روزانه).
ربات قیمتگذاری روی این تنوع روشن است و استراتژی دارد؛ تغییر دستی بدون pause_bot رد میشود.
قیمت این تنوع با استراتژی ارزی تعیین میشود؛ تغییر دستی رد میشود.
حداقل قیمتی که ربات رعایت میکند، به ریال.
قیمتی که در صف تغییر دستی منتظر ثبت در دیجیکالاست.
object
تلاشهای ناموفق تاکنون (حداکثر ۵).
زمان آخرین بهروزرسانی نسخهی محلی این تنوع.
شناسهی این تغییر در تاریخچهی قیمت.
ربات این تنوع با pause_bot خاموش شد.
object
below_floor: قیمت ثبتشده کمتر از حداقل قیمت شماست.
Example
{ "status": "ok", "data": { "price": { "variant_id": 84780448, "sku": "NK-1024-G", "selling_price": 300000000, "customer_price": 289000000, "reference_price": 299999000, "allowed_min_price": 149999500, "allowed_max_price": 341998800, "floor": 280000000, "pending_write": { "selling_price": 295000000, "attempts": 1 } }, "change_id": "pcl_8812034", "warnings": [ { "code": "below_floor", "message": "این قیمت کمتر از حداقل قیمت شما (۲۸۰٬۰۰۰٬۰۰۰ ریال) است." } ] }}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).
دیجیکالا تغییر را نپذیرفت یا پاسخ نامعتبر داد؛ هیچ تغییری ثبت نشد.
object
object
پیام فارسی برای برنامهنویس.
آنچه دقیقا نادرست بود، مثلا نام پارامتر.
Example
{ "status": "error", "error": { "code": "missing_api_key" }}Headers
Section titled “Headers”کد پیگیری این درخواست.
سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.
درخواستهای باقیمانده تا پایان دقیقهی جاری.
زمان شروع دقیقهی بعد، به ثانیه از ۱۹۷۰ (Unix).
دیجیکالا در دسترس نیست یا سقف آن پر است؛ پس از Retry-After دوباره تلاش کنید.
object
object
پیام فارسی برای برنامهنویس.
آنچه دقیقا نادرست بود، مثلا نام پارامتر.
Example
{ "status": "error", "error": { "code": "missing_api_key" }}Headers
Section titled “Headers”چند ثانیه صبر کنید و دوباره تلاش کنید.