أنشئ أمر شراء منظما مع حساب الإجماليات
حوّلوا بيانات الشراء المعتمدة إلى أمر شراء منظم ومتسق من دون إعادة بناء قواعد الحساب في كل تطبيق.
شغّل الأداة مجانًا
أدخلوا رقم أمر الشراء والمشتري والمورد وبندا واحدا على الأقل يتضمن الوصف والكمية وتكلفة الوحدة. يتحقق المولد من البيانات المطلوبة، ويحسب إجمالي كل سطر وإجمالي الطلب، ثم يعيد كائنا متوقع البنية جاهزا للمراجعة الداخلية أو الحفظ الدائم أو العرض أو الاعتماد الرسمي أو أي مرحلة أخرى في سير المشتريات.
جهزوا بيانات أمر الشراء كاملة
ابدؤوا برقم أمر شراء سبق أن خصصه نظام المشتريات لديكم. يحافظ المولد على هذه القيمة كما هي بعد حذف المسافات المحيطة؛ فلا ينشئ معرفات، ولا يفحص تسلسلا، ولا يحجز رقما نيابة عنكم. بعد ذلك حددوا المشتري والمورد. يمكن أن يحتوي هذان الحقلان اسما تجاريا مختصرا أو كتلة أطول تضم العنوان وبيانات التسجيل، بحسب ما يتطلبه النظام الذي سيعرض المستند. أضيفوا بندا واحدا على الأقل، واجعلوا لكل سطر وصفا محددا وكمية رقمية أكبر من الصفر وتكلفة وحدة رقمية غير سالبة. يمكن استعمال الكميات الكسرية للسلع أو الخدمات المشتراة بحسب الوزن أو الطول أو الوقت أو أي وحدة قابلة للتجزئة. تُقبل تكلفة الوحدة الصفرية لبند مجاني فعلا، لكن تُرفض الكمية الصفرية أو السالبة لأنها لا تعبر عن طلب شراء. استخدموا العملة نفسها وأساس التسعير نفسه لجميع تكاليف الوحدات. لا تستنتج هذه الإمكانية العملات أو وحدات القياس أو شروط الدفع أو مواعيد التسليم أو الضرائب أو الخصومات أو رسوم الشحن، لذلك عالجوا تلك القرارات التجارية قبل هذا الحساب أو بعده حسب الحاجة.
افهموا كيفية حساب إجماليات أمر الشراء
يضرب المولد في كل سطر الكمية في تكلفة الوحدة، ثم يقرب إجمالي السطر الناتج إلى منزلتين عشريتين. وبعد ذلك يجمع إجماليات السطور المقربة ويقرب المجموع لإنتاج المجموع الفرعي لأمر الشراء. ولأن هذه الإمكانية لا تقبل الضرائب أو الشحن أو الخصومات أو أي تعديلات أخرى، فإن الإجمالي المعاد يساوي المجموع الفرعي. يكتسب هذا التسلسل الصريح أهمية عندما تحتوي الكميات الكسرية أو تكاليف الوحدات على عدة منازل عشرية، إذ قد يختلف نظام آخر يجمع القيم الوسيطة غير المقربة بمقدار سنت واحد. تحتفظ الاستجابة بالوصف الموحد والكمية الرقمية الأصلية وتكلفة الوحدة المقربة وإجمالي السطر المحسوب لكل بند. وعلى مستوى المستند، تعيد نوعه ورقم أمر الشراء المقدم والمشتري والمورد ومصفوفة البنود والمجموع الفرعي والإجمالي. يجب أن تكون الأرقام كلها محدودة؛ ولا تُحوّل السلاسل التي تبدو رقمية تحويلا ضمنيا. كما تُرفض تكاليف الوحدات السالبة. تكشف هذه القواعد بيانات الشراء غير السليمة مبكرا، وتمنح القوالب وشاشات الاعتماد وقواعد البيانات وعمليات التكامل عقد حساب واحدا مستقرا.
استخدموا المستند المنظم في سير المشتريات
ضعوا هذه الإمكانية بعد اعتماد طلب الاحتياج وتخصيص رقم أمر الشراء، عندما تصبح بيانات الشراء القابلة للتعديل جاهزة للتحول إلى سجل طلب مضبوط. أرسلوا أسماء الأطراف الموحدة وصفوف البنود، ثم احفظوا الكائن المعاد بوصفه نتيجة الحساب التي تستخدمها المراحل اللاحقة. يمكن لقالب تحويله إلى HTML أو PDF، ويمكن لخدمة اعتماد مقارنة إجماليه بحدود الصلاحيات، كما يمكن لعملية تكامل نقل السطور إلى نظام ERP أو بوابة المورد. تظل هذه الإجراءات منفصلة: لا يرسل المولد أمر الشراء، ولا يتصل بالمورد، ولا ينشئ ملفا، ولا يحجز ميزانية، ولا يحدث المخزون. وهو لا يستخدم الشبكة أو الساعة أو القيم العشوائية أو التخزين أو حالة مخفية، لذلك ينتج الطلب المطابق الاستجابة نفسها دائما. يسهل ذلك إعادة المحاولة والمقارنة في التدقيق. عالجوا أخطاء التحقق قبل تقديم الأمر للتوقيع، وخصوصا غياب البنود أو فراغ بيانات الأطراف أو فقدان رقم الأمر أو وجود مبالغ غير رقمية. تبلغ كلفة طلب API مقدار $0.002، ويمكن للحساب النقي نفسه دعم تجربة المتصفح.
حالات الاستخدام
أنشئوا أوامر شراء معتمدة
حوّلوا بنود طلبات الاحتياج المعتمدة إلى أمر منظم ذي إجماليات محسوبة ومتسقة.
شغّلوا نموذج إدخال للمشتريات
احسبوا إجماليات البنود والطلب أثناء إعداد الموظفين البيانات للمراجعة والعرض.
وحّدوا عمليات تكامل المشتريات
قدموا للتطبيقات الداخلية ومسارات الموردين عقد حساب حتميا واحدا.
الأسئلة الشائعة
ما كلفة طلب API واحد؟
تبلغ كلفة كل طلب API مقدار $0.002.
ماذا يحدث عند عدم وجود بنود؟
يعيد الطلب خطأ إدخال غير صالح لأن كل أمر شراء يجب أن يحتوي على بند واحد على الأقل.
كيف تُقرب القيم المالية؟
تُضرب كل كمية في تكلفة وحدتها ويُقرب الناتج إلى منزلتين، ثم تُجمع إجماليات البنود وتُقرب.
هل يخصص المولد رقم أمر الشراء؟
لا. يجب أن تقدموا رقم الأمر، وتحافظ النتيجة عليه بوصفه جزءا من المستند المنظم.
هل تشمل النتيجة الضريبة أو العملة أو ملف PDF؟
لا. تعيد بيانات أمر شراء منظمة وإجماليات محسوبة. الضرائب والعملات والعرض والتسليم مراحل منفصلة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/doc/purchase-order-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"po_number":"PO-2026-0142","buyer":"Contoso Retail","vendor":"Northwind Supplies","line_items":[{"description":"Ergonomic keyboard","quantity":12,"unit_cost":79.95},{"description":"USB-C dock","quantity":5,"unit_cost":149.5}]}'const res = await fetch("https://api.kit.forhosting.com/doc/purchase-order-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"po_number": "PO-2026-0142",
"buyer": "Contoso Retail",
"vendor": "Northwind Supplies",
"line_items": [
{
"description": "Ergonomic keyboard",
"quantity": 12,
"unit_cost": 79.95
},
{
"description": "USB-C dock",
"quantity": 5,
"unit_cost": 149.5
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/purchase-order-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"po_number": "PO-2026-0142",
"buyer": "Contoso Retail",
"vendor": "Northwind Supplies",
"line_items": [
{
"description": "Ergonomic keyboard",
"quantity": 12,
"unit_cost": 79.95
},
{
"description": "USB-C dock",
"quantity": 5,
"unit_cost": 149.5
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/purchase-order-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"po_number":"PO-2026-0142","buyer":"Contoso Retail","vendor":"Northwind Supplies","line_items":[{"description":"Ergonomic keyboard","quantity":12,"unit_cost":79.95},{"description":"USB-C dock","quantity":5,"unit_cost":149.5}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"po_number":"PO-2026-0142","buyer":"Contoso Retail","vendor":"Northwind Supplies","line_items":[{"description":"Ergonomic keyboard","quantity":12,"unit_cost":79.95},{"description":"USB-C dock","quantity":5,"unit_cost":149.5}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/purchase-order-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"po_number": "PO-2026-0142",
"buyer": "Contoso Retail",
"vendor": "Northwind Supplies",
"line_items": [
{
"description": "Ergonomic keyboard",
"quantity": 12,
"unit_cost": 79.95
},
{
"description": "USB-C dock",
"quantity": 5,
"unit_cost": 149.5
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.purchase_order_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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |