🏭 دیدهبان قیمت بازار (MRP Price Scout)
"ساخته شده توسط یک تولیدکننده، برای تولیدکنندگان"
این پروژه حاصل تلفیق تجربه واقعی در خط تولید و اودو است.
💡 داستان این پروژه (Why?)
به عنوان یک تولیدکننده، بزرگترین چالش من همیشه "لحظه قیمتدهی به مشتری" بود. وقتی مشتری قیمت محصولی را میخواست، من با یک فرمول تولید (BoM) روبرو بودم که شاید ۵۰ قلم مواد اولیه داشت:
برخی مواد را از قبل در انبار داشتم (با قیمت خرید قدیم).
برخی را باید همان لحظه از بازار میخریدم (با قیمت جدید و نوسانی ارز).
محاسبه دستی قیمت تمامشدهی «لحظهای» غیرممکن بود. اگر قیمت قدیم را ملاک قرار میدادم، در جایگزینی مواد ضرر میکردم. اگر قیمت بیش از حد بالا میدادم، مشتری را از دست میدادم.
این ماژول پاسخ به آن نیاز است: ابزاری که قیمت روز مواد اولیه را از سایتهای مرجع استخراج میکند و در کنار قیمت حسابداری میگذارد تا بدانید "تولید این محصول همین امروز چقدر پای شما آب میخورد؟"
🚀 ویژگیهای فنی و قابلیتها
۱. موتورهای جستجوی قدرتمند (Scrapers)
ماژول مجهز به درایورهای اختصاصی است که حتی سایتهای پیچیده را هم تحلیل میکنند:
ترب (Torob) و ایمالز (Emalls):
استخراج قیمت از دادههای ساختاریافته (JSON-LD).
هوشمند: محاسبه "میانگین ۵ قیمت بعدی" (Avg Next 5)؛ یعنی سیستم قیمتهای پرت (خیلی ارزان و مشکوک) را نادیده میگیرد و میانگین ۵ فروشنده معتبر بعدی را به شما میدهد.
آهن آنلاین (AhanOnline):
استفاده از الگوریتم پردازش متن (Regex) برای خواندن قیمتهای مخفی شده در متن (مثلاً "هر شاخه ۹۰,۰۰۰ تومان").
سایر سایتها:
پشتیبانی از الگوهای عمومی (CSS Selector/XPath) برای سایتهای فروشگاهی ساده.
۲. هوش تجاری در خط تولید (BoM Analysis)
تحلیل آنی: هنگام باز کردن فرمول تولید، سیستم قیمت آنلاین تکتک اجزا را جمع زده و "هزینه کل خرید از بازار" را محاسبه میکند.
چراغ راهنما: با رنگهای سبز (سودآور) و قرمز (زیانده) به شما نشان میدهد که آیا تولید با قیمتهای فعلی بازار صرفه دارد یا خیر.
۳. پایداری و امنیت (Production Ready)
Circuit Breaker: اگر سایتی سرور شما را بلاک کند یا در دسترس نباشد، سیستم به صورت هوشمند آن سایت را برای مدتی "لیست سیاه" میکند تا سرعت سرور شما افت نکند.
دانلود فایل دیباگ: اگر قیمت محصولی پیدا نشود، سیستم فایل HTML کامل آن صفحه را دانلود میکند تا بتوانید ببینید سایت مقصد چه پیامی (کپچا، تغییر قالب و...) داده است.
این پروژه یک نسخه کاربردی (MVP) است که نیازهای اصلی یک کارخانه را برطرف میکند، اما محدودیتهایی دارد:
دیجیکالا: درایور دیجیکالا به دلیل سیستمهای پیشرفته ضدربات (Anti-Bot) فعلاً غیرفعال شده است.
تنظیمات دستی: برای سایتهای خاص ممکن است نیاز باشد "الگوی اسکرپر" را دستی انتخاب کنید.
تغییرات سایتها: اگر ترب یا آهنآنلاین قالب سایتشان را عوض کنند، ممکن است نیاز به آپدیت ماژول باشد.
🛠 راهنمای نصب و راهاندازی
۱. پیشنیازها
مطمئن شوید پکیجهای پایتونی زیر روی سرور Odoo نصب هستند:
pip install requests lxml xlsxwriter
۲. تنظیمات اولیه (یکبار برای همیشه)
بعد از نصب ماژول، به مسیر تولید > پیکربندی > الگوهای اسکرپر بروید. الگوهای زیر باید موجود باشند:
Torob (ترب)
Emalls (ایمالز)
AhanOnline (آهن آنلاین)
۳. اتصال محصولات
به فرم محصول (مواد اولیه) بروید.
در تب "دیدهبان بازار"، لینک محصول در سایت مرجع را وارد کنید.
ضریب تبدیل: اگر سایت "بسته ۱۰ تایی" میفروشد اما واحد انبار شما "عدد" است، ضریب را وارد کنید (مثلاً 0.1).
دکمه "استعلام دستی" را بزنید تا اولین قیمت ثبت شود.
📜 لایسنس (License)
این پروژه تحت لایسنس LGPL-3.0 (GNU Lesser General Public License v3.0) منتشر شده است.
حقوق شما:
✅ استفاده تجاری: شما آزادید از این ماژول در پروژههای تجاری و شخصی استفاده کنید.
✅ ترکیب با Enterprise: استفاده از این ماژول در کنار ماژولهای اینترپرایز Odoo مجاز است.
✅ تغییر: میتوانید کد را برای خودتان تغییر دهید.
تعهدات شما:
🔄 انتشار تغییرات (Copyleft): اگر سورسکد این ماژول را تغییر دهید و آن را توزیع کنید (به مشتری بدهید)، باید سورس تغییر یافته را تحت همین لایسنس منتشر کنید.
مستندات کامل لایسنس در فایل COPYING موجود است.
توسعهدهنده: Ahmad Salami Far تاریخ آخرین بروزرسانی: ۲۰۲۶