حاسبة الخصم المزدوج
سعر 100 مع خصم 20% ثم 10% إضافية ينتهي عند 72، فتوفر 28 لا 30، لأن الخصم الثاني يُطبق فقط على 80 المتبقية. أدخل السعر الأصلي والخصمين بالترتيب. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- السعر
- 100
- الخصم الأول
- 20
- الخصم الثاني
- 10
- السعر بعد الأول
- 80
- السعر النهائي
- 72
- المدخرات
- 28
- النسبة المكافئة
- 28
نادراً ما يرى المتسوق تخفيضاً واحداً فقط. يتبع عرض المتجر بأكمله قسيمة، وتستقر نسبة إضافية للموظف فوق بطاقة التصفية، أو يرصّ سوق إلكتروني خصم البائع ثم رمزاً لكل الموقع. جمع النسبتين يضخّم الصفقة: عشرون بالمئة ثم عشر ليست ثلاثين بالمئة خصماً، لأن القطع الثاني لا ينطبق إلا على ما تبقّى. تأخذ حاسبة الخصم المزدوج هذه السعر الأصلي وخصمين مئويين متتاليين، وتطبّقهما بالترتيب، ثم تعيد السعر النهائي مع إجمالي التوفير حتى يثبّت سلة أو منشور عرض أو موازنة الرقم المرصوص قبل الدفع. صفر بالمئة في أي خطوة يترك تلك الخطوة كما هي؛ ومئة بالمئة في أي خطوة تصفّر الرصيد المتبقي.
كيف يتركّب خصمان متتاليان فعلاً
خصمان مئويان متتاليان ليسا كنسبة واحدة مجمّعة. يعلن تاجر عشرين بالمئة، ثم تأخذ قسيمة عشرة بالمئة أخرى مما تبقّى؛ وتستقر إضافة موظف فوق بطاقة تصفية؛ ويرصّ سوق إلكتروني قطع البائع ثم رمزاً لكل الموقع. جمع عشرين وعشرة وتسمية الصفقة ثلاثين بالمئة يضخّم التوفير، لأن القطع الثاني لا يرى السعر الأصلي أبداً.
صفر بالمئة في أي خطوة نتيجة مشروعة وتترك تلك الخطوة كما هي بدل خطأ: سلعة SKU لا تحمل إلا أحد العرضين ما زالت تنتمي إلى سلة مقارنة. مئة بالمئة في أي خطوة تصفّر الرصيد المتبقي: نتيجة تلك الخطوة صفر والخطوات اللاحقة تبقى صفراً. لا يكسح هذا الطرف فهارس التجار، ولا يضيف قسيمة ثالثة فوق النسبتين اللتين ترسلون، ولا يضيف ضريبة مبيعات ولا شحناً، ولا يحوّل عملات.
تقدّمون ثلاثة أرقام؛ تضربها الحاسبة بالترتيب وتقرب كل رقم نقدي إلى منزلتين عشريتين حتى تتطابق الـ goldens بايتاً ببايت عبر بيئات التشغيل.
أين تستحق حاسبة الخصم المزدوج موضعها
الأسر التي ترصّ عرض المتجر كله مع قسيمة مقصوصة تستخدم حاسبة خصم مزدوج لتحويل التذكرة الأصلية إلى سعر نهائي قابل للمقارنة قبل إضافة السلعة إلى السلة. تربط فرق المنتج العقد نفسه بصفحات هبوط ورسائل تشويقية يجب أن تُظهر سعر عرض مرصوصاً لسلعة SKU نموذجية دون استدعاء محرك عروض.
هذا بحث وعمل يختلفان عن حاسبة خصم عامة، وعن معامل سعر صافٍ لخصم متسلسل بالجملة، وعن سايبر مانداي، وعن نسبة فعّالة لعرض اشترِ واحداً واحصل على الآخر: تلك الأدوات تحسب تخفيضاً عادياً أو شلال تجارة بطول متغير موجّهاً إلى NPF أو حدث يوم واحد باسم علم أو معدلاً مكافئاً لاثنين بسعر واحد. تسعّر حاسبة الخصم المزدوج مبلغاً أصلياً مقابل نسبتين متتاليتين بالضبط وتعيد السعر النهائي مع المال الموفَّر في ذلك الرصّ. التحقق الفاشل لا يستهلك رصيداً.
قسيمة ثالثة وعتبات الشحن المجاني وضريبة المبيعات تبقى خارج هذه الهوية قصداً: اطووها في طبقتكم بعد حصولكم على السعر النهائي الخام والمال الموفَّر. ترتيب المعدلين لا يغيّر الجداء قبل التقريب، لكن التقريب النقدي بعد الخطوة الأولى قد يزيح سنتاً إن بدّلتموهما، فأرسلوهما بالترتيب الذي ستطبّقه الصندوق.
حالات الاستخدام
معاينة إضافة موظف على سلعة مخفّضة سلفاً
طبّقوا نسبة التصفية أولاً وإضافة الموظف ثانياً، ثم ثبّتوا savings حتى تقتبس الرواتب أو متجر الموظفين السعر المرصوص.
الأسئلة الشائعة
لماذا ليست عشرون بالمئة ثم عشر ثلاثين بالمئة خصماً؟
ينطبق الخصم الثاني فقط على ما تبقّى بعد الأول. على 100 تترك عشرون بالمئة 80؛ وعشرة بالمئة من 80 هي 8؛ والسعر النهائي 72، فالتوفير 28 (مكافئ 28 بالمئة) لا 30.
هل يجوز أن يكون أي من الخصمين صفراً أو مئة بالمئة؟
نعم. صفر بالمئة يترك تلك الخطوة كما هي.
بم تختلف عن خصم متسلسل أو حاسبة خصم واحد؟
تأخذ حاسبة خصم عامة نسبة واحدة. يأخذ أداة الخصم المتسلسل شلال جملة بطول متغير وتعيد معامل سعر صافٍ. هذه الحاسبة نسبتان تجزئتان متتاليتان بالضبط مع إجمالي التوفير.
هل يغيّر ترتيب الخصمين النتيجة؟
لا يغيّر النتيجة الدقيقة، فالنسبتان تُضربان بالطريقة نفسها بأي ترتيب. لكن تقريب الكسور بعد الخطوة الأولى قد يغيّر السعر النهائي بفرق ضئيل، لذا أدخلهما بالترتيب الذي يطبقه المتجر.
هل تحسب الحاسبة الضريبة أو قسيمة ثالثة؟
لا. يقتصر الحساب على خصمين متتاليين فقط. أضف القسيمة الثالثة وشروط الشحن والضريبة بنفسك بعد الحصول على السعر النهائي ومقدار التوفير.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/fin/double-discount \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"price":100,"first_discount":20,"second_discount":10}'const res = await fetch("https://api.kit.forhosting.com/fin/double-discount", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"price": 100,
"first_discount": 20,
"second_discount": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/double-discount",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"price": 100,
"first_discount": 20,
"second_discount": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/double-discount", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"price":100,"first_discount":20,"second_discount":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"price":100,"first_discount":20,"second_discount":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/double-discount", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"price": 100,
"first_discount": 20,
"second_discount": 10
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.double_discount",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يُرفض خصم يتجاوز مئة بالمئة بـ invalid_input ولا يُفوتر.
كيف يتركّب خصمان متتاليان فعلاً
الهوية التي تستخدمها هذه الحاسبة هي final_price مساوياً لـ price في واحد ناقص first_discount مقسوماً على مئة، في واحد ناقص second_discount مقسوماً على مئة. ينتج التخفيض الأول price_after_first وسيطاً، ثم يُخفَّض بالمعدل الثاني. إجمالي التوفير هو السعر الأصلي ناقص ذلك final_price، وهو يعادل price في النسبة المجمّعة المكافئة بعد تطبيق التقريب النقدي في كل خطوة حتى تعود الأجزاء فتجمع القائمة. price هو المبلغ الأصلي بعملة واحدة؛ وfirst_discount وsecond_discount هما المعدلان المعلنان مكتوبين كما تطبعهما الأشرطة، فعشرون تعني عشرين بالمئة لا عشرين جزءاً من مئة. تُعاد النسبة الوحيدة التي تطابق النتيجة المرصوصة أيضاً باسم equivalent_percent حتى تحتفظ ورقة حساب برقم بجانب النسبتين اللتين يكتب الناس. خصم يتجاوز مئة بالمئة ليس تخفيضاً في هذا العقد ويُرفض بـ invalid_input، لأن شريطاً يطبع مئة وعشرين بالمئة خصماً يكاد يكون خطأ بيانات لا استرداداً أردتم نمذجته.
عقد الإدخال وشكل الاستجابة وسلوك الخطأ
إن كان price سالباً يرفض المعالج الطلب لأن سعراً أصلياً لا يجوز أن يكون سالباً؛ وتُقبل عينة مجانية قيمتها صفر فتعطي سعراً نهائياً صفراً وتوفيراً صفراً. إن كان أي خصم سالباً يرفض المعالج برسالة واضحة أن خصماً متتالياً سالباً غير مسموح. صفر بالمئة في خطوة صالح ويترك مال تلك الخطوة كما هو. مئة بالمئة في خطوة صالح ويصفّر السعر المتبقي. أرسلوا عبر POST جسماً JSON بثلاثة أرقام منتهية إلزامية. price هو المبلغ الأصلي بوحدة نقدية واحدة قبل أيّ من الخصمين المتتاليين؛ والأسماء البديلة original_price وlist_price وoriginal وamount تشير إلى الحقل نفسه حتى يحتفظ تصدير فهرس بأسماء الأعمدة. first_discount هو أول معدل خصم متتالٍ يُطبَّق على السعر الأصلي لا كسراً: عشرون تعني عشرين بالمئة؛ وتُقبل الأسماء first_percent وdiscount1 وfirst وpercent1. second_discount هو المعدل المتتالي الثاني المطبَّق على ما تبقّى بعد التخفيض الأول؛ وتُقبل الأسماء second_percent وdiscount2 وsecond وpercent2. قد يصل كل حقل رقمي عدداً JSON أو سلسلة رقمية. الحقول الغائبة والسلاسل الفارغة والقيم غير المنتهية تفشل بـ invalid_input مع تسمية الحقل. إن تجاوز أي خصم مئة يرفض المعالج بـ invalid_input مبيناً أن خصماً متتالياً يتجاوز 100 بالمئة غير مسموح، وتلك الإخفاقات لا تُفوتر. عند النجاح يردّ الجسم price مقرَّباً إلى منزلتين وfirst_discount وsecond_discount، ثم يبلّغ price_after_first مالاً بعد التخفيض الأول وحده، وfinal_price رقم الدفع بعد القطعين مقرَّباً إلى منزلتين، وsavings بوصفه price ناقص final_price، وequivalent_percent بوصفه النسبة الوحيدة التي تطابق النتيجة المرصوصة، وسلسلة formula تعيد تأكيد الهوية. مثال: مئة بعشرين ثم عشر تعطي price_after_first ثمانين وfinal_price اثنين وسبعين وsavings ثمانية وعشرين وequivalent_percent ثمانية وعشرين. اقرنوا JSON بقاعدتكم عن أي سلع SKU تشترك في المعدلين —المتجر كله مع قسيمة، أو تصفية مع إضافة موظف، أو قطع بائع مع رمز الموقع— لأن هذا الطرف يضرب الأرقام الثلاثة التي ترسلون؛ لا يستعلم عن تاجر ولا يطبّق قسيمة ثالثة ولا يحوّل عملات. أبقوا الطلبات صغيرة، وثبّتوا final_price المقرَّب في الاختبارات، فتحصلون على رقم مرصوص قابل لإعادة الإنتاج لأوراق الحساب وإضافات LMS وعاملات الحافة دون إقامة محرك عروض خاص بكم.
أين تستحق حاسبة الخصم المزدوج موضعها
يُدخل محررو مواقع العروض قائمة منشورة والنسبتين المعلنتين ثم يثبّتون final_price وsavings حتى لا يقتبس منشور ثلاثين بالمئة مختلقة تختلف لاحقاً عن الدفع. ولأن التنفيذ parse من المرتبة A خالص، يكلف كل استدعاء ناجح السعر الأساس المنشور $0.002 بلا رموز نموذج وبلا شبكة صادرة. أبقوا الخصمين بين صفر ومئة ضمن الطرفين، وثبّتوا final_price المقرَّب في الاختبارات، فتحصلون على رقم مرصوص قابل لإعادة الإنتاج للتشويقات والسلال وعاملات الحافة دون إقامة محرك عروض خاص بكم.
حالات التكامل
رصّ عرض المتجر مع قسيمة قبل الدفع
حوّلوا التذكرة الأصلية مع نسبتين معلنتين إلى final_price حتى لا يُقتبس رصّ عشرين ثم عشر كثلاثين بالمئة خصماً زائفاً.
مطابقة منشور عرض بتخفيضين منشورين
أدخلوا القائمة من صفحة التاجر والنسبتين، ثم أكّدوا أن final_price وsavings يطابقان الرقم المرصوص الذي توشكون على نشره.
أسئلة تقنية
ماذا يحدث إن تجاوز خصم 100 بالمئة؟
تفشل المهمة بـ invalid_input مع تسمية first_discount أو second_discount. خصم متتالٍ يتجاوز 100 بالمئة لا يُفوتر.
كم تكلفة حاسبة الخصم المزدوج؟
أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مسبقاً بسعر $0.002 لكل استدعاء ناجح؛ والإدخال غير الصالح لا يُفوتر.