حاسبة قسيمة الخصم
قد تقدم القسيمة خصما بنسبة مئوية أو تطرح مبلغا ثابتا، لكن السعر الذي ستدفعونه فعليا لا يكون واضحا دائما. تتعامل هذه الحاسبة مع الصيغتين وتعرض السعر الأصلي ومبلغ التوفير والسعر النهائي بمنزلتين عشريتين. كما تمنع القسيمة الثابتة من إنتاج نتيجة سالبة، ولذلك تفيد في مقارنة المشتريات ومراجعة العروض واختبار الدفع ووضع الميزانية قبل الشراء.
شغّل الأداة مجانًا
اختاروا صيغة القسيمة وأدخلوا السعر الأصلي
ابدؤوا بالسعر السابق لتطبيق القسيمة. أدخلوا مبلغا غير سالب من دون رمز عملة وبمنزلتين عشريتين كحد أقصى. اختاروا percent عندما تنص القسيمة مثلا على خصم 15%، أو fixed عندما تعرض مثلا خصم $10. هذا الفرق مهم لأن القسيمة المئوية تتغير قيمتها مع سعر الشراء، أما القسيمة الثابتة فتطرح المبلغ نفسه من كل عملية شراء مؤهلة. اتركوا الضرائب ورسوم الشحن وأرصدة العضوية والعروض الأخرى خارج الحساب، إلا إذا أدرجها المتجر صراحة في المجموع الفرعي المؤهل. فعلى سبيل المثال، ينبغي تطبيق قسيمة خاصة بالبضائع على مجموع البضائع الفرعي لا على إجمالي الطلب بعد التوصيل. تسهل المدخلات الواضحة مقارنة النتيجة بالإيصال أو معاينة السلة. تقبل الحاسبة القيمة صفر لاختبار العروض، لكنها ترفض القيم السالبة والمبالغ غير الصحيحة وأنواع القسائم غير المدعومة بدلا من تخمين مقصدكم.
افهموا التوفير بالنسبة المئوية وبالمبلغ الثابت
في القسيمة المئوية، تضرب الحاسبة السعر الأصلي في النسبة وتقرب التوفير إلى أقرب سنت مع رفع حالة المنتصف. لذلك ينتج السعر $79.99 مع خصم 15% وفرا دقيقا بالسنت قبل طرح ذلك الوفر من المبلغ الأصلي. يمكن أن تتضمن النسبة منزلتين عشريتين كحد أقصى، ويجب أن تقع بين صفر ومئة. أما في القسيمة الثابتة، فالمبلغ المدخل هو التوفير المطلوب بالفعل ولا حاجة إلى الضرب. إذا تجاوزت القسيمة الثابتة السعر الأصلي، يحدد التوفير المطبق عند السعر الأصلي ويصبح السعر النهائي $0.00. يعكس ذلك سلوك قسائم الخصم المعتادة التي تخفض سعرا مؤهلا من دون إنشاء نقود أو رصيد سالب. يحتفظ الناتج بقيمة القسيمة المطلوبة وبالتوفير المطبق، وبذلك يستطيع التطبيق التمييز بين قسيمة قيمتها $50 ومبلغ $30 المتاح فعليا على سلعة سعرها $30.
استخدموا النتيجة للتسوق والفحوص الآلية
يمثل savings المبلغ المطروح من السعر الأصلي المؤهل، ويمثل final_price المبلغ المتبقي بعد القسيمة. تستخدم جميع النتائج النقدية منزلتين عشريتين بالضبط، مما يسهل عرضها أو حفظها أو مقارنتها في اختبار آلي. يستعمل الحساب سنتات صحيحة بدلا من حساب النقود بنقطة عائمة ثنائية، فيتجنب الكسور الطويلة غير الدقيقة. يفيد هذا الثبات في ضمان جودة التجارة الإلكترونية والميزانية الشخصية ومراجعة الحملات وشرح النتائج للعملاء. تغطي النتيجة قسيمة واحدة مطبقة مباشرة على سعر مؤهل واحد. ولا تحدد ترتيب جمع القسائم أو الحد الأدنى للإنفاق أو الاستثناءات أو الضرائب أو خصومات الشحن أو صلاحية القسيمة لحساب معين؛ فهذه قواعد يضعها التاجر. عند التحقق من دفع فعلي، احسبوا المجموع الفرعي المؤهل هنا وقارنوا التوفير المعروض، ثم راجعوا شروط التاجر إذا اختلفت النتائج. تبلغ تكلفة كل استدعاء API مقدار $0.002، ويقدم المتصفح الحساب الحتمي نفسه بصورة تفاعلية.
حالات الاستخدام
مقارنة القسائم المتنافسة
احسبوا عرضا مئويا وعرضا بمبلغ ثابت على السعر المؤهل نفسه لمعرفة أيهما يوفر أكثر.
مراجعة عرض المتجر
أكدوا التوفير المتوقع والسعر النهائي المعروض قبل نشر رسالة القسيمة أو تصميم الحملة.
اختبار حسابات الدفع
أنشئوا قيما متوقعة حتمية لسيناريوهات القسائم المئوية والثابتة في اختبارات التجارة الإلكترونية.
الأسئلة الشائعة
ما أنواع القسائم المدعومة؟
استخدموا percent للخصم المئوي أو fixed للخصم النقدي الثابت.
هل يمكن أن تجعل القسيمة السعر النهائي سالبا؟
لا. يحدد التوفير الثابت عند السعر الأصلي، ولذلك يكون أدنى سعر ممكن $0.00.
كيف يقرب التوفير المئوي؟
يقرب إلى أقرب سنت مع رفع حالة المنتصف باستخدام حساب الأعداد الصحيحة.
هل يشمل الحساب الضرائب أو الشحن؟
لا. أدخلوا السعر أو المجموع الفرعي المؤهل بدقة كما تحدده شروط التاجر.
ما تكلفة الحساب عبر API؟
تبلغ تكلفة كل عملية حساب عبر API مقدار $0.002.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/life/coupon-savings \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"price":"79.99","discount_type":"percent","discount_value":"15"}'const res = await fetch("https://api.kit.forhosting.com/life/coupon-savings", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"price": "79.99",
"discount_type": "percent",
"discount_value": "15"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/coupon-savings",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"price": "79.99",
"discount_type": "percent",
"discount_value": "15"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/coupon-savings", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"price":"79.99","discount_type":"percent","discount_value":"15"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"price":"79.99","discount_type":"percent","discount_value":"15"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/coupon-savings", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"price": "79.99",
"discount_type": "percent",
"discount_value": "15"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.coupon_savings",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |