مقدمه

با استفاده از وب سرویس شکلات، شما می توانید لیست مشتریان ، محصولات و فاکتورهای خود را با شکلات هم گام کنید.
در صورت ثبت محصول جدید در شکلات، مشخصات آن برای شما ارسال شده و در صورت ثبت محصول جدید در نرم افزار شما آن را نیز میتوانید در شکلات ثبت کنید.

کد وضعیت 401

token ارسالی اشتباه می باشد.

کد وضعیت 400

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

فراموش نکنید !

تمامی درخواست های ارسالی و دریافتی تنها بر روی متد POST صورت میگیرد و تمام پاسخ ها و خواندن های شکلات به زبان JSON می باشد.

نکته ی کنکوری !

شکلات تنها ID های خودش را متوجه می شود. شاید منظور را بد متوجه شده باشید بگذارید شفاف تر بگوییم.
در صورتی که شما محصولی در نرم افزار خود دارید یا جدید ثبت کرده اید کد شناسایی آن یا همان ID برای شکلات نامفهوم هست. شکلات تنها IDهای خودش را میفهمد.
هنگامی که محصول جدید را در شکلات ثبت میکنید در پاسخ، شکلات ID که خودش ثبت کرده است را برای شما میفرستد دقیقا مانند یک فرد ایرانی هست که وارد آمریکا می شود کد ملی فرد ایرانی در آمریکا کاملا بی معنی هست.

جهت برقراری ارتباط دو طرفه شکلات با نرم افزار شما نیاز به دریافت Accesses Token یا به اختصار AT می باشید جهت دریافت AT به منوی فعال سازی مراجعه و با فعال کردن وب سرویس شعبه مربوطه کد AT را دریافت نمائید.

مراقب باشید ...

کد AT محرمانه می باشد. از افشای این کد جدا خودداری نمائید. افراد غریبه با داشتن این کد به راحتی می توانند به اطلاعات شما دسترسی و در پنل شما اطلاعات جدید ثبت یا ویرایش نمایند.

اشتباه نکنید !

شما برای اتصال شکلات به نرم افزار خود یک توکن میتوانید تعریف کنید که با مراجعه به منوی وب سرویس زیر منوی فعال سازی؛ پس از فعال سازی شعبه مورد نظر شما میتوانید یک توکن خارجی نیز تعریف کنید. پس از تعریف این توکن از این به بعد شکلات برای درخواست هایی که برای شما ارسال میکند این توکن را نیز میفرستد تا به راحتی بتوانید او را شناسایی کنید و بدانید مربوط به چه شعبه ای نیز هست.

در مرحله ی بعدی شما باید آدرس های فراخوانی خود را به شکلات معرفی کنید. برای این کار به منوی وب سرویس و زیرمنوی تنظیمات مراجعه کنید و به شکلات بگویید در صورت ثبت مشتری جدید یا محصول و یا حتی فاکتور جدید چه آدرسی را فراخوانی کند.
زیبا نیست ؟ به همین راحتی شما میتوانید از امکانات وب سرویس استفاده کنید.
حال برای شما سوال پیش می آید چه اطلاعاتی شکلات برای من میفرستد و چه اطلاعاتی می توانم از شکلات دریافت کنم ؟ بیایید با هم شروع کنید ...

تغییرات این نسخه

توضیح
تغییر در فرمت پاسخ دهی
تغییر وب هوک های محصولات
افزودن وب هوک کاهش و افزایش امتیاز
افزودن وب هوک رویدادها

شعبه

با استفاده از وب سرویس شکلات، شما می توانید مشخصات شعبه مربوطه را دریافت کنید.

دریافت مشخصات شعبه

آدرس :
/api/webhook/v2/branch/pull
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
فرمت پاسخ :
{
    "id": "کدشناسایی در شکلات",
    "name": "نام شعبه",
    "guild": "نام صنف شعبه",
    "city": "نام شهر شعبه"
}

مشتریان

