ثبت یا ویرایش تخفیف هوشمند
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Put, RequestUri = new Uri("https://api.seller360.ir/v1/promotions/84780448"), Headers = { { "Idempotency-Key", "example" }, { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"price\": 289000000, \"days\": 7, \"order_limit\": 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/promotions/84780448';const options = { method: 'PUT', headers: { 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"price":289000000,"days":7,"order_limit":1}'};
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/promotions/84780448 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --data '{ "price": 289000000, "days": 7, "order_limit": 1 }'تخفیف را در دیجیکالا ثبت یا ویرایش میکند و پاسخ را پس از پاسخ دیجیکالا برمیگرداند. پیش از ارسال، همهی قواعد بررسی میشود:
- تنوع باید واجد شرایط باشد (
promotion_not_eligible). - اگر ربات با روش «تخفیف هوشمند» قیمت این تنوع را تعیین کند، تغییر دستی رد میشود
(
promotion_managed_by_bot). - تنوع باید حداقل قیمت داشته باشد (
promotion_no_floor) و قیمت تخفیف کمتر از آن نباشد (promotion_below_floor). - قیمت تخفیف مضرب ۱۰۰، بیشتر از ۱٬۰۰۰ ریال و حداکثر برابر
capباشد؛ مدت ۱ تا ۳۰ روز و سقف تعداد در هر سفارش داخل بازهی دیجیکالا باشد (promotion_invalid، باdetail).
ویرایش تخفیف در حال اجرا، شروع آن را نگه میدارد. اگر پایان درخواستی از ۷ روز پس از شروع
تخفیف فعلی بگذرد، تخفیف تازه ثبت و تخفیف قبلی حذف میشود. اگر دیجیکالا تخفیف را نپذیرد، خطای
502 digikala_refused با پیام دیجیکالا در detail برمیگردد.
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
قیمت تخفیف به ریال؛ حداکثر برابر cap و دستکم برابر حداقل قیمت شما.
Example
289000000مدت تخفیف به روز.
سقف تعداد در هر سفارش؛ باید داخل بازهی order_limit_min تا order_limit_max باشد. پیشفرض، مقدار تخفیف فعلی یا کمترین مقدار مجاز.
Responses
Section titled “Responses”تخفیف پس از پاسخ دیجیکالا.
object
object
object
دیجیکالا تخفیف هوشمند را برای این تنوع مجاز میداند.
ok: تخفیف دستی ممکن است.blocked: سقف قیمت تخفیف دیجیکالا کمتر از حداقل قیمت شماست؛ تخفیفی ثبتشدنی نیست.no_floor: تنوع حداقل قیمت ندارد؛ تخفیف ثبت نمیشود.bot: ربات با روش تخفیف هوشمند قیمت این تنوع را تعیین میکند؛ تغییر دستی ممکن نیست.
قیمت مرجع به ریال؛ درصد تخفیف نسبت به آن است.
قیمت فروش پایه به ریال.
قیمتی که خریدار میپردازد.
حداقل قیمت شما به ریال.
بیشترین قیمت تخفیفی که دیجیکالا میپذیرد، به ریال.
کمترین درصد تخفیف قابل قبول دیجیکالا.
بیشترین درصد تخفیفی که حداقل قیمت شما اجازه میدهد.
حداقل درصد تخفیف دستهی کالا.
موجودی قابل فروش.
تخفیف فعال؛ خالی یعنی تخفیفی در جریان نیست.
object
شناسهی رکورد تخفیف در دیجیکالا.
ریال.
درصد تخفیف نسبت به قیمت مرجع.
تعداد کالا در تخفیف.
سقف تعداد در هر سفارش.
وضعیت تخفیف در دیجیکالا؛ pending یعنی منتظر تایید دیجیکالا.
external: بیرون از سلر ۳۶۰ (مثلا در پنل دیجیکالا) ثبت شده است.manual: ثبت دستی در سلر ۳۶۰ یا از API.bot: ربات قیمتگذاری.auto_step: تخفیف پلهای کالای کمفروش.auto_renew: تمدید خودکار.
پلهی فعلی تخفیف پلهای (۰ یعنی بدون پله).
آخرین پیام رد دیجیکالا در ۲ روز گذشته.
تخفیف تازه بهجای تخفیف قبلی ثبت شد.
پیامی که با ثبت موفق همراه است (مثلا حذف نشدن تخفیف قبلی).
Example
{ "status": "ok", "data": { "promotion": { "variant_id": 84780448, "state": "ok", "reference_price": 299999000, "base_price": 300000000, "customer_price": 289000000, "floor": 280000000, "floor_source": "manual", "cap": 293900000, "cap_pct": 2, "floor_pct": 7, "min_discount_pct": 2, "order_limit_min": 1, "order_limit_max": 1000, "stock": 38, "discount": { "promotion_variant_id": 51820044, "promotion_price": 289000000, "discount_pct": 4, "limit": 38, "order_limit": 10, "status": "active", "source": "external" }, "step_level": 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).
دیجیکالا تغییر را نپذیرفت یا پاسخ نامعتبر داد؛ هیچ تغییری ثبت نشد.
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”چند ثانیه صبر کنید و دوباره تلاش کنید.