تصفح الدليل

أدوات MCP

العطاءات وتسعير البنود

أدوات MCP لقائمة العطاءات ولأسعار بنود كل منافسة وما تسفر عنه من ترسية.

العطاء منافسة قررت مؤسستك العمل عليها، ويمر بمراحل من المراجعة حتى الفوز أو الخسارة. وسعر البند هو سعر الوحدة الذي تحدده مؤسستك لبند من بنود المنافسة. تقرأ هذه الأسعار كل أدوات إعداد العطاء بعدها: عروض الأسعار وملفات نوبكو وخطاب التغطية، فهذه الأدوات هي المكان الذي تكتب فيه أسعار العطاء.

نصيحة:السعر الموجب يعلم البند بالمشاركة تلقائيا، والسعر 0 يزيل علامة المشاركة ويبقي السعر نفسه. فهو الطريقة لإخراج بند من العطاء أثناء التسعير. وتقرأ ملفات العطاء البنود المشارك فيها والمسعرة بأكثر من صفر فقط.
الأداةما تفعله
bids_listعرض العطاءات
bids_createإضافة عطاء
bids_updateتعديل عطاء
bids_deleteحذف عطاء
bid_pricing_listعرض أسعار البنود
bid_pricing_set_batchتحديد أسعار عدة بنود
bid_pricing_outcome_setتسجيل نتيجة ترسية بند
bid_pricing_deleteحذف سعر بند

قائمة العطاءات

عطاء واحد لكل منافسة. المراحل بالترتيب: reviewing (قيد المراجعة) ثم preparing (إعداد العرض) ثم submitted (تم التقديم)، وتنتهي بإحدى won (فائز) أو lost (خسارة) أو cancelled (ملغى).

bids_list

يعرض عطاءات مؤسستك، لكل عطاء منافسته. استخدمه لترى ما تعمل عليه وفي أي مرحلة، ورشح النتائج بالمرحلة عند الحاجة.

للقراءة فقط · الصلاحية bids.read · كل الأدوار · الخطة الاحترافية وخطة المؤسسات

المعاملالنوعمطلوبالوصف
pageintegerلارقم الصفحة، ويبدأ من 1.
page_sizeintegerلاعدد النتائج في الصفحة: 20 افتراضيا، وحده الأقصى 100.
statusstringلايرشح العطاءات بمرحلة واحدة، وهي إحدى القيم المذكورة أعلاه.

ما يعيده: صفحة من العطاءات مع منافسة كل عطاء وعدد النتائج الكلي.

  • يرى الدوران الفني والمشاهد بدون تسعير العطاءات، لكن حقل bid_amount يعود فارغا لهما.

bids_create

يضيف منافسة إلى قائمة عطاءات مؤسستك. لكل منافسة عطاء واحد فقط، فإن وجد عطاء لها ردت الأداة بتعارض.

يغير البيانات · الصلاحية bids.write · الأدوار: المالك، المدير، المبيعات، المشتريات · الخطة الاحترافية وخطة المؤسسات

المعاملالنوعمطلوبالوصف
tender_idintegerنعممعرف المنافسة، ويأتي من أدوات المنافسات.
statusstringلاالمرحلة الأولى للعطاء. الافتراضي reviewing.
bid_amountnumberلاإجمالي قيمة العطاء بالريال السعودي. أرسل null لتتركه غير محدد.
notesstringلاملاحظات حرة على العطاء، حتى 5000 حرف.
{
  "tender_id": 48213,
  "status": "reviewing",
  "notes": "Syringes lot, check MDMA status first"
}
مثال على المعاملات

ما يعيده: العطاء الذي أنشئ.

  • يحتسب كل عطاء جديد ضمن حد المنافسات النشطة في خطتك، وتمتنع الأداة عند بلوغه.

bids_update

يعدل مرحلة العطاء أو قيمته أو ملاحظاته. لا يتغير إلا ما ترسله.

يغير البيانات · الصلاحية bids.write · الأدوار: المالك، المدير، المبيعات، المشتريات · الخطة الاحترافية وخطة المؤسسات

المعاملالنوعمطلوبالوصف
idintegerنعممعرف العطاء.
statusstringلاالمرحلة الجديدة.
bid_amountnumberلاإجمالي القيمة بالريال السعودي. أرسل null لمسحه.
notesstringلاالملاحظات. أرسل null لمسحها.
{
  "id": 311,
  "status": "submitted",
  "bid_amount": 148167.95
}
مثال على المعاملات

ما يعيده: العطاء بعد التعديل.

  • تغيير المرحلة يطلق حدث bid.status_changed إلى الويب هوك التي ضبطتها مؤسستك.

bids_delete

يزيل عطاء من قائمة مؤسستك. لا يمكن التراجع عن ذلك، وتبقى أسعار البنود محفوظة.

يحذف بيانات أو يستبدلها · الصلاحية bids.write · الأدوار: المالك، المدير، المبيعات، المشتريات · الخطة الاحترافية وخطة المؤسسات

المعاملالنوعمطلوبالوصف
idintegerنعممعرف العطاء.

ما يعيده: تأكيد الحذف.

أسعار البنود

لكل بند من بنود المنافسة سعر واحد لمؤسستك. الإضافة والتعديل بالأداة نفسها، ولا حاجة لوجود عطاء للمنافسة حتى تسعر بنودها.

bid_pricing_list

يعرض أسعار مؤسستك لبنود منافسة واحدة، مع نتيجة الترسية المسجلة لكل بند.

للقراءة فقط · الصلاحية bids.read · الأدوار: المالك، المدير، المبيعات، المشتريات، المشاهد · الخطة الاحترافية وخطة المؤسسات