با استفاده از وب سرویس شکلات، شما می توانید لیست مشتریان خود را با شکلات هم گام کنید.
در صورت ثبت مشتری جدید در شکلات، مشخصات آن برای شما ارسال شده و در صورت ثبت مشتری جدید در نرم افزار شما آن را نیز میتوانید در شکلات ثبت کنید.

دریافت لیست مشخصات مشتریان شکلات

شما میتوانید لیست مشخصات تمام مشتریان شکلات را همراه با کد شناسایی آن ها (ID) دریافت کنید.

آدرس :
/api/webhook/v2/customers/pull
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
فرمت پاسخ :
[
    {
        "id": "کد شناسایی در شکلات",
        "name": "نام مشتری",
        "family": "نام خانوادگی مشتری",
        "mobile": "موبایل مشتری",
        "status": "وضعیت مشتری : 1 به معنی فعال و 0 به معنی غیر فعال",
        "card_no": "شماره کارت مشتری",
        "last_buy": "تاریخ آخرین خرید مشتری",
    },
    .
    .
    .
]

دریافت امتیاز، اعتبار و مشخصات یک مشتری

با ارسال پارامترهای زیر، می توانید امتیازکل، امتیاز باقی مانده، اعتبار ، گروه مشتری و دیگر مشخصات مشتری را دریافت کنید.

می‌توانید یکی از پارامترهای "customer_id" و یا "mobile" را ارسال کنید و نیازی به ارسال هر دو پارامتر نیست.

آدرس :
/api/webhook/v2/customer/pull
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 customer_id اختیاری(در صورتی که شماره موبایل را ارسال نمی کنید اجباری می باشد) کد شناسایی مشتری در شکلات
3 mobile اختیاری (در صورتی که آیدی مشتری را ارسال نمی کنید اجباری است) شماره موبایل مشتری
فرمت پاسخ :
{
    "all_score": "امتیاز کل",
    "remaining_score": "امتیاز باقی مانده",
    "credit": "میزان اعتبار باقی مانده",
    "group": "نام گروه مشتری",
    "name": "نام",
    "family": "نام خانوادگی",
    "registration_code": "شماره عضویت مشتری",
    "customer_id": "customer id in Shokolat",

}

چی ماله چیه ؟!

میزان اعتبار باقی مانده در شعبه ای هست که کد AT آن در پارامتر Token برای این API ارسال می شود اما امتیاز کل و امتیاز باقی مانده در کل فروشگاه می باشد.

دریافت لیست گروه مشتریان

در این API شما میتوانید لیست گروه های مشتریان را به راحتی دریافت کنید.

آدرس :
/api/webhook/v2/customer/groups/pull
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
فرمت پاسخ :
[
     {
        "id": "کد گروه مشتری در شکلات",
        "name": "نام گروه مشتری",
        "is_starting_group": "آیا گروه آغازین می باشد ؟ 1 به معنی بله و 0 به معنی خیر"
    },
    .
    .
    .
]

نکن این اشتباه رو ...

لازم به ذخیره کردن گروه مشتریان در پایگاه داده خود ندارید! چرا ؟! چون ممکنه گروهی به این لیست افزوده بشه و خوب جدول شما به روز نمیشه از یک طرف دیگه هم فقط زمانی به این لیست نیاز دارید که بخواهید مشتری جدیدی ثبت کنید و گروه او را در شکلات مشخص کنید پس به راحتی این API را صدا بزنین و کد گروه مشتری رو برای ما بفرستید. بقیه کارها را بسپارید به ما :)

افزودن مشتری جدید به شکلات

با صدا زدن این API شما به راحتی آب خوردن می توانید یک مشتری جدید اضافه کنید

پیامک ارسال شد ...

با توجه به تنظیمات ثبت شده در شکلات، در هنگام ثبت مشتری جدید پیامک، ایمیل و اعلان اپ اندروید برای مشتری ثبت شده ارسال می شود. اگر میخواهید ارسال نشود در منوی تنظیمات زیر منوی پیکربندی اعلان ها آن را غیرفعال کنید. به همین سادگی :)

