توسعه‌دهندگان در این بخش روش‌های مختلف پیاده‌سازی و استفاده از سرویس‌های ارائه شده به فروشگاه‌ها، توضیح داده خواهد شد. اسکریپت ردیابی در صورتی که تیم فنی شما امکان پیاده‌سازی سرویس‌ها را ندارد یا تمایلی به پیاده‌سازی API ندارید می‌توانید برای ردیابی خریدهای انجام شده از اسکریپت ردیابی افیلی استفاده کنید. ردیابی لینک‌ها: قطعه کد زیر را در تگ هد همه صفحات سایت خود قرار دهید. ثبت مشتری: در صورتی که ارائه دهنده سرویس SaaS هستید یا مشتری در ازای پرداخت حق عضویت از خدمات شما استفاده می‌کند و می‌خواهید در طول یک مدت زمان خاص یا برای تکرار خرید به بازاریاب پورسانت پرداخت کنید. نیاز است بعد از ثبت‌نام مشتری در سیستم شما از طریق قطعه کدی که در ادامه می‌آوریم، یک مشتری ایجاد کنید. پس از اینکه مشتری در افیلی تعریف ثبت شد شناسه مشتری در افیلی توسط تابع callback بازگردانده می‌شود. شما باید این مقدار را در دیتابیس خود ذخیره کنید. در قطعه کد بالا متغیرهای customerId و metaData باید با مقادیر صحیح توسط شما پر شوند که توضیح هر کدام را در ادامه می‌دهیم.  customerId:  شناسه یکتای مشتری در سیستم شماست.  metaData: آبجکتی حاوی اطلاعات اضافه راجع به مشتری است. ارسال این پارامتر اختیاری است.  تذکر: در صورتی که مشتری از سمت افیلی نباشد، دیتایی سمت افیلی ذخیره نشده و تابع callback نیز فراخوانی نمی‌شود. ثبت فروش: برای ثبت فروش‌های انجام شده در thank you page قطعه کد زیر را قرار دهید. دقت داشته باشید در کد بالا متغیرهای uniqueSaleId ،saleAmount ،couponCode ،products و affiliCustomerId باید توسط شما با مقادیر صحیح پر شود؛ که توضیح هر کدام در زیر آمده است. uniqueSaleId: یک شناسه یکتاست که باید در سیستم خود برای هر فروش ایجاد کنید. شما باید این متغیر را با یک تگ یا متغیر واقعی جایگزین کنید تا مقدار مربوطه را در هر فروش به صورت خودکار مقداردهی کند. شناسه یکتا میتواند هر چیزی که برای شما معنادار است باشد و باید برای هر فروش نیز منحصربفرد باشد. به طور مثال: شماره سفارش، شماره تراکنش و ... پس از ثبت فروش می‌توانید این شناسه را در پنل افیلی بخش کانورژنها مشاهده کنید. این امر باعث می‌شود که مدیریت داده‌های موجود در افیلی و سیستم شما آسانتر شود. saleAmount: مبلغ کل فروش یا همان مبلغ پرداختی کاربر بابت خرید است. دقت داشته باشید مبلغ مربوط به کرایه حمل و نقل و مالیات نباید لحاظ شده باشد. couponCode: در صورتی که مشتری هنگام خرید از کد تخفیف استفاده کرده باشد کد تخفیف مربوطه را باید وارد کنید در غیر اینصورت با مقدار null پر شود. products: آرایه‌ای از محصولاتی است که توسط مشتری خریداری شده، که به صورت زیر پر می‌شود. products = [ { "name": "محصول نمونه", "unit_price": 12000, "quantity": 3, "total_price": 36000 }, { "name": "محصول نمونه شماره دو", "unit_price": 43000, "quantity": 1, "total_price": 43000 } ] affiliCusomerId: شناسه یکتای مشتری در افیلی است. ارسال این پارامتر اختیاری است.  واحد پولی: به صورت پیش‌فرض واحد پولی فروشگاه‌ها در افیلی ریال است در صورتی که از واحد پولی تومان استفاده می‌کنید به پشتیبانی فروشگاه‌ها اطلاع دهید تا واحد پولی شما تغییر کند. ثبت لید: برای ثبت لید هنگامی که اقدام مورد نظر رخ داد، قطعه کد زیر را فراخوانی کنید. پارامتر form_id در متا دیتا برای هر فرم باید مقدار یکتایی داشته باشد. و ارسال آن الزامی است. این مقدار می‌تواند از نوع عدد یا یک رشته باشد. همچنین برای فرمهای لید همانند بالا می‌توانید سایر داده‌های فرم را در متغیر متا دیتا برای ما ارسال کنید. ارسال این اطلاعات برای تطبیق و جلوگیری از تقلب ناشران الزامی است.سرویس کانورژن برای ردیابی و مدیرت کانورژن‌ها و علاوه بر پیاده‌سازی اسکریپت می‌توانید از طریق API‌های سرویس کانورژن، اقدام به پیاده‌سازی سرویس همکاری در فروش نمایید. در ادامه به بررسی API‌های این سرویس و نحوه استفاده از آنها خواهیم پرداخت. تعاریف لینک افیلیت به لینک کوتاه شده‌ای که توسط بازاریاب در افیلی ساخته می‌شود و مشتری پس از کلیک روی آن به وبسایت شما ارجاع داده می‌شود لینک افیلیت می‌گویند. هر لینک افیلیت پس از ارجاع به وبسایت فروشگاه شامل پارامترهای زیر خواهد بود. referrer: توکنی است که در هر بار ارجاع، به لینک ارجاع اختصاص داده می‌شود. این توکن مقدار یکتایی دارد و برای صحت سنجی کلیک‌ها مورد استفاده قرار می‌گیرید. exp: تعداد روزهای اعتبار کوکی در مرورگر کاربر است. dl: این پارامتر مشخص کننده تعداد دفعات مجاز ثبت کانورژن برای بازاریاب ارجاع‌دهنده خواهد بود. به عبارت دیگر این مقدار به ما می‌گوید تا چند بار در صورت خرید مشتری به بازاریاب پورسانت تعلق خواهد گرفت. نکته: مقدار 1- به معنای نامحدود است. و در صورت اعمال تا زمان معتبر بودن کوکی در صورت خرید مشتری به بازاریاب پورسانت تعلق می‌گیرد. کانورژن به هر اقدامی که فروشگاه در ازای آن به بازاریاب پورسانت پرداخت می‌کند کانورژن می‌گویند. افیلی دو نوع کانورژن فروش و لید را پشتیبانی می‌کند. دوره کوکی مدت زمانی است که لینک افیلیت معتبر بوده و در صورت تحقق کانورژن در این بازه زمانی به بازاریاب پورسانت تعلق خواهد گرفت. دوره مرجوعی مدت زمانی است که پس از ایجاد کانورژن امکان ویرایش آن وجود دارد. پس از این مدت زمان کانورژن لاک شده و در اولین سیکل بررسی کانورژن‌های لاک شده، پورسانت آن از حساب فروشگاه کسر و به بازاریاب پرداخت خواهد شد. پیش‌نیازها برای استفاده از سرویس‌های تعریف شده، نیاز به ارسال Bearer توکن است. از طریق ارتباط با پشتیبانی می‌توانید توکن دسترسی را دریافت کنید. آدرس پایه ارسال درخواست‌ها https://core.affili.ir/services/conversions API کانورژن‌ها طبق توضیحات داده شده در جدول زیر، از سه API تعریف شده می‌توانید برای ایجاد، ویرایش و دریافت کانورژن‌ها استفاده کنید. نوع عملیات نوع درخواست توضیحات uri ایجاد POST ایجاد کانورژن جدید / ویرایش POST ویرایش کانورژن ایجاد شده؛ conversionId شناسه کانورژن ایجاد شده در افیلی است. /{conversionId} لیست GET دریافت لیست کانورژن‌های ثبت شده / ایجاد کانورژن بعد از اینکه مشتری از طریق لینک افیلیت وارد وبسایت شما شد پارامترهای referrer و dl را به مدت زمان طول دوره کوکی (مقدار پارامتر exp)، در کوکی مرورگر کاربر ذخیره می‌کنیم. بعد از تحقق کانورژن (به طور مثال انجام خرید توسط مشتری) از طریق API ایجاد کانورژن، اطلاعات مربوطه به افیلی ارسال می‌شود. در ادامه به بررسی نمونه دیتای ارسالی و دریافتی در ایجاد کانورژن‌های فروش و لید خواهیم پرداخت. تذکر: در صورتی که از قبل مشتری را تعریف کرده باشید و در API کانورژن شناسه مشتری را ارسال کنید نیازی به ارسال referrer نیست.   آدرس ارسال درخواست POST https://core.affili.ir/services/conversions قالب درخواست ایجاد کانورژن { "referrer": string, "order_id": string, "amount": double, "type": string, "products": [ object (Product), ... ], "is_first_order": boolean, "meta_data": object (MetaData), "coupon": string, "customer_id": string, } پارامترها نام اجباری توضیحات referrer بلی String توکن ارجاع که قبلا در مرورگر کاربر ذخیر شده. ارسال این پارامتر زمانی که customer_id ارسال می‌شود، اختیاری است. type بلی String نوع کانورژن که می‌تواند یکی از مقادیر "sale" یا "lead" باشد. order_id بلی String شماره‌ی سفارش انجام شده amount بلی Double مبلغ کل سبد خرید products خیر Array of Product Object لیست محصولات خریداری شده توسط مشتری؛ این پارامتر در کانورژن‌هایی با نوع  فروش(sale) ارسال می‌شود. coupon خیر String کد تخفیف استفاده شده در خرید is_first_order خیر Boolean پارامتر مشخص‌کننده اولین خرید meta_data بلی MetaData Object آبجکت حاوی اطلاعات لید ثبت شده؛ این پارامتر در کانورژن‌هایی با نوع لید(lead) ارسال می‌شود. customer_id خیر String شناسه یکتای مشتری در افیلی قالب پاسخ ایجاد کانورژن { "status": "ok", "tag": "saveConversion", "api_version": "1.0.0", "data": { "id": string, "publisher": object (Publisher), "status": integer, "type": string, "is_closed": integer, "checked_out": integer, "checked_out_at": dateTime, "order_id": string, "amount": double, "commission_amount": double, "wage": double, "products": [ object (Product), ... ], "is_first_order": boolean, "meta_data": object (MetaData) "created_at": dateTime, "updated_at": dateTime, "currency": string, "customer_id": string, } } پارامترها نام توضیحات id String شناسه یکتای کانورژن ایجاد شده در افیلی publisher Publisher Object آبجکت مربوط به اطلاعات بازاریاب. status Conversion Status Constant وضعیت کانورژن که می‌تواند یکی از اعداد ۰(در انتظار تایید توسط سیستم)، ۱(تایید شده)، ۲(رد شده)، ۳(تکراری) یا ۴(نیازمند بررسی دستی) باشد. type String نوع کانورژن که می‌تواند sale یا lead باشد. is_closed Integer وضعیت لاک کانورژن را نشان می‌دهد و در صورتی که مقدار آن ۱ باشد امکان ویرایش کانورژن وجود نخواهد داشت. checked_out Integer وضعیت تسویه با بازاریاب را نشان می‌دهد checked_out_at DateTime تاریخ تسویه پورسانت با بازاریاب amount Double مبلغ سبد خرید؛ این پارامتر تنها در صورتی که کانورژن از نوع فروش(sale) باشد نمایش داده می‌شود. commission_amount Double مبلغ پورسانت wage Double کارمزد افیلی order_id String شماره سفارش products Array of Product Object لیست محصولات خریداری شده توسط مشتری؛ این پارامتر تنها در صورتی که کانورژن از نوع فروش(sale)، نمایش داده می‌شود. is_first_order Boolean پارامتر مشخص‌کننده اولین خرید meta_data MetaData Object آبجکت حاوی اطلاعات لید ایجاد شده؛ این پارامتر تنها در کانورژن‌هایی از نوع لید(lead) نمایش می‌شود. coupon String کد تخفیف استفاده شده در خرید؛ این پارامتر تنها در صورتی که کانورژن از نوع فروش(sale)، نمایش داده می‌شود. created_at DateTime تاریخ ایجاد updated_at DateTime تاریخ آخرین بروزرسانی currency String واحد پولی کانورژن ثبت شده که می‌تواند یکی از مقادیر IRT(تومان) یا IRR(ریال) باشد. customer_id String شناسه یکتای مشتری در افیلی درخواست نمونه برای ایجاد کانورژن از نوع فروش { "referrer": "63b01acf9bf8325c1a3a2325", "order_id": "1234598", "amount": "12000", "type": "sale", "products": [ { "name": "محصول نمونه", "unit_price": "12000", "quantity": "3", "total_price": "36000" }, { "name": "محصول نمونه شماره دو", "unit_price": "43000", "quantity": "1", "total_price": "43000" } ], "is_first_order": false, "coupon": null } پاسخ نمونه برای ایجاد کانورژن از نوع فروش { "status": "ok", "tag": "saveConversion", "api_version": "1.0.0", "data": { "id": "zbndn", "publisher": { "id": "gedyj", "full_name": "نام بازاریاب" }, "status": 0, "type": "sale", "is_closed": 0, "checked_out": 0, "checked_out_at": null, "order_id": "1234598", "amount": 12000, "commission_amount": 408.8, "wage": 81.76, "products": [ { "name": "محصول نمونه", "unit_price": "12000", "quantity": "3", "total_price": "36000" }, { "name": "محصول نمونه شماره دو", "unit_price": "43000", "quantity": "1", "total_price": "43000" } ], "is_first_order": false, "created_at": "2022-12-31 19:27:32", "updated_at": "2022-12-31 19:27:32", "currency": "IRT", "customer_id": null } } درخواست نمونه برای ایجاد کانورژن از نوع لید { "referrer": "63abe5089bf8325c1a3a231a", "type": "lead", "meta_data": { "form_id": "register-form", "uniq_param": "09123456789", "first_name": "First Name", "last_name": "Last Name" } } پاسخ نمونه برای ایجاد کانورژن از نوع لید { "status": "ok", "tag": "saveConversion", "api_version": "1.0.0", "data": { "id": "ydnak", "publisher": { "id": "gedyj", "full_name": "نام بازاریاب" }, "status": 1, "type": "lead", "is_closed": 0, "checked_out": 0, "checked_out_at": null, "commission_amount": 2000, "wage": 400, "order_id": "7007e72b-10d8-540e-9b48-32c14a4f5f6d", "created_at": "2022-12-31 19:36:20", "updated_at": "2022-12-31 19:36:20", "currency": "IRT", "meta_data": { "form_id": "register-form", "uniq_param": "09123456789", "first_name": "First Name", "last_name": "Last Name" }, "customer_id": null } } ویرایش کانورژن می‌توانید تا قبل از پایان دوره مرجوعی و لاک شدن کانورژن، آن را ویرایش کنید. دقت داشته باشید که بعد از لاک شدن امکان اعمال تغییرات وجود نخواهد داشت. آدرس ارسال درخواست POST https://core.affili.ir/services/conversions/{conversionId} *پارامتر conversionId در آدرس، شناسه کانورژن ثبت شده در افیلی است. قالب درخواست ویرایش کانورژن { "order_id": string, "amount": double, "products": [ object (Product), ... ], "is_first_order": boolean, "meta_data": object (MetaData), "coupon": string, "status": integer, "recalculate": integer } پارامترها نام توضیحات order_id String شماره‌ی سفارش انجام شده؛ این پارامتر در کانورژن‌هایی با نوع فروش(sale) ارسال می‌شود. amount Double مبلغ کل سبد خرید؛ این پارامتر در کانورژن‌هایی با نوع فروش(sale) ارسال می‌شود. products Array of Product Object لیست محصولات خریداری شده توسط مشتری؛ این پارامتر در کانورژن‌هایی با نوع  فروش(sale) ارسال می‌شود. is_first_order Boolean پارامتر مشخص‌کننده اولین خرید meta_data MetaData Object آبجکت حاوی اطلاعات لید ثبت شده؛ این پارامتر در کانورژن‌هایی با نوع لید(lead) ارسال می‌شود. coupon String کد تخفیف استفاده شده در خرید؛ این پارامتر در کانورژن‌هایی با نوع فروش(sale) ارسال می‌شود. status Conversion Status Constant وضعیت کانورژن که می‌تواند یکی از اعداد ۱(تایید شده)، ۲(رد شده) یا ۴(نیازمند بررسی دستی) باشد. recalculate Boolean در صورت ویرایش پارامترهای تاثیرگذار در محاسبه پورسانت همانند مبلغ کل سبد خرید، محصولات خریداری شده و ... برای محاسبه مجدد پورسانت باید پارامتر recalculate برابر با مقدار یک یا true باشد. لیست کانورژن‌ها برای دریافت لیست کانورژن‌های ثبت شده از API زیر استفاده کنید. آدرس ارسال درخواست GET https://core.affili.ir/services/conversions قالب پارامترهای ارسالی برای اعمال فیلتر { "id": string, "status" integer, "type": string, "external_id": string, "is_closed": integer, "checked_out" integer, "min_commission_amount": double, "max_commission_amount": double, "min_created_at": dateTime, "max_created_at": dateTime, "min_updated_at": dateTime, "max_updated_at": dateTime, "min_amount": double, "max_amount" double, } پارامترها نام توضیحات id String شناسه یکتای کانورژن در افیلی status Conversion Status Constant وضعیت کانورژن که می‌تواند یکی از اعداد ۰(در انتظار تایید توسط سیستم)، ۱(تایید شده)، ۲(رد شده)، ۳(تکراری) یا ۴(نیازمند بررسی دستی) باشد. type String نوع کانورژن که می‌تواند sale یا lead باشد. order_id String شماره سفارش is_closed Integer وضعیت لاک کانورژن را نشان می‌دهد و در صورتی که مقدار آن ۱ باشد امکان ویرایش کانورژن وجود نخواهد داشت. checked_out Integer وضعیت تسویه با بازاریاب را نشان می‌دهد min_commission_amount Double حداقل مبلغ پورسانت کانورژن؛ این پارامتر برای فیلتر کانورژن‌هایی با پورسانت بیش‌تر یا مساوی این مقدار استفاده می‌شود.   max_commission_amount Double حداکثر مبلغ پورسانت کانورژن؛ این پارامتر برای فیلتر کانورژن‌هایی با پورسانت کمتر یا مساوی این مقدار استفاده می‌شود.   min_created_at Double حداقل تاریخ ایجاد کانورژن؛ این پارامتر برای فیلتر کانورژن‌هایی با تاریخ ایجاد بیش‌تر یا مساوی این مقدار استفاده می‌شود.   max_created_at Double حداکثر تاریخ ایجاد کانورژن؛ این پارامتر برای فیلتر کانورژن‌هایی با تاریخ ایجاد کمتر یا مساوی این مقدار استفاده می‌شود. min_updated_at Double حداقل تاریخ ایجاد کانورژن؛ این پارامتر برای فیلتر کانورژن‌هایی با تاریخ ویرایش بیش‌تر یا مساوی این مقدار استفاده می‌شود. max_updated_at Double حداکثر تاریخ ایجاد کانورژن؛ این پارامتر برای فیلتر کانورژن‌هایی با تاریخ ویرایش کمتر یا مساوی این مقدار استفاده می‌شود. min_amount Double حداقل مبلغ سبد خرید؛ این پارامتر برای فیلتر کانورژن‌هایی با مبلغ سبد خرید بیش‌تر یا مساوی این مقدار استفاده می‌شود. max_amount Double حداکثر تاریخ ایجاد کانورژن؛ این پارامتر برای فیلتر کانورژن‌هایی با مبلغ سبد خرید کمتر یا مساوی این مقدار استفاده می‌شود. موجودیت‌ها Product قالب JSON { "name": string, "unit_price": double, "quantity": integer, "total_price": double } پارامترها name String نام محصول unit_price Double قیمت واحد محصول در سبد خرید quantity Integer تعداد محصول در سبد خرید total_price Double مجموع قیمت محصول در سبد خرید Meta Data قالب JSON "meta_data": { "form_id": string, "uniq_param": string, // Any other fields can be added as extra data. } پارامترها  form_id String شناسه یکتای فرم مربوطه در وبسایت فروشگاه uniq_param String پارامتر یکتای لید ثبت شده که می‌تواند داده‌ای نظیر شماره موبایل، ایمیل، کد ملی یا هر مقدار یکتای دیگری در فرم باشد. Publisher قالب JSON { "id": string, "full_name": string } پارامترها id شناسه یکتای بازاریاب در افیلی full_name نام بازاریاب ثابت‌ها وضعیت کانورژن ۰ در انتظار تایید توسط سیستم ۱ تایید شده ۲ تکراری ۳ نیازمند بررسی دستی سرویس محصول در صورتی که بخواهید لیست محصولات شما به بازاریابان نمایش داده شود یا برای دسته‌بندی‌ها و محصولات مختلف پورسانت‌های متفاوتی را از طریق پنل کاربری اعمال کنید؛ نیاز است که محصولات فروشگاه خود را درون‌ریزی کنید. می‌توانید از طریق پیاده‌سازی وب سرویس یا از طریق ست کردن وب هوک  این کار را انجام دهید. وب سرویس پیش‌نیازها برای استفاده، نیاز به ارسال Bearer توکن است. از طریق ارتباط با پشتیبانی می‌توانید توکن فروشگاه خود را دریافت کنید. آدرس پایه ارسال درخواست‌ها https://core.affili.ir/services/products API محصولات طبق توضیحات داده شده در جدول زیر، از API تعریف شده می‌توانید برای ایمپورت محصولات فروشگاه خود در افیلی استفاده کنید. نوع عملیات نوع درخواست توضیحات uri درون‌ریزی POST درون‌ریزی محصولات؛ می‌توانید حداکثر ۱۰۰۰ محصول را در هر بار فراخوانی سرویس  درون‌ریزی کنید. برای بروزرسانی هم می‌توانید از همین وب سرویس استفاده کنید. /import درون‌ریزی محصولات آدرس ارسال درخواست POST https://core.affili.ir/services/products/import قالب درخواست درون‌ریزی { "products": [ object (Product), ... ] } پارامترها نام اجباری توضیحات products بلی Array of Product Object لیست محصولات وب هوک کافی است API‌ای با قالب پاسخی مطابق زیر آماده کرده و در اختیار پشتیبانی قرار دهید. تا کار ست کردن وب هوک توسط پشتیبانی برای فروشگاه شما انجام شود. { "data": { "products": [ object (Product), ... ] }, "meta": { "page": object (Page) } } پارامترها products Product Object لیست محصولات فروشگاه page Page Object اطلاعات مربوط به صفحه دریافتی شامل شماره صفحه، تعداد آیتم‌ها در هر صفحه و ... اعمال فیلتر پیاده‌سازی بخش فیلتر نیازمند پیروی از قوانینی است که در ادامه به شرح آن‌ها خواهیم پرداخت. ۱- قابلیت اعمال فیلتر روی تمامی آیتم‌‌های آبجکت محصول و دسته‌بندی باید فعال باشد. ۲- برای اعمال فیلتر روی مقادیر 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 Array of Category Object لیست دسته‌بندی‌های محصول 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 تعداد کل محصولات سرویس مشتری در صورتی که ارائه دهنده سرویس SaaS هستید یا مشتری در ازای پرداخت حق عضویت از خدمات شما استفاده می‌کند و می‌خواهید در طول یک مدت زمان خاص یا برای تکرار خرید به بازاریاب پورسانت پرداخت کنید. نیاز است از طریق APIهای ارائه شده در این صفحه مشتریانی که از طریق بازاریابهای افیلی در سیستم شما ثبت نام می‌کنند را در افیلی تعریف کنید. تعاریف مشتری: کاربری که برای استفاده از خدمات در سایت یا اپلیکیشن شما ثبت نام کرده است. پیش‌نیازها برای استفاده از سرویس‌های تعریف شده، نیاز به ارسال Bearer توکن است. از طریق ارتباط با پشتیبانی می‌توانید توکن دسترسی را دریافت کنید. آدرس پایه ارسال درخواست‌ها https://core.affili.ir/services/customers API مشتری‌ها طبق توضیحات داده شده در جدول زیر، از سه API تعریف شده می‌توانید برای ایجاد، ویرایش و دریافت مشتری‌ها استفاده کنید. نوع عملیات نوع درخواست توضیحات uri ایجاد POST ایجاد مشتری جدید ویرایش POST ویرایش مشتری ایجاد شده؛ customerId شناسه مشتری ایجاد شده در افیلی است. /{customerId} لیست GET دریافت لیست مشتری‌های ثبت شده ایجاد مشتری بعد از اینکه کاربر از طریق لینک افیلیت وارد وبسایت شما شد پارامتر referrer را به مدت زمان طول دوره کوکی (مقدار پارامتر exp)، در کوکی مرورگر وی ذخیره می‌کنیم. بعد از ثبت نام کاربر، از طریق API مربوط به ایجاد مشتری اطلاعات مربوطه به افیلی ارسال می‌شود. همچنین دقت داشته باشید که مقدار شناسه مشتری در افیلی باید توسط شما ذخیره گردد تا در زمان ثبت کانورژن بتوانید از آن استفاده کنید. در ادامه به بررسی نمونه دیتای ارسالی و دریافتی در ایجاد مشتری خواهیم پرداخت. آدرس ارسال درخواست POST https://core.affili.ir/services/customers قالب درخواست ایجاد مشتری { "referrer": string, "mcs_id": string, "meta_data": object (MetaData) } پارامترها نام اجباری توضیحات referrer بلی String توکن ارجاع که قبلا در مرورگر کاربر ذخیر شده. mcs_id بلی String شناسه یکتای مشتری در سیستم شما meta_data خیر MetaData Object آبجکت حاوی اطلاعات اضافه راجع به مشتری قالب پاسخ ایجاد مشتری { "status": "ok", "tag": "saveCustomer", "api_version": "1.0.0", "data": { "id": string, "mcs_id": string, "meta_data": object (MetaData) "created_at": dateTime, "updated_at": dateTime, "publisher": object (Publisher) } } پارامترها نام توضیحات id String شناسه یکتای مشتری ایجاد شده در افیلی mcs_id String شناسه مشتری در سیستم شما meta_data MetaData Object آبجکت حاوی اطلاعات اضافه راجع به مشتری publisher Publisher Object آبجکت حاوی اطلاعات بازاریاب created_at DateTime تاریخ ایجاد updated_at DateTime تاریخ آخرین بروزرسانی ویرایش مشتری برای تغییر در اطلاعات مشتری می‌توانید از API زیر استفاده کنید. POST https://core.affili.ir/services/customers/{customerId} *پارامتر customerId در آدرس، شناسه مشتری ثبت شده در افیلی است. قالب درخواست ویرایش مشتری { "mcs_id": string, "meta_data": object (MetaData) } لیست مشتری‌ها برای دریافت لیست مشتری‌های ثبت شده از API زیر استفاده کنید. آدرس ارسال درخواست GET https://core.affili.ir/services/customers قالب پارامترهای ارسالی برای اعمال فیلتر { "id": string, "mcs_id" string, "min_created_at": dateTime, "max_created_at": dateTime, "min_updated_at": dateTime, "max_updated_at": dateTime, "publisher_id": integer } موجودیت‌ها Meta Data قالب JSON { "first_name": string, "last_name": string, "mobile": string, "email": string // Any other fields can be added as extra data. } Publisher قالب JSON { "id": string, "full_name": string }پیاده‌سازی برای سایت‌ساز پرتال برای پیاده‌سازی کافی است فایل payment.html را مطابق زیر تغییر دهید.

