انتقل إلى المحتوى
DevMarket
وحدات Odooإضافات ووردبريسقوالب ووردبريسقوالب Shopifyقوالب التطبيقاتالسكربتات والأدواتالمدونةبِع على DevMarket

توثيق إخفاء تكلفة المنتج والهوامش عن مندوبي المبيعات لأودو 19

دليل إخفاء تكلفة المنتج والهوامش عن مندوبي المبيعات: ما الذي يختفي ومن يظل يراها وكيف تُحمى واجهة API وما لا تغطيه الوحدة.

يشرح الإصدار 1.0.0حُدّث في 22 أكتوبر 2026

ابدأ من هنا

ببساطة: يعرض أودو تكلفة المنتج وهامش الطلب لكل مستخدم داخلي. هذا مقبول للمدير، لكن مندوب المبيعات الذي يرى أنك تشتري كرسيًا بـ55 وتبيعه بـ70 يفاوض بطريقة مختلفة وقد يخبر العميل. تسحب هذه الوحدة التكلفة والهامش ممن تختار، في كل مكان: في الشاشات وفي التقارير وفي واجهة API.
مندوب المبيعاتمدير المبيعات والمحاسب والمدير
نموذج المنتج وقائمتهبلا التكلفةتظهر التكلفة
سطور الطلببلا أعمدة التكلفة والهامش والهامش %أعمدة اختيارية متاحة
إجماليات الطلببلا سطر الهامشالهامش والنسبة
تحليل المبيعات والفواتيربلا مقياس الهامشالهامش متاح
JSON-RPC / XML-RPC / التصديرالوصول مرفوضمسموح
نصيحة: يواصل مندوبو المبيعات العمل تمامًا كما قبل: يعرضون الأسعار ويؤكدون ويسلّمون ويفوترون. ويحسب أودو الهامش في الخلفية لمن يحق لهم رؤيته.

ما الذي يُخفى

النموذجالحقلأين تراه عادةً
المنتج / قالب المنتجالتكلفة (standard_price)نموذج المنتج وقائمة المنتجات وقائمة المتغيرات
سطر أمر البيعالتكلفة (purchase_price) والهامش والهامش %سطور الطلب (النموذج والقائمة) والمحور والرسم
أمر البيعالهامش والهامش %إجماليات الطلب وقائمة الطلبات والمحور والرسم
تقرير تحليل المبيعاتالهامشالمبيعات ← التقارير ← المبيعات
تقرير تحليل الفواتيرالهامش وقيمة المخزونالفوترة ← التقارير ← الفواتير
ببساطة: هذه هي الحقول التي يستخدمها أودو نفسه لعرض التكلفة والهامش أو حسابهما. لا تخفي الوحدة شيئًا آخر: تبقى الأسعار والخصومات والضرائب والإجماليات ظاهرة.

المتطلبات

البندالتفاصيل
أودو19.0 (Community أو Enterprise)
التطبيقات المطلوبةالمبيعات مع وحدة الهوامش في أوامر البيع (sale_margin) والفوترة والمخزون. تُثبَّت تلقائيًا.
الرخصةOPL-1 (رخصة أودو الخاصة v1.0)

التثبيت

  1. فُكّ ضغط الحزمة. بداخلها taqnix_hide_cost_margin.zip؛ فُكّه لتحصل على المجلد taqnix_hide_cost_margin.
  2. انسخ المجلد إلى أحد مجلدات addons_path في خادم أودو وأعد تشغيل أودو.
  3. سجّل الدخول كمدير وفعّل وضع المطوّر ثم افتح التطبيقات واضغط تحديث قائمة التطبيقات.
  4. أزل مرشح «التطبيقات» وابحث عن Hide Product Cost واضغط تثبيت.
# أو من سطر الأوامر
./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_hide_cost_margin --stop-after-init
مهم: التثبيت يخفي التكلفة والهامش عن كل من ليس في المجموعة الموضحة أدناه. راجع الفصل 5 قبل التثبيت على نظام حي كي لا يفقدها من يحتاجها.

من يظل يرى التكلفة والهامش

