سرویس محصول
در صورتی که بخواهید لیست محصولات شما به بازاریابان نمایش داده شود یا برای دستهبندیها و محصولات مختلف پورسانتهای متفاوتی را از طریق پنل کاربری اعمال کنید؛ نیاز است که محصولات فروشگاه خود را درونریزی کنید. میتوانید از طریق پیادهسازی وب سرویس یا از طریق ست کردن وب هوک این کار را انجام دهید.
وب سرویس
پیشنیازها
برای استفاده، نیاز به ارسال Bearer توکن است. از طریق ارتباط با پشتیبانی میتوانید توکن فروشگاه خود را دریافت کنید.
آدرس پایه ارسال درخواستها
https://core.affili.ir/services/products
API محصولات
طبق توضیحات داده شده در جدول زیر، از API تعریف شده میتوانید برای ایمپورت محصولات فروشگاه خود در افیلی استفاده کنید.
نوع عملیات | نوع درخواست | توضیحات | uri |
درونریزی | POST | درونریزی محصولات؛ میتوانید حداکثر ۱۰۰۰ محصول را در هر بار فراخوانی سرویس درونریزی کنید. برای بروزرسانی هم میتوانید از همین وب سرویس استفاده کنید. | /import |
درونریزی محصولات
آدرس ارسال درخواست
POST https://core.affili.ir/services/productsproducts/import
قالب درخواست درونریزی
{
"products": [
object (Product),
...
]
}
پارامترها
نام | اجباری | توضیحات |
products | بلی |
لیست محصولات |
وب هوک
کافی است APIای با قالب پاسخی مطابق زیر آماده کرده و در اختیار پشتیبانی قرار دهید. تا کار ست کردن وب هوک توسط پشتیبانی برای فروشگاه شما انجام شود.
{
"data": {
"products": [
object (Product),
...
]
},
"meta": {
"page": object (Page)
}
}
پارامترها
products |
لیست محصولات فروشگاه |
page |
اطلاعات مربوط به صفحه دریافتی شامل شماره صفحه، تعداد آیتمها در هر صفحه و ... |
اعمال فیلتر
پیادهسازی بخش فیلتر نیازمند پیروی از قوانینی است که در ادامه به شرح آنها خواهیم پرداخت.
۱- قابلیت اعمال فیلتر روی تمامی آیتمهای آبجکت محصول و دستهبندی باید فعال باشد.
۲- برای اعمال فیلتر روی مقادیر old_price ،price و last_update که میتوانند به صورت بازهای از مقادیر باشند؛ از پیشوند _min برای تعریف پارامتر ارسالی حداقل و از پیشوند _max برای تعریف پارامتر ارسالی حداکثر استفاده میشود. به طور مثال برای اعمال فیلتر روی قیمت محصول در صورتی که پارامتر min_price از سمت افیلی ارسال شود به معنای فیلتر محصولاتی است که قیمت آنها بزرگتر مساوی مقدار پارامتر min_price باشد. برای پارامتر max_price هم به طور مشابه منظور فیلتر محصولاتی است که قیمت آنها کمتر مساوی مقدار پارامتر max_price باشد.
صفحهبندی
برای پیمایش در صفحات از پارامتر page برای ارسال شماره صفحه مدنظر و از پارامتر per_page برای تعیین تعداد محصولات هر صفحه استفاده میشود.
موجودیتها
product
قالب JSON
{
"pid": string,
"name": string,
"url": string,
"price": double,
"old_price": double,
"in_stock": boolean,
"images": [
string,
...
],
"categories": [
object (Category)
],
"created_at": dateTime,
"updated_at": datetime
}
پارامترها
pid |
String شناسه یکتای محصول در وبسایت فروشگاه |
name |
String نام محصول |
url |
String آدرس صفحه محصول در وبسایت فروشگاه |
price |
Double قیمت محصول |
old_price |
Double قیمت قدیمی محصولی؛ در صورتی که محصول قیمت قدیمی ندارد مقدار این پارامتر برابر با null میشود. |
in_stock |
Boolean وضعیت موجود بودن محصول؛ که میتواند یکی از مقادیر 0، 1، true یا false را داشته باشد. |
images |
Array آرایهای از آدرس عکسهای محصول |
categories
|
لیست دستهبندیهای محصول |
created_at |
DateTime تاریخ ایجاد محصول |
updated_at |
DateTime تاریخ آخرین بروزرسانی محصول |
Category
قالب JSON
{
"cid": string,
"name": string,
"url": string,
"parent_cid": string,
"is_primary": boolean
}
پارامترها
cid |
String شناسه یکتای دستهبندی در وبسایت فروشگاه |
name |
String نام دستهبندی |
url |
String آدرس صفحه دستهبندی در وبسایت فروشگاه |
parent_cid |
String دسته والد؛ در صورتی که دستهبندی، دسته والد ندارد مقدار این پارامتر برابر با null میشود. |
is_primary |
Boolean دستهبندی شاخص؛ در صورتی که این دستهبندی، دستهبندی شاخص محصول است مقدار این پارامتر برابر با ۱ یا true و در غیر این صورت برابر با ۰ یا false میشود. |
Page
قالب JSON
{
"current": integer,
"per": integer,
"last": integer,
"total": integer
}
پارامترها
current |
Integer شماره صفحه فعلی |
per |
Integer تعداد محصولات در هر صفحه، مقدار این پارامتر میتواند حداکثر ۱۰۰۰ باشد. |
last |
Integer شماره آخرین صفحه |
total |
Integer تعداد کل محصولات |