با این API میتوانید فروشگاه ووکامرس یا هر سایت اختصاصی دیگری را به کمپینها و کوپنهای Maix وصل کنید — اعتبارسنجی و مصرف کوپن در لحظه پرداخت، و ثبت خودکار سفارشهای آنلاین برای باشگاه وفاداری.
از پنل کسبوکار خود، مسیر «اتصال ووکامرس» یک کلید API بسازید. کلید فقط یکبار در لحظه ساخت نمایش داده میشود — آن را در سمت سرور فروشگاهتان ذخیره کنید، هرگز در کد سمت کاربر (مرورگر) قرار ندهید.
هر درخواست باید کلید را در هدر زیر ارسال کند:
Authorization: Bearer mxi_live_XXXXXXXXXXXXXXXXXXXXXXXXهر کلید فقط به دادههای همان کسبوکاری دسترسی دارد که آن را ساخته — امکان دسترسی به کوپن یا سفارش کسبوکار دیگر با هیچ کلیدی وجود ندارد.
برای نمایش مبلغ تخفیف در سبد خرید، پیش از پرداخت این endpoint را صدا بزنید — کوپن مصرف نمیشود.
POST/api/v1/coupons/validate
curl -X POST https://maix.ir/api/v1/coupons/validate \
-H "Authorization: Bearer mxi_live_XXXX" \
-H "Content-Type: application/json" \
-d '{"code": "ABC123"}'پاسخ موفق:
{
"valid": true,
"code": "ABC123",
"campaignTitle": "کمپین فروش تابستانه",
"expiresAt": "2026-10-01T00:00:00.000Z",
"rewardType": "PERCENT",
"rewardPercent": 20
}فقط بعد از پرداخت موفق سفارش این endpoint را صدا بزنید — این عملیات کوپن را یکبار برای همیشه مصرف میکند و برگشتپذیر نیست.
POST/api/v1/coupons/redeem
curl -X POST https://maix.ir/api/v1/coupons/redeem \
-H "Authorization: Bearer mxi_live_XXXX" \
-H "Content-Type: application/json" \
-d '{"code": "ABC123"}'بعد از هر پرداخت موفق (حتی بدون کوپن)، سفارش را ثبت کنید تا در باشگاه وفاداری کسبوکار شما بهصورت خودکار محاسبه شود.
POST/api/v1/orders
curl -X POST https://maix.ir/api/v1/orders \
-H "Authorization: Bearer mxi_live_XXXX" \
-H "Content-Type: application/json" \
-d '{
"externalId": "wc-order-10245",
"customerPhone": "09120000000",
"amount": 450000,
"couponCode": "ABC123"
}'| فیلد | نوع | توضیح |
|---|---|---|
externalId | string | شناسه سفارش سمت فروشگاه (برای جلوگیری از ثبت تکراری) |
customerPhone | string | فرمت ۰۹ + ۱۱ رقم |
amount | number | مبلغ سفارش به تومان |
couponCode | string? | اختیاری — اگر کوپن استفاده شده |
از پنل کسبوکار، آدرس وب هوک خود را ثبت کنید (باید https باشد). با مصرف هر کوپن، رویداد coupon.redeemed به آن آدرس ارسال میشود.
POST https://your-site.com/maix-webhook
Content-Type: application/json
X-Maix-Event: coupon.redeemed
X-Maix-Signature: <HMAC-SHA256 hex>
{
"event": "coupon.redeemed",
"timestamp": "2026-09-18T10:00:00.000Z",
"data": { "code": "ABC123", "campaignTitle": "...", ... }
}برای تایید اصالت، بدنه خام درخواست را با secret خودتان (نمایشدادهشده در پنل هنگام ساخت وب هوک) با HMAC-SHA256 امضا و با هدر X-Maix-Signature مقایسه کنید:
// Node.js
const crypto = require("crypto");
const expected = crypto.createHmac("sha256", WEBHOOK_SECRET).update(rawBody).digest("hex");
if (expected !== req.headers["x-maix-signature"]) {
return res.status(401).end();
}سادهترین راه، یک اسنیپت کوچک PHP در functions.php یا یک افزونه سبک است که:
/api/v1/coupons/validate بررسی و تخفیف را اعمال میکند.woocommerce_order_status_completed، کوپن را با /api/v1/coupons/redeem مصرف میکند./api/v1/orders ثبت میکند.add_action('woocommerce_order_status_completed', function ($order_id) {
$order = wc_get_order($order_id);
$code = $order->get_meta('_marketist_coupon_code');
$phone = $order->get_billing_phone();
$api_key = get_option('marketist_api_key');
$base = 'https://maix.ir/api/v1';
if ($code) {
wp_remote_post("$base/coupons/redeem", [
'headers' => [
'Authorization' => "Bearer $api_key",
'Content-Type' => 'application/json',
],
'body' => json_encode(['code' => $code]),
]);
}
wp_remote_post("$base/orders", [
'headers' => [
'Authorization' => "Bearer $api_key",
'Content-Type' => 'application/json',
],
'body' => json_encode([
'externalId' => (string) $order_id,
'customerPhone' => $phone,
'amount' => (int) $order->get_total(),
'couponCode' => $code ?: null,
]),
]);
});| کد HTTP | معنی |
|---|---|
| 400 | ورودی نامعتبر (فیلد الزامی خالی یا فرمت اشتباه) |
| 401 | کلید API غیرمعتبر، باطلشده یا هدر Authorization غایب |
| 404 | کوپن یافت نشد یا متعلق به کسبوکار دیگری است |
| 409 | کوپن قبلاً مصرف شده است |
| 410 | کوپن منقضی شده است |
| 429 | تعداد درخواستها بیش از حد مجاز (۱۲۰ درخواست در دقیقه بهازای هر کسبوکار) |
/coupons/redeem) برگشتپذیر نیست — فقط بعد از تایید قطعی پرداخت صدا بزنید.