ببساطة: تقرر ذلك مجموعة واحدة: رؤية تكلفة المنتج والهوامش. وتُمنح تلقائيًا، عبر الأدوار الموجودة أصلًا في أودو، لمن يعمل بالتكاليف عادةً.
الدور في أودوهل يرى التكلفة والهامش؟
المبيعات ← مدير (مدير المبيعات)نعم
المحاسبة ← محاسب ومستشارنعم
المخزون ← مديرنعم
المشتريات ← مستخدم ومديرنعم
الإعدادات ← مديرنعم
المبيعات ← مستخدم: مستنداته فقطلا
المبيعات ← مستخدم: كل المستنداتلا
المحاسبة ← الفوترة فقطلا
  1. افتح الإعدادات ← المستخدمون والشركات ← المستخدمون وافتح المستخدم.
  2. لمنح رؤية التكلفة أضف المجموعة رؤية تكلفة المنتج والهوامش في حقوق وصول المستخدم، أو امنحه أحد الأدوار أعلاه.
  3. لسحبها أزل الدور الذي يمنحها. ومن لا يملك أي دور كهذا يتوقف ببساطة عن رؤية الأرقام.
نصيحة: لأن المجموعة تأتي من الأدوار فلا حاجة لتعديل كل شخص على حدة: يبقى المديرون والمحاسبون الحاليون يرون كل شيء لحظة التثبيت، ويفقدها مندوبو المبيعات.

في المنتج

ببساطة: نموذج المنتج أول مكان ينظر إليه الناس. المنتج نفسه كما يراه مندوب مبيعات ومدير:
ببساطة: تفقد قائمة المنتجات وقائمة المتغيرات عمود التكلفة أيضًا.

في أوامر البيع

ببساطة: في الطلب تزيل الوحدة أعمدة التكلفة والهامش والهامش % وسطر الهامش تحت الإجماليات وخيارات الأعمدة الاختيارية.
ببساطة: يستطيع مندوبو المبيعات تغيير الكميات والأسعار والخصومات. وإن تغيّر سعر يُحدَّث الهامش في الخلفية، ولا يراه إلا من في المجموعة.

في التقارير

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

ليس الشاشة فقط: واجهة API

ببساطة: لا يكفي إخفاء حقل في عرض. لأودو واجهة API مفتوحة، ويستطيع موظف فضولي بضعة أسطر من Python أن يطلب من الخادم مباشرةً تكلفة كل منتج. تعمل هذه الوحدة على النموذج نفسه فيرفض الخادم.
import xmlrpc.client
common = xmlrpc.client.ServerProxy('https://erp.example.com/xmlrpc/2/common')
uid = common.authenticate('db', 'sally', 'her-password', {})
m = xmlrpc.client.ServerProxy('https://erp.example.com/xmlrpc/2/object')

m.execute_kw('db', uid, 'her-password', 'product.template', 'read', [[3], ['name']])
# [{'id': 3, 'name': 'Virtual Interior Design'}]

m.execute_kw('db', uid, 'her-password', 'product.template', 'read', [[3], ['standard_price']])
# xmlrpc.client.Fault: AccessError: You do not have enough rights to access the field "standard_price"
استدعاء من مندوب مبيعاتالنتيجة
read مع الحقل المخفيخطأ وصول
read دون قائمة حقوليعمل لكن الحقول المخفية ليست في الجواب
search / search_read بنطاق على حقل مخفيخطأ وصول (لا يمكن تخمين التكلفة بالترشيح)
read_group على حقل مخفيخطأ وصول
write للتكلفةخطأ وصول
fields_getلا تُعلَن الحقول المخفية

ما لا تخفيه

ببساطة: لنكن واضحين بشأن الحدود كي لا تحدث مفاجآت.
غير مشمولما العمل
أسعار الموردين في تبويب الشراء للمنتج وأوامر الشراءتحتاج تطبيق المشتريات. لا تمنحه لمندوبي المبيعات.
تقييم المخزون وتقارير قيمة المخزونتحتاج صلاحيات المخزون. لا تمنحها لمندوبي المبيعات.
تكلفة التصنيع (قوائم المواد ومراكز العمل)تحتاج صلاحيات التصنيع.
تقارير هامش نقاط البيعلنقاط البيع تقاريرها الخاصة. اقصرها على المديرين.
وحدات مخصصة تقرأ التكلفة لمندوب مبيعاتسيحصلون على خطأ وصول. راجع الفصل 12 للحل.
سعر البيع والخصوماتليست أسرارًا: يحتاجها مندوبو المبيعات للبيع.
مهم: إن كان لمندوب مبيعات أيضًا صلاحيات مدير في المشتريات أو المخزون أو نقاط البيع فستعرض تلك التطبيقات التكاليف عبر شاشاتها. راجع أدوار فريق مبيعاتك.