آدرس :
/api/webhook/v2/customer/push
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 name اجباری نام مشتری
3 family اجباری نام خانوادگی مشتری
4 mobile اجباری موبایل مشتری
5 city اختیاری شهر سکونت مشتری
6 group_id اختیاری کد گروه شکلات مشتری
فرمت پاسخ :
{
    "id": "کد مشتری ثبت شده در شکلات",
    "mobile": "موبایل مشتری ثبت شده"
}

میدونم میدونم!

مشتری تکراری توی شکلات جایی نداره! اگر موبایل تکراری وارد شود نه تنها مشتری ثبت نمیشود بلکه مشتری ارسال شده عضو فروشگاه شما شده و کد مشتری که با این موبایل ثبت شده است برای شما ارسال میشود.

در صورتی که گروه مشتری را ارسال نکنید،مشتری در گروه پایه عضو خواهد شد

همگام سازی مشتریان با شکلات

با صدا زدن این API شما می توانید لیست مشتریان خود را برای شکلات بفرستید و شکلات آنها را ذخیره کرده و سپس ID های آنها را برای شما فرستاده و به دنبال آن لیست مشتریان خود را نیز برای شما ارسال میکند

مهم مهم مهم ...

اگر این API را باردیگر صدا بزنید لیست مشتریان خودتان را نیز برای شما ارسال میکند پس مدیریت این امر به عهده شما می باشد.

از کجا میاره ؟

قبل از هرکاری ابتدا شما باید آدرس API خودتان را برای شکلات مشخص کنید. برای این کار وارد منوی وب سرویس سپس به زیر منوی تنظیمات مراجعه کرده و فیلد آدرس دریافت لیست مشتریان را وارد کنید.
شکلات آدرس شما را به صورت POST و به همراه توکن خارجی که برای آن شعبه تعریف کرده اید ارسال میکند. اگر تعریف نکرده اید وارد منوی وب سرویس شده و در زیرمنوی فعال سازی برای شعبه مربوطه توکن خارجی تعریف کنید.
فرمت پاسخ شما باید به صورت زیر باشد، هرگونه اطلاعات اضافی پردازش نمیشود :

[
    {
        "name": "نام مشتری شما",
        "family": "نام خانوادگی مشتری شما",
        "mobile": "موبایل مشتری شما"
    },
    .
    .
    .
]

موبایلتو بده :)

برای ما موبایل خیلی مهم هست. پس مشتریانی که موبایل ندارند ثبت نمی شوند؛ اگر هم با این موبایل یک مشتری موجود باشد به راحتی ما آن مشتری را عضو فروشگاه شما کرده و کد او را برای شما میفرستیم.

آدرس :
/api/webhook/v2/customers/sync
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
فرمت پاسخ :
{
    "inserted_customers": [
        {
            "id": "کد شناسایی مشتری ثبت شده در شکلات",
            "mobile": "موبایل مشتری ثبت شده در شکلات",
        },
        .
        .
        .
    ],
    "customers": [
        {
            "id": "کد شناسایی در شکلات",
            "name": "نام مشتری",
            "family": "نام خانوادگی مشتری",
            "mobile": "موبایل مشتری",
            "status": "وضعیت مشتری : 1 به معنی فعال و 0 به معنی غیر فعال"
        },
        .
        .
        .
    ]
}

کد وضعیت 500

اگر از طرف API شما پاسخی دریافت نشود یا اروری بدهد با کد وضعیت 500 پاسخ زیر ارسال می شود.

{
    "error": "no response from your server"
}

کسر از اعتبار مشتری

با ارسال پارامترهای زیر، میتوانید مقدار مورد نیاز را از اعتبار مشتری کسر کنید؛ فقط کافی است مشتری اعتبار کافی جهت کسر کردن داشته باشد.

آدرس :
/api/webhook/v2/customer/expend/credit
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 customer_id اجباری کد شناسایی مشتری در شکلات
3 credit اجباری میزان اعتبار به صورت عدد و به واحد ریال
4 factor_code اختیاری شماره فاکتور
5 description اختیاری توضیحات
فرمت پاسخ :
{
    "msg": "اعتبار با موفقیت از حساب مشتری کاسته شد."
}

شرایط رو بی خیال !