@@title

لطفا از طریق فرم زیر اقدام به پرداخت سفارش کنید.

پرداخت سفارش با موفقیت انجام شده.
مشاهده جزئیات دانلود

{{step(0)}} برنامه ارسال

لطفا برنامه ارسال خود را انتخاب کنید.

{{step(1)}} مبلغ قابل پرداخت: {{model.remaining_price|number}} تومان

ثبت سفارش: {{model.created.subtract}} ، سررسید پرداخت: {{model.due_date.subtract}}

{{step(2)}} روش پرداخت

لطفا نوع پرداخت مورد نظر خود را از طریق گزینه‌های زیر انتخاب کنید.

{{step(3)}} حساب بانکی

لطفا حساب بانکی مورد نظر خود را انتخاب کنید.
حساب بانکی را انتخاب کنید.

{{step(4)}} واریز به حساب

لطفا مبلغ سفارش را به حساب با اطلاعات زیر واریز کنید:
عنوان: {{model.gateway_id.title}}
صاحب حساب: {{model.gateway_id.owner}}
شماره کارت: {{model.gateway_id.pan}}
شماره شبا: {{model.gateway_id.iban}}

{{step(5)}} سند پرداخت

اطلاعات سند پرداخت خود را از طریق فرم زیر ثبت کنید.
کد پیگیری را بنویسید.
توضیحات را کم‌تر از 4000 حرف بنویسید.

