حاسبة مقارنة سعر الوحدة
برطمان 32 أوقية بسعر 5.99 يتفوق على برطمان 16 أوقية بسعر 3.49 بمجرد قسمة كل سعر على حجمه، فهو أرخص لكل أوقية. أدخل الأسعار والأحجام بوحدة واحدة لتظهر لك أفضل قيمة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
تحوّل حاسبة مقارنة سعر الوحدة أسعار الرفوف وأحجام العبوات إلى ترتيب عادل لكل وحدة، لتتمكن من معرفة المنتج الأرخص فعلياً. أدخل منتجين أو أكثر بسعر إجمالي وحجم عبوة بالوحدة نفسها — أونصات أو ملليلترات أو غرامات أو عدد القطع — وتعيد الأداة السعر مقسوماً على الحجم لكل سطر، وتشير إلى أفضل قيمة بوصفها أدنى سعر للوحدة، وتعرض حساباً خطوة بخطوة يمكنك الوثوق به في واجب دراسي أو تطبيق تسوق أو جدول مشتريات.
ماذا يعني سعر الوحدة عندما تختلف العبوات
سعر الوحدة هو السعر الإجمالي على الرف مقسوماً على الكمية التي تحصل عليها فعلاً: أونصات في مرطبان، ملليلترات في زجاجة، غرامات في كيس، أو قطع في عبوة متعددة. عندما تكلف العلامة أ ثلاثة دولارات وتسعة وأربعين سنتاً مقابل ست عشرة أونصة، والعلامة ب خمسة دولارات وتسعة وتسعين سنتاً مقابل اثنتين وثلاثين أونصة، فإن مقارنة الإجماليات على الرف وحدها مضللة — أحد المرطبانين أصغر. قسمة كل سعر على حجمه تمنح مقاماً مشتركاً لترتيب التكلفة الحقيقية لكل أونصة أو لكل ملليلتر أو لكل ورقة.
أفضل قيمة هي المنتج ذو أدنى سعر للوحدة، وليس بالضرورة صاحب أدنى بطاقة سعر أو أكبر عبوة. الشراء بالجملة أرخص غالباً لكل وحدة، لكن ليس دائماً: فعرض تخفيض على عبوة صغيرة قد يتفوق على حجم متاجر الجملة، والعبوات المتعددة تخفي أحياناً سعر وحدة أعلى من القطعة المفردة. هذه الحاسبة لا تحوّل الوحدات عنك — إذا كان منتج بالأونصات السائلة وآخر باللترات، فحوّل أولاً إلى وحدة واحدة — ولا تطبق الضرائب ولا القسائم ولا رسوم العضوية ولا خصومات الولاء.
إنها تطبق فقط الحساب الذي تجريه يدوياً: سعر الوحدة يساوي السعر على الحجم، ثم اختيار الحد الأدنى. يحتاجون جميعاً إلى العقد الحتمي نفسه: المدخلات نفسها، أسعار الوحدة نفسها، علامة أفضل قيمة نفسها، في أي بيئة. الأحجام الصفرية والسالبة أخطاء قاطعة لأن القسمة على صفر غير معرّفة، وحجم العبوة السالب ليس كمية فيزيائية في هذا النموذج.
نصائح عملية وحدود وعمليات بحث ذات صلة
استخدم وحدة الحجم نفسها لكل منتج في الاستدعاء الواحد: خلط الأونصات مع الملليلترات دون تحويل لن يُصحح عنك وسينتج ترتيباً بلا معنى. يُفضّل إرسال أرقام بدلاً من سلاسل منسقة كعملة؛ فالسلاسل الرقمية تُقبل فقط عندما تطابق نمطاً رقمياً منتهياً صارماً بلا علامات دولار ولا فواصل. أبقِ price غير سالب — العينات المجانية بسعر صفر مسموحة وتعطي سعر وحدة صفرياً — بينما يجب أن يبقى size موجباً تماماً.
تستهدف هذه الصفحة من يبحث عن حاسبة مقارنة سعر الوحدة أو أداة السعر لكل وحدة أو مدقق أفضل قيمة لحجم العبوة؛ وهي ليست جامع بيانات بقالة مباشراً ولا محول عملات متعدداً ولا مُحسّن قسائم. فضّل هذه القدرة عندما تعرف سعر الرف وحجم العبوة مسبقاً ولا تحتاج إلا إلى سعر الوحدة مع اختيار أفضل قيمة؛ وإذا كان مصدرك صورة إيصال، فاستخرج تلك الأرقام أولاً.
حالات الاستخدام
فحص أفضل قيمة في ممر البقالة
يدخل المتسوقون سعرين أو أكثر من أسعار الرفوف وأحجام العبوات ويشترون الخيار ذا أدنى سعر للوحدة بدلاً من أدنى بطاقة سعر.
واجبات وأوراق عمل رياضيات المستهلك
يقارن الطلاب العبوات المتعددة بالقطع المفردة ويتحققون من أسعار الوحدة المكتوبة بخط اليد واختيارات أفضل قيمة مقابل نتيجة حتمية.
الأسئلة الشائعة
كيف يُحسب سعر الوحدة؟
أفضل قيمة هي المنتج ذو أدنى سعر للوحدة عندما تستخدم جميع الأحجام الوحدة نفسها.
ماذا يحدث إذا كان حجم العبوة صفراً أو سالباً؟
الحجم الصفري أو السالب لا يمكن أن يعرّف سعر وحدة ذا معنى، لذا يُرفض الطلب ولا يُحتسب.
كم منتجاً يمكنني مقارنته؟
منتجان على الأقل وخمسون على الأكثر لكل طلب. يحتاج كل منتج إلى سعر غير سالب وحجم موجب تماماً.
هل العبوة الأكبر هي الأوفر دائمًا؟
لا. العبوات الكبيرة غالبًا أرخص لكل وحدة، لكن عرضًا على عبوة صغيرة قد يتفوق عليها، وبعض العبوات المجمعة تخفي سعرًا للوحدة أعلى من القطعة المفردة. سعر الوحدة وحده هو الفيصل.
هل يمكنني مقارنة الأوقية بالمليلتر؟
ليس مباشرة. حوّل كل المنتجات إلى وحدة الحجم نفسها أولًا، لأن الحاسبة لا تحوّل الوحدات. ومزج الأوقية بالمليلتر يعطي ترتيبًا بلا معنى.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/life/unit-price \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"products":[{"name":"Brand A 16 oz","price":3.49,"size":16},{"name":"Brand B 32 oz","price":5.99,"size":32}]}'const res = await fetch("https://api.kit.forhosting.com/life/unit-price", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"products": [
{
"name": "Brand A 16 oz",
"price": 3.49,
"size": 16
},
{
"name": "Brand B 32 oz",
"price": 5.99,
"size": 32
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/unit-price",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"products": [
{
"name": "Brand A 16 oz",
"price": 3.49,
"size": 16
},
{
"name": "Brand B 32 oz",
"price": 5.99,
"size": 32
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/unit-price", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"products":[{"name":"Brand A 16 oz","price":3.49,"size":16},{"name":"Brand B 32 oz","price":5.99,"size":32}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"products":[{"name":"Brand A 16 oz","price":3.49,"size":16},{"name":"Brand B 32 oz","price":5.99,"size":32}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/unit-price", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"products": [
{
"name": "Brand A 16 oz",
"price": 3.49,
"size": 16
},
{
"name": "Brand B 32 oz",
"price": 5.99,
"size": 32
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.unit_price",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
min_products | 2 |
max_products | 50 |
max_abs | 1000000000000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
أحجام العبوات الصفرية أو السالبة تُرفض مع invalid_input بدلاً من اختلاق ما لا نهاية أو صفقة لا معنى لها. المسار حساب حتمي خالص — لا شبكة ولا جامع بيانات متاجر ولا بذرة عشوائية ولا اعتماد على التوقيت — لذا يعيد المنفذ المجاني في المتصفح وواجهة API المدفوعة مسبقاً JSON نفسه بعد التقريب العشري الثابت في كل مرة تستدعيها.
كيفية استدعاء API وما الذي يعود
الحقل الاختياري name (بأسماء بديلة label وtitle) يوسم السطر في الاستجابة؛ وعند إغفاله تستخدم الأداة Product 1 وProduct 2 وهكذا. يمكنك أيضاً إرسال المصفوفتين المتوازيتين prices وsizes بالطول نفسه، مع names أو labels اختيارية. أرسل جسم JSON فيه حقل واحد مطلوب: products (بأسماء بديلة items وoptions وlist)، وهو مصفوفة من عنصرين على الأقل وخمسين على الأكثر. يحتاج كل عنصر إلى price منتهٍ غير سالب (بأسماء بديلة cost وamount) وsize موجب تماماً (بأسماء بديلة quantity وqty وunits وpackage_size). يجب أن تبقى القيم المطلقة لـprice وsize ضمن تريليون واحد كي تبقى النواتج الوسيطة منتهية بدقة IEEE المزدوجة على Worker وفي المتصفح. عند النجاح، تضبط الاستجابة count على عدد المنتجات المقارنة، وproducts على مصفوفة عناصر لكل منها index وname وprice وsize مقربان وunit_price وis_best_value، وbest_index على أول فهرس بأدنى سعر للوحدة، وbest_name وbest_unit_price وbest_price وbest_size على حقول ذلك الفائز، وsavings_vs_worst_per_unit على الفارق بين أعلى سعر للوحدة وأدناه، وformula على السلسلة النصية unit_price يساوي price على size، وmessage على ملخص إنجليزي قصير، وsteps على مصفوفة مرتبة من أسطر التعويض. فشل التحقق — غياب products، أو أقل من عنصرين، أو أرقام غير منتهية، أو قيم خارج الحدود المطلقة، أو أي size صفري أو سالب — يعيد invalid_input ولا يُحتسب أبداً. التسعير ثابت بقيمة $0.002 لكل طلب ناجح مع بند واحد وسعر وحدة هامشي صفري.
نصائح عملية وحدود وعمليات بحث ذات صلة
عند التدريس، اقرن الأمثلة: ثلاثة فاصلة أربعة تسعة مقابل ست عشرة أونصة في مواجهة خمسة فاصلة تسعة تسعة مقابل اثنتين وثلاثين أونصة يُظهر فوز العبوة الكبيرة بسعر الوحدة؛ وعرض تخفيض يهبط بالعبوة الصغيرة دون سعر وحدة الجملة يُظهر انقلاب أفضل قيمة؛ ومنتجان بسعر وحدة متطابق ينتجان تعادلاً موثقاً مع is_best_value بقيمة true لكليهما وbest_index يشير إلى الأول؛ وsize صفري أو سالب يوضح مسار invalid_input القاطع. المهام الفاشلة التي تعيد invalid_input لا تستهلك الرصيد المدفوع مسبقاً، مما يُبقي النصوص الاستكشافية رخيصة عندما يضبط المتعلمون size على صفر عمداً. فحوص الذهاب والإياب سهلة: أعد حساب كل price مقسوماً على size يدوياً وتأكد أنه يساوي unit_price المنشور ضمن التقريب نفسه إلى اثني عشر رقماً عشرياً، وتأكد أن المنتج ذا unit_price الأدنى هو الوحيد الموسوم كأفضل قيمة ما لم يوجد تعادل حقيقي.
حالات التكامل
اختبارات وحدة للمشتريات والكتالوج
تقيّم الفرق دفعة واحدة أزواج سعر SKU وحجم العبوة وتتحقق من حقول best_index وunit_price في اختبارات واجهة الدفع أو الكتالوج.
أسئلة تقنية
ماذا لو كان لمنتجين سعر الوحدة نفسه؟
يُوسم كلاهما بـis_best_value بقيمة true. يشير best_index إلى أول منتج حقق أدنى سعر للوحدة.
هل حاسبة مقارنة سعر الوحدة مجانية؟
أداة المتصفح مجانية وتعمل محلياً. تستدعي طلبات API رصيد KIT المدفوع مسبقاً بقيمة $0.002 لكل طلب ناجح؛ والمهام الفاشلة لا تُحتسب أبداً.