در اینجا ما شرایط مصرف اعتبار را در نظر نمیگیریم و مستقیم از حساب کاربر کم می کنیم.

چه خطاهایی می دهیم ؟!

خطاهای زیر با کد وضعیت 500 ارسال می شوند.

{
    "msg": "میزان اعتبار وارد شده از میزان اعتبار مشتری بیشتر است."
}
{
    "msg": "مشتری اعتبار ندارد"
}

افزایش اعتبار مشتری

با ارسال پارامترهای زیر، میتوانید مقدار مورد نیاز به اعتبار مشتری اضافه کنید.

آدرس :
/api/webhook/v2/customer/inc/credit
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 customer_id اجباری کد شناسایی مشتری در شکلات
3 credit اجباری میزان اعتبار به صورت عدد و به واحد ریال
4 expire اجباری انقضاء اعتبار به روز
4 branches اختیاری لیست توکن‌های شعبه‌های مصرف اعتبار به صورت آرایه. مثال: ["nb767km","tgx145"]
5 description اختیاری توضیحات
فرمت پاسخ :
{
    "msg": "اعتبار با موفقیت به مشتری افزوده شد."
}

پس بقیه ؟!

با استفاده از این API شما فقط قادر خواهید بود اعتبار مشتری را در شعبه ای که با token به این API متصل می شود شارژ کنید و این اعتبار در دیگر شعبه ها قابل دسترسی نمی باشد.

اعتبارِ اعتبار !

اعتبار ارسالی شما به صورت عدد می باشد و از بازه 0 الی بازه مورد نظر شما می باشد مثلا اگر شما 0 ارسال کنید انقضاء اعتبار تا ساعت 12 شب روز جاری می باشد و اگر شما 1 را ارسال کنید تا ساعت 12 روز بعد؛ به همین ترتیب برید جلو ...

افزایش امتیاز مشتری

با ارسال پارامترهای زیر، میتوانید مقدار مورد نیاز را به امتیاز مشتری اضافه کنید.

آدرس :
/api/webhook/v2/customer/inc/score
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 customer_id اجباری کد شناسایی مشتری در شکلات
3 score اجباری میزان امتیاز به صورت عدد
4 description اختیاری توضیحات
فرمت پاسخ :
{
    "msg": "امتیاز با موفقیت به مشتری افزوده شد."
}

کسر از امتیاز مشتری

با ارسال پارامترهای زیر، میتوانید مقدار مورد نیاز را به امتیاز مشتری اضافه کنید.

آدرس :
/api/webhook/v2/customer/expend/score
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 customer_id اجباری کد شناسایی مشتری در شکلات
3 score اجباری میزان امتیاز به صورت عدد
4 description اختیاری توضیحات
فرمت پاسخ :
{
    "msg": "امتیاز با موفقیت از مشتری کسر شد."
}

محصولات

با استفاده از وب سرویس شکلات، شما می توانید لیست محصولات خود را با شکلات هم گام کنید.
در صورت ثبت محصول جدید در شکلات، مشخصات آن برای شما ارسال شده و در صورت ثبت محصول جدید در نرم افزار شما آن را نیز میتوانید در شکلات ثبت کنید.

دریافت لیست مشخصات محصولات شکلات

شما میتوانید لیست مشخصات تمام محصولات شکلات را همراه با کد شناسایی آن ها (ID) دریافت کنید.

آدرس :
/api/webhook/v2/products/pull
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
فرمت پاسخ :
[
    {
        "id": "کد شناسایی در شکلات",
        "name": "نام محصول",
        "barcode": "بارکد محصول",
        "price": "مبلغ محصول که به ریال می باشد",
        "status": "وضعیت محصول : 1 به معنی فعال و 0 به معنی غیر فعال",
        "stock_count": "موجودی انبار"
    },
    .
    .
    .
]

دریافت لیست محصول های یک گروه

در این API شما میتوانید لیست محصول های گروه را به راحتی دریافت کنید.