{{step(3)}} درگاه پرداخت

لطفا درگاه پرداخت مورد نظر خود را انتخاب کنید.
درگاه پرداخت را انتخاب کنید.
از آنجایی که شارژ کیف‌پول شما کم‌تر از مبلغ قابل پرداخت است؛ اگر بر روی دکمه‌ی پرداخت کلیک کنید، کل موجودی کیف‌پول شما به مقدار {{user.credit|number}} تومان از صورت‌حساب کسر خواهد شد و باقیمانده‌ی آن را می‌توانید از دیگر روش‌های موجود پرداخت کنید.
کمی صبر کنید...
کمی صبر کنید...
سرویس ساب دامنه برای پیاده‌سازی سرویس ساب دامنه بعد از خرید و فعال‌سازی سرویس، می‌توانید برای ردیابی خریدهای انجام شده از اسکریپت ردیابی افیلی استفاده کنید. ردیابی لینک‌ها: قطعه کد زیر را در تگ هد همه صفحات سایت خود قرار دهید. ثبت مشتری: در صورتی که ارائه دهنده سرویس SaaS هستید یا مشتری در ازای پرداخت حق عضویت از خدمات شما استفاده می‌کند و می‌خواهید در طول یک مدت زمان خاص یا برای تکرار خرید به بازاریاب پورسانت پرداخت کنید. نیاز است بعد از ثبت‌نام مشتری در سیستم شما از طریق قطعه کدی که در ادامه می‌آوریم، یک مشتری ایجاد کنید. پس از اینکه مشتری در سرویس ثبت شد شناسه مشتری توسط تابع callback بازگردانده می‌شود. شما باید این مقدار را در دیتابیس خود ذخیره کنید. در قطعه کد بالا متغیرهای customerId و metaData باید با مقادیر صحیح توسط شما پر شوند که توضیح هر کدام را در ادامه می‌دهیم.  customerId:  شناسه یکتای مشتری در سیستم شماست.  metaData: آبجکتی حاوی اطلاعات اضافه راجع به مشتری است. ارسال این پارامتر اختیاری است.  تذکر: در صورتی که مشتری از سمت بازاریاب نباشد، دیتایی سمت سرویس ذخیره نشده و تابع callback نیز فراخوانی نمی‌شود. ثبت فروش: برای ثبت فروش‌های انجام شده در thank you page قطعه کد زیر را قرار دهید. دقت داشته باشید در کد بالا متغیرهای uniqueSaleId ،saleAmount ،couponCode ،products و adtrackCustomerId باید توسط شما با مقادیر صحیح پر شود؛ که توضیح هر کدام در زیر آمده است. uniqueSaleId: یک شناسه یکتاست که باید در سیستم خود برای هر فروش ایجاد کنید. شما باید این متغیر را با یک تگ یا متغیر واقعی جایگزین کنید تا مقدار مربوطه را در هر فروش به صورت خودکار مقداردهی کند. شناسه یکتا میتواند هر چیزی که برای شما معنادار است باشد و باید برای هر فروش نیز منحصربفرد باشد. به طور مثال: شماره سفارش، شماره تراکنش و ... پس از ثبت فروش می‌توانید این شناسه را در پنل افیلی بخش کانورژنها مشاهده کنید. این امر باعث می‌شود که مدیریت داده‌های موجود در افیلی و سیستم شما آسانتر شود. saleAmount: مبلغ کل فروش یا همان مبلغ پرداختی کاربر بابت خرید است. دقت داشته باشید مبلغ مربوط به کرایه حمل و نقل و مالیات نباید لحاظ شده باشد. couponCode: در صورتی که مشتری هنگام خرید از کد تخفیف استفاده کرده باشد کد تخفیف مربوطه را باید وارد کنید در غیر اینصورت با مقدار null پر شود. products: آرایه‌ای از محصولاتی است که توسط مشتری خریداری شده، که به صورت زیر پر می‌شود. products = [ { "name": "محصول نمونه", "unit_price": 12000, "quantity": 3, "total_price": 36000 }, { "name": "محصول نمونه شماره دو", "unit_price": 43000, "quantity": 1, "total_price": 43000 } ] adtrackCusomerId: شناسه یکتای مشتری در افیلی است. ارسال این پارامتر اختیاری است.  واحد پولی: به صورت پیش‌فرض واحد پولی فروشگاه‌ها ریال است در صورتی که از واحد پولی تومان استفاده می‌کنید به پشتیبانی فروشگاه‌ها اطلاع دهید تا واحد پولی شما تغییر کند. ثبت لید: برای ثبت لید هنگامی که اقدام مورد نظر رخ داد، قطعه کد زیر را فراخوانی کنید. پارامتر form_id در متا دیتا برای هر فرم باید مقدار یکتایی داشته باشد. و ارسال آن الزامی است. این مقدار می‌تواند از نوع عدد یا یک رشته باشد. همچنین برای فرمهای لید همانند بالا می‌توانید سایر داده‌های فرم را در متغیر متا دیتا برای ما ارسال کنید. ارسال این اطلاعات برای تطبیق و جلوگیری از تقلب ناشران الزامی است.