پیشنهاد خرید هر کالای فیزیکی
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.seller360.ir/v1/purchase-suggestions?page=1&size=50&status=out_of_stock&actionable=0"), Headers = { { "Authorization", "Bearer <token>" }, },};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/purchase-suggestions?page=1&size=50&status=out_of_stock&actionable=0';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.seller360.ir/v1/purchase-suggestions?page=1&size=50&status=out_of_stock&actionable=0' \ --header 'Authorization: Bearer <token>'هر ردیف یک کالای فیزیکی است: تنوعهای فعال و تاییدشده با یک کد فروشنده، یا یک تنوع بدون کد
(#<variant_id>). همهی اعداد بر حسب واحد فیزیکی و برآوردیاند (estimated: true):
daily_sales= جمع فروش روزانهی وزندار (۷، ۳۰ و ۹۰ روز) تنوعهای کنارگذاشتهنشده × ضریب اطمینان پنلstock.on_hand=seller_available+owed+warehouse_availablestock.total=on_hand+open_purchase_ordersquantity=daily_sales× (زمان تامین + روزهای پوشش + روزهای اطمینان) −stock.total(حداقل صفر)order_by= امروز +stock.total÷daily_sales− زمان تامین − روزهای اطمینان
مقدار مثبت quantity فقط برای وضعیتهای out_of_stock، order_now و order_soon برمیگردد. ترتیب:
وضعیت (فوریتر اول)، سپس نزدیکترین مهلت سفارش.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”out_of_stock «ناموجود»؛ order_now «همین حالا سفارش دهید» (مهلت امروز یا گذشته)؛ order_soon «بهزودی
سفارش دهید» (مهلت تا ۷ روز دیگر)؛ healthy «سالم»؛ overstock «مازاد» (بیش از دو برابر روزهای پوشش)؛
no_data «دادهی ناکافی»؛ excluded «خارج از برنامهریزی».
فقط این وضعیت.
فقط کالاهایی که خرید لازم دارند (1: out_of_stock، order_now یا order_soon).
فقط این کالای فیزیکی (کد فروشنده، یا #<variant_id>).
Responses
Section titled “Responses”یک صفحه از پیشنهادها.
object
همان نام فیلدهای صفحهبندی دیجیکالا.
object
object
کد فروشنده، یا #<variant_id> برای تنوع بدون کد.
پرفروشترین تنوع کالا (نماینده).
out_of_stock «ناموجود»؛ order_now «همین حالا سفارش دهید» (مهلت امروز یا گذشته)؛ order_soon «بهزودی
سفارش دهید» (مهلت تا ۷ روز دیگر)؛ healthy «سالم»؛ overstock «مازاد» (بیش از دو برابر روزهای پوشش)؛
no_data «دادهی ناکافی»؛ excluded «خارج از برنامهریزی».
تعداد پیشنهادی خرید (واحد فیزیکی).
فروش روزانه پس از ضریب اطمینان.
stock.on_hand ÷ daily_sales.
stock.total ÷ daily_sales.
cover_days_total − زمان تامین − روزهای اطمینان.
آخرین مهلت ثبت سفارش خرید.
میزان اطمینان به سرعت فروش؛ manual یعنی برآورد دستی شما.
object
واحدهای برداشتهشدهی تقسیم موجودی که هنوز برنگشتهاند (موجودی فیزیکی).
فقط برای نمایش؛ داخل seller_available است.
سفارشداده و هنوز نرسیده.
object
تعداد همین کالا در سفارشهای خرید پیشنویس.
ریال.
quantity × unit_cost به ریال.
object
تعداد واحد در هر بستهی این تنوع.
سهم این تنوع از تعداد پیشنهادی.
Example
{ "status": "ok", "pager": { "page": 1, "item_per_page": 50, "total_pages": 12, "total_rows": 587 }, "data": [ { "group_key": "5144", "supplier_code": "5144", "variant_id": 84780448, "product_id": 22961150, "status": "out_of_stock", "quantity": 120, "daily_sales": 3.2, "days_left": 11.3, "stockout_on": "2026-11-23", "cover_days_total": 18.8, "days_to_order": 4.8, "order_by": "2026-11-16", "confidence": "high", "stock": { "seller_available": 30, "owed": 0, "warehouse_available": 6, "consignment_in_transit": 12, "open_purchase_orders": 24, "on_hand": 36, "total": 60 }, "periods": { "lead_time_days": 7, "cover_days": 30, "safety_days": 7 }, "draft_quantity": 0, "unit_cost": 185000000, "line_cost": 22200000000, "variants": [ { "variant_id": 84780448, "daily_sales": 2.1, "pack_size": 1, "confidence": "high", "quantity": 79 } ], "estimated": true } ]}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).