آدرس :
/api/webhook/v2/group/products/pull
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 group_id اجباری کد گروه محصول در شکلات
فرمت پاسخ :
[
    {
        "id": "کد شناسایی در شکلات",
        "name": "نام محصول",
        "barcode": "بارکد محصول",
        "price": "مبلغ محصول که به ریال می باشد",
        "status": "وضعیت محصول : 1 به معنی فعال و 0 به معنی غیر فعال",
        "stock_count": "موجودی انبار"
    },
    .
    .
    .
]

دریافت لیست گروه محصولات

در این API شما میتوانید لیست گروه های محصولات را به راحتی دریافت کنید.

آدرس :
/api/webhook/v2/product/groups/pull
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
فرمت پاسخ :
[
     {
        "id": "کد گروه محصولات در شکلات",
        "name": "نام گروه محصولات"
    },
    .
    .
    .
]

نکن این اشتباه رو ...

لازم به ذخیره کردن گروه محصولات در پایگاه داده خود ندارید! چرا ؟! چون ممکنه گروهی به این لیست افزوده بشه و خوب جدول شما به روز نمیشه از یک طرف دیگه هم فقط زمانی به این لیست نیاز دارید که بخواهید محصول جدیدی ثبت کنید و گروه او را در شکلات مشخص کنید پس به راحتی این API را صدا بزنین و کد گروه محصول رو برای ما بفرستید.

افزودن محصول جدید به شکلات

با صدا زدن این API شما به راحتی آب خوردن می توانید یک محصول جدید اضافه کنید

واحد پولی

تمام واحدهای پولی شکلات به ریال می باشد.

آدرس :
/api/webhook/v2/product/push
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 name اجباری نام محصول
3 price اجباری مبلغ محصول به ریال
4 barcode اجباری شماره بارکد محصول
5 stock_count اجباری موجودی در انبار
6 status اجباری وضعیت محصول: 1 به معنی فعال و 0 به معنی غیر فعال
7 product_group_ids اجباری | آرایه کد گروه محصولات در شکلات به صورت آرایه مثال : product_group_ids = [7,9,5]
فرمت پاسخ :
{
    "id": "کد محصول ثبت شده در شکلات"
}

محصول تکراری

ما هیچ گونه بررسی بر روی محصولات برای تکراری بودن نمیکنیم برای همین مدیریت این کار به عهده شما می باشد که محصولات تکراری شما داخل شکلات نشیند.
ما کد محصول برایمان خیلی مهم هست؛ تمام کارهامون با این کد هست پس من فقط این کد رو میشناسیم...

کد 500

اگر با کد وضعیت 500 و یا خطای سیستمی مواجه شدید یک جای کار میلنگد؛ قیمت باید به صورت عدد باشد؛ کد گروه محصول هم حتما باید موجود باشد در غیر این صورت به شما خطای 500 میدهد.

ویرایش محصول موجود در شکلات

در اینجا شما می توانید به راحتی یک محصول را ویرایش کنید.

آدرس :
/api/webhook/v2/product/patch
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 product_id اجباری کد محصول در شکلات
3 name اجباری نام محصول
4 price اجباری مبلغ محصول به ریال
5 barcode اجباری شماره بارکد محصول
6 stock_count اجباری موجودی در انبار
7 status اجباری وضعیت محصول: 1 به معنی فعال و 0 به معنی غیر فعال
فرمت پاسخ :
{
    "id": "کد محصول ویرایش شده در شکلات"
}

مالک محصول باید خودتان باشید

شما فقط اجازه دارید محصولات خودتان را ویرایش کنید. ما این اجازه را نمیدهیم محصولات دیگران را ببینید یا ویرایش کنید.

کد 500

اگر با کد وضعیت 500 و یا خطای سیستمی مواجه شدید یک جای کار میلنگد؛ قیمت باید به صورت عدد باشد؛ کد گروه محصول هم حتما باید موجود باشد در غیر این صورت به شما خطای 500 میدهد.

همگام سازی محصولات با شکلات

با صدا زدن این API شما می توانید لیست محصولات خود را برای شکلات بفرستید و شکلات آنها را ذخیره کرده و سپس ID های آنها را برای شما فرستاده و به دنبال آن لیست محصولات خود را نیز برای شما ارسال میکند

مهم مهم مهم ...

اگر این API را باردیگر صدا بزنید لیست محصولات خودتان را نیز برای شما ارسال میکند پس مدیریت این امر به عهده شما می باشد.

از کجا میاره ؟

قبل از هرکاری ابتدا شما باید آدرس API خودتان را برای شکلات مشخص کنید. برای این کار وارد منوی وب سرویس سپس به زیر منوی تنظیمات مراجعه کرده و فیلد آدرس دریافت لیست محصولات را وارد کنید.
شکلات آدرس شما را به صورت POST و به همراه توکن خارجی که برای آن شعبه تعریف کرده اید ارسال میکند. اگر تعریف نکرده اید وارد منوی وب سرویس شده و در زیرمنوی فعال سازی برای شعبه مربوطه توکن خارجی تعریف کنید.
فرمت پاسخ شما باید به صورت زیر باشد، هرگونه اطلاعات اضافی پردازش نمیشود :

[
    {
        "name": "نام محصول شما",
        "barcode": "بارکد محصول شما",
        "price": "مبلغ محصول شما به ریال",
        "status": "وضعیت محصول شما : 0 به معنی غیرفعال و 1 به معنی فعال",
        "stock_count": "موجودی انبار کالا"
    },
    .
    .
    .
]
آدرس :
/api/webhook/v2/products/sync
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
فرمت پاسخ :
{
    "inserted_products": [
        {
            "name": "نام محصول شما",
            "barcode": "بارکد محصول شما",
            "shokolat_id": "کد شناسایی محصول ثبت شده در شکلات",
        },
        .
        .
        .
    ],
    "products": [
        {
            "id": "کد شناسایی در شکلات",
            "name": "نام محصول",
            "barcode": "بارکد محصول",
            "price": "مبلغ محصول که به ریال می باشد",
            "status": "وضعیت محصول : 1 به معنی فعال و 0 به معنی غیر فعال"
            "stock_count": "موجودی انبار"
        },
        .
        .
        .
    ]
}

کد وضعیت 500

اگر از طرف API شما پاسخی دریافت نشود یا اروری بدهد با کد وضعیت 500 پاسخ زیر ارسال می شود.

{
    "error": "no response from your server"
}

فاکتورها

ثبت صورتحساب جدید در شکلات

شما میتوانید به راحتی یک فاکتور در شکلات ثبت کنید. کافی است پارامترهای زیر را ارسال کنید تا فاکتور با موفقیت ثبت شود.

آدرس :
/api/webhook/v2/factor/push
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 customer_id اجباری کد شناسایی مشتری در شکلات
3 factor_static_id اجباری کد فاکتور شما فقط به صورت عددی
4 date اجباری تاریخ فاکتور به صورت میلادی به همراه ساعت مانند مثال زیر :
2019-10-09 10:23:40
5 sum اجباری جمع فاکتور به ریال
6 discount_price اجباری جمع کل تخفیف به ریال
7 amount_payable اجباری مبلغ قابل پرداخت به ریال
8 pay_by_credit اجباری مبلغ پرداخت شده از اعتبار به ریال
9 description اختیاری توضیحات فاکتور
10 factor_details اجباری | JSON موارد فاکتور باید به صورت JSON و به فرمت زیر ارسال شود :
[
    {
        "product_id": "کد شناسایی محصول در شکلات",
        "is_gift": "آیا این محصول هدیه است ؟ 1 به معنی بله و 0 به معنی خیر",
        "unit_price": "مبلغ واحد به ریال",
        "count": "تعداد محصول"
    },
    .
    .
    .
]
فرمت پاسخ :
{
    "id": "کد فاکتور ثبت شده در شکلات"
}

اگر مشتری اعتبار نداشت ؟!

اگر مشتری اعتبار نداشت و شما خواستید از اعتبار او کسر کنید یا با توجه به شرایط فاکتور؛ شرایط مصرف اعتبار فراهم نشد با خطای زیر مواجه می شوید و فاکتور ثبت نمی شود.