المعاملالنوعمطلوبالوصف
tender_idintegerنعممعرف المنافسة.

ما يعيده: أسعار البنود، لكل سعر معرفه الذي تستخدمه أدوات النتيجة والحذف.

bid_pricing_set_batch

يسعر بندا واحدا أو حتى 500 بند من منافسة واحدة في طلب واحد، من أسعار تكتبها أو من هامش على تكلفة المنتج المختار لكل بند. سعر واحد لكل بند في مؤسستك، ويستبدل الطلب السعر السابق.

يغير البيانات · الصلاحية bids.write · الأدوار: المالك، المدير، المبيعات، المشتريات · الخطة الاحترافية وخطة المؤسسات

المعاملالنوعمطلوبالوصف
tender_idintegerنعممعرف المنافسة.
itemsobject[]نعمالبنود المراد تسعيرها، من 1 إلى 500، ولا يتكرر معرف بند فيها.
items[].tender_item_idintegerنعممعرف البند.
items[].unit_pricenumberلاسعر الوحدة بالريال السعودي. أرسله أو margin_percent، لا الاثنين.
items[].margin_percentnumberلاهامش الربح نسبة من سعر البيع، من -100 إلى أقل من 100: يصبح السعر تكلفة المنتج المختار للبند مقسومة على (1 − الهامش/100). أرسله أو unit_price، لا الاثنين.
items[].notesstringلاملاحظات على التسعير، مع unit_price فقط.
{
  "tender_id": 48213,
  "items": [
    {
      "tender_item_id": 902114,
      "unit_price": 3.45
    },
    {
      "tender_item_id": 902115,
      "unit_price": 12.9,
      "notes": "Includes delivery"
    },
    {
      "tender_item_id": 902116,
      "margin_percent": 20
    }
  ]
}
مثال على المعاملات

ما يعيده: قائمة بما سعر وقائمة بما فشل، مع عدد كل منهما.

  • تعالج الصفوف كل على حدة: صف معرف بنده ليس بندا حيا من المنافسة يفشل وحده بخطأ مقروء، وتحفظ بقية الصفوف.
  • تكرار معرف بند في الطلب يرفضه كله قبل حفظ أي شيء.
  • مع margin_percent يبنى السعر على سعر تكلفة المنتج المختار للبند (والدولار بسعر الصرف الثابت 3.75) محولا إلى وحدة واحدة من البند، ويقرب إلى أربع خانات عشرية، ويحفظ السعر وحده: هامش 20 على تكلفة 100 ريال يعطي 125 ريالا. والتكلفة تذكر لمستوى price_basis للمنتج، فالبند الذي يشترى بعلبة من 100 يبنى على تكلفة العلبة، والبند الذي وحدته غير مؤكدة على تكلفة وحدة واحدة من المنتج. ويضيف الرد إلى السطر المسعر margin_percent وcost_sar (لوحدة البند) وproduct_id وprice_level وlevel_count وlevel_measure وlevel_status (check يعني أن الوحدة غير مؤكدة، ومعه suggestion). وهذا التسعير لأدوار المالك والمدير والمشتريات، لأن السعر الناتج يكشف التكلفة، فيرفض لدور المبيعات.
  • سطر الهامش يفشل وحده ويذكر السبب في reason: no_selection حين لا يوجد منتج مختار للبند (اختره بـ`tender_item_product_selection_set`)، وarchived_product حين يكون المنتج المختار مؤرشفا، وno_cost حين لا يكون للمنتج سعر تكلفة أكبر من صفر (أضفه بـ`products_update`)، وno_conversion حين يتعذر تحويل التكلفة إلى وحدة البند لنقص عدد في بيانات التعبئة، ومعه missing باسمه (أكمله بـproducts_update أو حدد وحدة البند بـ`tender_item_price_levels_set`)، وrounds_to_zero حين يصبح السعر 0.0000 بعد التقريب. ولا يأخذ سطر الهامش ملاحظات، ويبقي ملاحظة البند كما هي.
  • السعر الموجب يعلم البند بالمشاركة، والسعر 0 يبقي سطر السعر ويزيل علامة المشاركة، ويذكر الرد لكل سطر أيهما حدث. ولإعادة العلامة استخدم `tender_item_participation_set_batch`. وللأسعار القادمة في ملف Excel أو CSV استخدم `sheet_import` بالهدف bid_pricing، فهو يقرأ كل الصفوف على الخادم.

bid_pricing_outcome_set

يسجل هل رسا بند مسعر على مؤسستك (awarded) أم لم يرس عليها (not_awarded). أرسل null لإعادته إلى حالة الانتظار.

يغير البيانات · الصلاحية bids.write · الأدوار: المالك، المدير، المبيعات، المشتريات · الخطة الاحترافية وخطة المؤسسات

المعاملالنوعمطلوبالوصف
idintegerنعممعرف سعر البند، ويأتي من bid_pricing_list. وهو غير معرف البند نفسه.
outcomestringنعمawarded أو not_awarded، أو null لإعادته إلى الانتظار.
{
  "id": 5521,
  "outcome": "awarded"
}
مثال على المعاملات

ما يعيده: سعر البند بعد تسجيل النتيجة.

bid_pricing_delete

يزيل سعرا واحدا لبند. لا يمكن التراجع عن ذلك، وتبقى علامة المشاركة كما هي.

يحذف بيانات أو يستبدلها · الصلاحية bids.write · الأدوار: المالك، المدير، المبيعات، المشتريات · الخطة الاحترافية وخطة المؤسسات

المعاملالنوعمطلوبالوصف
idintegerنعممعرف سعر البند، ويأتي من bid_pricing_list.

ما يعيده: تأكيد الحذف.