أنشئ عرض سعر يتضمن الخصم والإجماليات
تتحول ثلاثة بنود وخصم ثابت وصلاحية 21 يوما إلى عرض سعر منظم فيه إجماليات البنود والمجموع الفرعي والخصم والإجمالي النهائي، كلها برمز عملتكم: أدخلوا البنود والكميات والأسعار. مجاني في متصفحكم.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الخصم
- 250
- العملة
- usd
- أيام الصلاحية
- 21
- مرجع عرض السعر
- Q-2026-104
- اسم العميل
- Northwind Studio
- نوع المستند
- quote
- العملة
- USD
حوّل قائمة من الخدمات أو المنتجات إلى عرض سعر منظم ومتسق من دون نسخ الأرقام بين آلة حاسبة وقالب. يحسب المولّد كل بند والمجموع الفرعي وخصمًا ثابتًا والمجموع النهائي، ثم يسجل عدد الأيام التي يظل فيها العرض صالحًا. ويمكن أيضًا إدخال رمز العملة واسم العميل ومرجع العرض.
أعد بنودًا واضحة لعرض السعر
ابدأ بسجل واحد لكل خدمة أو منتج ينظر فيه العميل. يحتاج كل سجل إلى وصف وسعر للوحدة، وتكون الكمية واحدًا عند عدم إدخالها. استخدم أوصافًا تظل مفهومة بعد خروج عرض السعر من سياق المحادثة التجارية؛ فاذكر العنصر المسلّم أو الباقة أو الترخيص أو مرحلة العمل بدلًا من الاعتماد على اختصارات داخلية.
ويمكن أن تمثل الكميات وحدات مادية أو مقاعد اشتراك أو أيام استشارة أو أي مقياس متسق آخر. يضرب المولّد سعر كل وحدة في كميتها ويقرّب إجمالي البند إلى منزلتين عشريتين. ويجب ألا تقل الأسعار عن صفر، كما يجب أن تكون الكميات موجبة.
ويفيد البند ذو السعر الصفري في توثيق عنصر مشمول أو خدمة مجانية من دون تغيير المجموع الفرعي. تستخدم جميع البنود رمز العملة المحدد للمستند. تضع هذه الإمكانية رمز العملة بجانب القيم، لكنها لا تحوّل العملات ولا تضيف الضرائب ولا تستخرج الأسعار من كتالوج.
أدخل أرقامًا تجارية نهائية جاهزة للعرض. فالمدخلات الصريحة تجعل المستند الناتج متوقعًا وقابلًا للمراجعة ومناسبًا لعمليات الأتمتة اللاحقة.
طبّق الخصم وراجع الإجماليات
الخصم الاختياري مبلغ ثابت بالعملة نفسها المستخدمة في البنود. وإذا لم تدخله، يستخدم المولّد صفرًا. يحسب أولًا إجمالي كل بند، ثم يجمع القيم المقرّبة لتكوين المجموع الفرعي، ويقرّب الخصم إلى منزلتين عشريتين ويطرحه للحصول على المجموع النهائي.
يضمن هذا الترتيب نتائج مستقرة للفواتير وأنظمة الموافقة ومولّدات المستندات التي تتطلب الدقة النقدية المعتادة. لا يجوز أن يكون الخصم سالبًا أو أن يتجاوز المجموع الفرعي. وإذا تجاوزه، يعيد الطلب خطأ يفيد بأن المدخلات غير صالحة بدلًا من إصدار عرض سعر بمجموع سالب.
وتفيد هذه الحماية خصوصًا عندما تأتي قيمة الخصم من حقل في نظام CRM أو من قاعدة مبيعات آلية ربما أصبحت قديمة بعد تعديل البنود. ولا يشمل هذا الحساب الضرائب أو الدفعات المقدمة أو جداول السداد أو الخصومات المئوية. حوّل أي عرض ترويجي نسبي إلى مبلغ ثابت معتمد قبل استدعاء المولّد، حتى يظل الحساب والمستند واضحين بلا التباس.
استخدم المستند المنظم ومدة صلاحيته
الناتج عرض سعر منظم وليس ملف PDF مصممًا. وهو يحدد نوع المستند والعملة ومدة الصلاحية بالأيام التقويمية والبنود الموحدة وملخص الإجماليات. ولا تظهر حقول العميل والمرجع الاختيارية إلا عند تقديمها، مما يحافظ على مخرجات نظيفة للأنظمة التي تميز بين المعلومات الغائبة والحقول الفارغة.
المدة الافتراضية ثلاثون يومًا، ويمكن ضبطها من يوم واحد إلى 3,650 يومًا. ولأن هذه الإمكانية حتمية ولا تقرأ الساعة الحالية، فإنها تعبّر عن الصلاحية في صورة مدة بدلًا من اختلاق تاريخ إصدار أو انتهاء. ويمكن للنظام المستلم جمع هذه المدة مع الطابع الزمني الفعلي عند إرسال عرض السعر أو تخزينه.
يمنع هذا الفصل تغيّر النتائج بين محاولات الإعادة ويجعل الاختبارات المرجعية موثوقة. وإذا احتجت إلى ملف مرئي نهائي، فمرّر هذه البنية المتحقق منها إلى أداة العرض الخاصة بك. لا تجري الإمكانية أي طلبات شبكية، ولا تخزن بيانات العميل، وتنتج النتيجة نفسها كلما تلقت المدخلات نفسها.
حالات الاستخدام
إعداد مقترح للخدمات
احسب ورش العمل وأيام التنفيذ وباقات الدعم ضمن ملخص واحد متسق.
تسعير كميات المنتجات
حوّل أسعار الوحدات والكميات إلى إجماليات بنود مراجعة قبل إنشاء مستند العميل.
أتمتة الموافقات التجارية
أنشئ بيانات ثابتة تعرض المجموع الفرعي والتنازل والإجمالي والصلاحية لمسار الموافقة.
الأسئلة الشائعة
هل الخصم نسبة مئوية؟
لا. الخصم مبلغ نقدي ثابت بعملة عرض السعر.
ماذا يحدث إذا تجاوز الخصم المجموع الفرعي؟
يعيد الطلب خطأ يفيد بأن المدخلات غير صالحة ولا يصدر أي عرض سعر.
هل يحسب المولّد الضرائب؟
لا. فهو يحسب البنود والمجموع الفرعي والخصم الثابت والمجموع النهائي فقط.
هل تتضمن مدة الصلاحية تاريخ انتهاء؟
لا. تعيد عددًا حتميًا من الأيام ليربطه نظامك بتاريخ الإصدار الفعلي.
هل يمكنني إدراج بند بلا مقابل في عرض السعر؟
نعم. يوثق البند الذي سعره صفر عملا مشمولا أو خدمة مقدمة مجاملة دون أن يغير المجموع الفرعي، فيرى العميل نطاق العرض كاملا.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/doc/quote-estimate-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"description":"Discovery workshop","price":450,"quantity":1},{"description":"Implementation day","price":800,"quantity":3}]}'const res = await fetch("https://api.kit.forhosting.com/doc/quote-estimate-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
{
"description": "Discovery workshop",
"price": 450,
"quantity": 1
},
{
"description": "Implementation day",
"price": 800,
"quantity": 3
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/quote-estimate-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
{
"description": "Discovery workshop",
"price": 450,
"quantity": 1
},
{
"description": "Implementation day",
"price": 800,
"quantity": 3
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/quote-estimate-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":[{"description":"Discovery workshop","price":450,"quantity":1},{"description":"Implementation day","price":800,"quantity":3}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":[{"description":"Discovery workshop","price":450,"quantity":1},{"description":"Implementation day","price":800,"quantity":3}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/quote-estimate-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"items": [
{
"description": "Discovery workshop",
"price": 450,
"quantity": 1
},
{
"description": "Implementation day",
"price": 800,
"quantity": 3
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.quote_estimate_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 25 |
max_pages | 200 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
والنتيجة بيانات JSON حتمية تصلح لمسار الموافقة أو بوابة العميل أو قالب المستند أو البريد الإلكتروني أو السجل الداخلي، مع بقاء العمليات الحسابية واضحة وسهلة المراجعة.
طبّق الخصم وراجع الإجماليات
قبل إرسال العرض، قارن الملخص الناتج بالموافقة التجارية: يعرض subtotal القيمة قبل التنازلات، ويوضح discount_amount مقدار التنازل، ويبين total المبلغ المقترح على العميل.
استخدم المستند المنظم ومدة صلاحيته
استخدم بيانات JSON الناتجة مباشرة في بوابة العميل، أو اربطها بقالب يحمل هوية مؤسستك، أو أرفقها بفرصة بيع، أو أرسلها إلى مسار موافقة.
أسئلة تقنية
ما تكلفة الطلب الواحد؟
تكلفة كل طلب هي $0.002.