جرّبها بنفسك

  1. أنشئ مستخدمًا تجريبيًا بدور المبيعات ← مستخدم: كل المستندات فقط (مع الفوترة إن كان سيفوتر).
  2. افتح نافذة متصفح خاصة وسجّل الدخول بهذا المستخدم.
  3. افتح منتجًا وطلبًا والمبيعات ← التقارير. لا ينبغي أن تجد تكلفة ولا هامشًا.
  4. أنشئ عرض سعر وأكّده وأنشئ فاتورة. كل شيء يعمل كما قبل.
  5. سجّل الدخول كمدير وتحقق من هامش ذلك الطلب: موجود وصحيح.
ببساطة: تأتي الوحدة مع اختبارات آلية تفعل هذا بالضبط، بما فيها استدعاءات API الموضحة في الفصل 9.

للمطورين

ببساطة: تجاوز هذا الفصل إن كنت تستخدم الوحدة فقط.
البندالتفاصيل
المجموعةtaqnix_hide_cost_margin.group_see_cost
كيف تُحمى الحقوليُعاد تعريف الحقول مع groups. فيرفض أودو قراءتها والبحث بها وتجميعها وكتابتها وتصديرها لغير المخوَّلين، ويزيلها من كل عرض.
شيفرتك أنتاقرأ الحقول المحمية بـ.sudo() عندما تحتاجها شيفرتك لأي مستخدم.
سطور الطلبتعمل _add_precomputed_values بصلاحيات المدير الأعلى كي تُحسب التكلفة مسبقًا عندما ينشئ مندوب مبيعات سطرًا.
# احمِ حقلًا آخر بالطريقة نفسها
from odoo import fields, models

class ProductTemplate(models.Model):
    _inherit = 'product.template'

    my_secret_price = fields.Float(groups='taqnix_hide_cost_margin.group_see_cost')

# شيفرتك التي تحتاج التكلفة لأي مستخدم
cost = line.product_id.sudo().standard_price

استكشاف الأخطاء

المشكلةما العمل
ما زال مندوب مبيعات يرى التكلفةلديه دور يمنح المجموعة (مثل مدير المبيعات أو مستخدم المشتريات). افحص أدواره وأزل الدور الزائد.
لم يعد المدير يرى الهامشتنقص المدير المجموعة. امنحه دور مدير المبيعات أو أضف المجموعة مباشرةً.
يفشل تقرير أو وحدة مخصصة بخطأ وصول لمندوبي المبيعاتتقرأ التكلفة بصلاحيات ذلك المستخدم. اجعلها تستخدم .sudo() للتكلفة أو امنح المستخدم المجموعة.
ما زال عمود التكلفة في قائمتي بعد التثبيتأعد تحميل الصفحة بـCtrl+Shift+R.
الهوامش مفقودة في الطلبات القديمةلم يضع شيء: هي مخزّنة. لكن لا يقرؤها إلا من في المجموعة.

التحديث والإزالة

استبدل المجلد بالإصدار الجديد وأعد تشغيل أودو ونفّذ -u taqnix_hide_cost_margin. للإزالة ألغِ التثبيت من التطبيقات: تعود التكلفة والهامش ظاهرين لكل المستخدمين الداخليين كما في أودو القياسي. لا يتغير شيء من البيانات ولا يُفقد.

الدعم

المساعدة في التثبيت وإصلاح الأخطاء مشمولان لمدة 6 أشهر مع تحديثات مدى الحياة. تواصل معنا عبر صفحة السوق التي اشتريت منها الوحدة أو راسل support@taqnix.com مع إصدار أودو ولقطة شاشة.