مساعدة Infurnia

“All trade words in English” is not ready for these pages yet, so they are shown with “Common trade words in English”.

Pricing

تعديل أسعار قنوات البيع دفعةً واحدة وتبديل أنواع الأسعار في تصميم

عدّل قيم قنوات البيع وأنواع الأسعار لعدة SKUs دفعةً واحدة، وأعد تسعير تصميم قائم بتبديل نوع سعره.

  1. يتم تعديل أسعار قنوات البيع دفعةً واحدة لعدة SKUs من الأجهزة أو الملحقات بتحديد الـ SKUs، وفتح إجراء التعديل الجماعي، وتعديل قيم قنوات البيع وأنواع الأسعار الفردية، وتأكيد التغييرات.

  2. تبديل نوع السعر في تصميم قائم يعيد تسعيره في مكانه — لا يلزم نسخ التصميم أو إعادة نمذجته ليُسعَّر بمجموعة أسعار مختلفة.

  3. A price type can be used to switch a quote on an existing design between default and franchisee prices instantly, without changing the sales channel.

  4. لا يمكن تعريف نوع سعر كمعامل أو نسبة مئوية من نوع سعر آخر.

  5. يجب إعطاء كل نوع سعر قيمه الخاصة لكل SKU.

  6. تُطبَّق زيادة السعر بتعديل أسعار العناصر الفردية بدلًا من ضبط معامل واحد.

  7. يحدّث POST /price/update (المتاح أيضًا ضمن enterprise_api) سعر SKU واحد. القواعد المفروضة في الشيفرة: يجب إرسال sales_channel_id وprice_type_id معًا أو عدم إرسالهما إطلاقًا — حذفهما معًا يحدّث السعر الافتراضي للمؤسسة/وحدة الأعمال، وإرسالهما معًا يحدّث سعر تلك القناة + قائمة الأسعار؛ وإرسال واحد فقط يسبب خطأ. price وtax وmargin وdisplay_unit إلزامية (تُقبل القيمة صفر؛ والقيم المفقودة تُرجع ⁦'price, tax, margin, display_unit must be specified'⁩)؛ وحقول الخصم اختيارية. يقبل الاستدعاء أيضًا إعداد أهلية خدمة اختياريًا (⁦'serviceable'⁩ أو ⁦'unserviceable'⁩) يُطبَّق على ربط SKU + قناة البيع بمعزل عن قائمة الأسعار؛ ولا يجوز إرساله إلا مع قناة بيع، ويُرفض إرساله دونها. عبر واجهة enterprise API، يكون use_referred_price مثبتًا على false، لذا كل تحديث عبر API يفصل سعر قناة البيع عن السعر الافتراضي — بعد كتابة عبر API، لم تعد التغييرات اللاحقة على السعر الافتراضي تنتقل إلى سعر تلك القناة حتى يعيد أحد ربطه في ⁦admin portal⁩. عندما لا يكون لقناة الهدف + نوع السعر صف سعر صريح بعد، ينشئ API واحدًا، ناسخًا إعدادات CBU/exclusion-list/override-margin/pricing-from من السعر الافتراضي. يجب إرسال أسعار وحدات العرض البُعدية على أساس السعر لكل مليمتر. تظهر الإخفاقات كـ PRICE_UPDATE_FAILED، ويُرفض الطلب الذي يسمّي قناة بيع ليس لها إدخال SKU مطابق كخطأ معاملات غير صالحة؛ ويتطلب التفويض صلاحيات مدير كتالوج للمؤسسة أو لوحدة الأعمال المالكة لقناة البيع، وكل استدعاء يُسجَّل في سجل التدقيق.

  8. حذف نوع سعر (price_type/remove؛ مدير كتالوج على مستوى المؤسسة أو وحدة الأعمال) عملية محمية من خطوتين. لا يمكن حذف نوع السعر الافتراضي أبدًا (CANNOT_DELETE_DEFAULT_PRICE_TYPES). يعيد الاستدعاء الأول دون force النتيجة successfully_removed:false مع ما يعيقه: يسرد sales_channel_map_req قنوات البيع التي يكون فيها هذا نوع السعر الوحيد المرتبط (وكل واحدة تحتاج بديلًا)، ويسرد users_map_req المستخدمين الذين يكون نوع السعر هذا نوعهم المفضّل (ويعدّ num_users كل من هو مرتبط). يجب على المستدعي إعادة الإرسال مع sales_channel_map وuser_map مع توفير بديل واحد بالضبط لكل كيان معيق — لا إضافات ولا نواقص، وكل أنواع الأسعار تابعة للمؤسسة نفسها — وإلا فـ INVALID_PARAMS. تنبيه: يجب أن يكون نوع السعر المفضّل البديل للمستخدم مرتبطًا به بالفعل على المستوى نفسه (المؤسسة أو وحدة الأعمال)؛ فلن ينشئ API الربط ويفشل بـ INVALID_PARAMS. عند النجاح يحذف نوع السعر، وربطاته بالمستخدمين وقنوات البيع، وكل ربط أسعار SKU بقنوات البيع تحته — وكل سعر مخصص لكل SKU مخزّن تحت قائمة الأسعار تلك يُسقَط نهائيًا (يشير تعليق في الشيفرة إلى أن صفوف Price الأساسية تُترك يتيمة لأغراض مرجعية). انصح العملاء بمعاملة حذف نوع السعر كعملية مدمّرة وغير قابلة للتراجع بالنسبة لأسعار تلك القائمة.