{
    "status": 420,
    "error": "مشتری اعتبار ندارد"
}

کد وضعیت 500

در صورت مشاهده چنین وضعیتی یعنی شکلات آب شده است و در ثبت فاکتور به شکست خورده؛ شما باید پارامترها را بررسی و دوباره تلاش کنید.

پیش پردازش فاکتور

از اسمش نترسید چیزی نیست. با استفاده از این API شما می توانید ببینید با توجه به شرایط فاکتور چه طرح هایی شامل حال آن شده و همچنین میزان اعتبار قابل مصرف مشتری در داخل این فاکتور و همچنین امتیاز کاربر و اعتبار کلی او چه میزان می باشد.

آدرس :
/api/webhook/v2/factor/process
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 customer_id اجباری کد شناسایی مشتری در شکلات
2 item_count اجباری تعداد کل اقلام فاکتور
4 factor_date اجباری تاریخ فاکتور به صورت شمسی به همراه ساعت مانند مثال زیر :
1398/06/25 12:15
2 factor_price اجباری مبلغ فاکتور به صورت ریال
2 product_item اجباری لیست کدهای شناسایی شکلات محصولات داخل فاکتور؛ مثال :
[
    ,"کد شناسایی محصول در شکلات"
    ,"کد شناسایی محصول در شکلات"
    .
    .
    .
]
فرمت پاسخ :
{
    "score": "میزان امتیاز دریافتی بابت این فاکتور",
    "credit": "میزان اعتبار دریافتی بابت این فاکتور",
    "credit_can_use": "میزان اعتبار قابل مصرف در این فاکتور",
    "discount": "مجموع میزان تخفیف دریافتی بابت طرح ها در این فاکتور",
    "plan_name": [
            "نام طرح ها متعلق به این فاکتور",
            "نام طرح ها متعلق به این فاکتور",
            .
            .
            .
        ],
    "product_id": [
            "کد محصول در شکلات تعلق گرفته توسط طرح ها",
            "کد محصول در شکلات تعلق گرفته توسط طرح ها",
            .
            .
            .
        ],
    "product_name": [
            "نام محصول در شکلات تعلق گرفته توسط طرح ها",
            "نام محصول در شکلات تعلق گرفته توسط طرح ها",
            .
            .
            .
        ],
    "product_price": [
            "مبلغ محصول در شکلات تعلق گرفته توسط طرح ها",
            "مبلغ محصول در شکلات تعلق گرفته توسط طرح ها",
            .
            .
            .
        ],
    "product_discount": [
            "درصد تخفیف محصول در شکلات تعلق گرفته توسط طرح ها",
            "درصد تخفیف محصول در شکلات تعلق گرفته توسط طرح ها",
            .
            .
            .
        ]
}

رویدادها

فراخوانی رویداد

شما میتوانید رویداد جدیدی در پنل ثبت کنید. در صورتی که نوع آن را سفارشی بگذارید و آن را ثبت نمائید؛ پس از ثبت یک کد برای شما در لیست رویدادهایتان نمایش داده می شود. با این کد می توانید این رویداد را از طریق این API فراخوانی کنید.

آدرس :
/api/webhook/v2/event/call
پارامترها :
# نام پارامتر اختیاری/اجباری توضیحات
1 token اجباری کد AT شناسایی شعبه مربوطه
2 customer_id اجباری کد شناسایی مشتری در شکلات
3 event_code اجباری کد فراخوانی رویداد
فرمت پاسخ :
{
     "result" : "رویداد با موفقیت فراخوانی شد."
}

اگر مشتری امتیاز نداشت ؟!

در ثبت رویداد شما میتوانید حتی از امتیاز اون نیز بکاهید. در صورتی که مشتری امتیاز کافی را نداشته باشد API به شما پاسخ مربوط را میدهد.

{
     "result" : "امتیاز مشتری ناکافی می باشد."
}

رویداد اجرا نشد !

در صورتی که رویداد غیرفعال یا پیدا نشود API به شما پاسخ زیر را میدهد.

{
   "result" : "در فراخوانی رویداد به شکست برخوردیم."
}