مهندسین ستایش
ربات و اتوماسیون‎.NET 10Windows ServiceASP.NET CoreNext.jsSQL Server

ربات قیمت‌گذاری خودکار فروشگاه

به‌روزرسانی دستی قیمت، کاری است که هر روز باید تکرار شود و هر ماه برایش حقوق داده می‌شود. این ربات همان کار را بدون خستگی انجام می‌دهد: قیمت کالا را از منابع می‌خواند، درصد سود دسته و منبع را روی آن می‌گذارد، گرد می‌کند و روی فروشگاه می‌نویسد — و بعد همان مقدار را دوباره می‌خواند تا مطمئن شود واقعاً ثبت شده است.

نمای صفحه‌ی اصلی سایت ربات قیمت‌گذاری خودکار

عددهای کلیدی پروژه

هر ۵ ساعت

همگام‌سازی کاتالوگ

کل کاتالوگ فروشگاه خوانده و با دیتابیس ربات تطبیق داده می‌شود: کالای تازه اضافه، کالای تغییرکرده به‌روز و کالایی که دیگر در فروشگاه نیست علامت‌گذاری می‌شود.

بدون ری‌استارت

تغییر تنظیمات

روشن/خاموش، بازه‌ی ساعتی کار، گام گرد کردن و حالت آزمایشی از پنل عوض می‌شود و ربات چند ثانیه بعد آن را می‌خواند؛ سرویس متوقف نمی‌شود.

دو مرحله

تأیید هر نوشتن

بعد از هر نوشتن، مقدار دوباره از فروشگاه خوانده می‌شود و فقط نوشتنِ تأییدشده موفق حساب می‌شود؛ «ارسال شد» به‌تنهایی هیچ چیزی را ثابت نمی‌کند.

چه چیزی ساخته شد

امکانات این پروژه

حالت آزمایشی پیش‌فرض

ربات تا وقتی صریحاً اجازه ندهید روی فروشگاه چیزی نمی‌نویسد؛ فقط ثبت می‌کند چه قیمتی را می‌نوشت. اول چند روز خروجی را می‌بینید، بعد روشنش می‌کنید.

قیمت از چند منبع

هر کالا می‌تواند چند لینک منبع داشته باشد و ارزان‌ترین قیمت برنده می‌شود. واحد پول هر منبع (ریال یا تومان) جداگانه تعریف می‌شود تا یک صفر اضافه، قیمت را ده برابر نکند.

درصد سود دولایه

درصد دسته‌ی کالا و درصد منبعِ برنده با هم جمع می‌شوند و نتیجه همیشه به گام دلخواه (مثلاً نزدیک‌ترین ۱۰٬۰۰۰ تومان) گرد می‌شود؛ قیمت‌های بی‌قواره‌ی اسکرپ‌شده روی سایت نمی‌نشیند.

کالای سایزدار و رنگ‌دار

قیمت روی همه‌ی تنوع‌ها نوشته می‌شود و وقتی کالا در منبع ناموجود شود، موجودی هر سایز اول ذخیره و بعد صفر می‌شود — برگشتن کالا، موجودی قبلی هر سایز را برمی‌گرداند، نه عددی دلخواه.

ترمز ایمنی روی حذف

اگر فروشگاه در یک همگام‌سازی کمتر از نسبت تعیین‌شده کالا برگرداند، ربات هیچ کالایی را حذف‌شده علامت نمی‌زند؛ یک خطای موقت سرور نباید نصف کاتالوگ را ناپدید کند.

پنل مدیریت فارسی

لینک منبع هر کالا، درصد دسته‌ها، منابع قیمت، کنترل ربات، تاریخچه‌ی قیمت، خط زمانی فعالیت و خطاها — همه در یک پنل راست‌به‌چپ، بدون نیاز به دست‌زدن به فایل یا دیتابیس.

دسترسی دومرحله‌ای کاربران

نقش «مدیر» همه‌چیز را تغییر می‌دهد و «فقط مشاهده» فقط می‌بیند؛ هر تغییر با نام کاربر و مقدار قبل و بعدش در گزارش تغییرات ثبت می‌شود و پنج رمز اشتباه، حساب را موقتاً قفل می‌کند.

مهربان با سایت منبع

همه‌ی درخواست‌ها از یک صف با فاصله‌ی زمانی رد می‌شوند و هر کالا تا موعد بعدی‌اش دوباره خوانده نمی‌شود؛ ربات سایت مبدأ را زیر فشار نمی‌گذارد.

بخش‌های مختلف سایت

تصویرها از نسخه‌ی زنده‌ی سایت گرفته شده‌اند، نه از طرح اولیه.

داشبورد — وضعیت لحظه‌ای ربات، کالاهای لینک‌دار و نتیجه‌ی همگام‌سازی در سایت ربات قیمت‌گذاری خودکار
داشبورد — وضعیت لحظه‌ای ربات، کالاهای لینک‌دار و نتیجه‌ی همگام‌سازی
فهرست کالاها با فیلتر دسته و وضعیت، و تعداد لینک منبع هر کالا در سایت ربات قیمت‌گذاری خودکار
فهرست کالاها با فیلتر دسته و وضعیت، و تعداد لینک منبع هر کالا
صفحه‌ی کالا — لینک‌های منبع، آخرین قیمت هر لینک و تنوع‌های سایز در سایت ربات قیمت‌گذاری خودکار
صفحه‌ی کالا — لینک‌های منبع، آخرین قیمت هر لینک و تنوع‌های سایز
کنترل ربات — بازه‌ی کاری، گام گرد کردن و حالت آزمایشی، بدون ری‌استارت سرویس در سایت ربات قیمت‌گذاری خودکار
کنترل ربات — بازه‌ی کاری، گام گرد کردن و حالت آزمایشی، بدون ری‌استارت سرویس
تاریخچه‌ی قیمت — هر نوشتن با قیمت قبل و بعد و دلیل آن در سایت ربات قیمت‌گذاری خودکار
تاریخچه‌ی قیمت — هر نوشتن با قیمت قبل و بعد و دلیل آن
منابع قیمت — واحد پول، فناوری سایت و درصد سود هر منبع در سایت ربات قیمت‌گذاری خودکار
منابع قیمت — واحد پول، فناوری سایت و درصد سود هر منبع
دسته‌ها و درصدها — درصد افزایش قیمت هر دسته‌ی کالا در سایت ربات قیمت‌گذاری خودکار
دسته‌ها و درصدها — درصد افزایش قیمت هر دسته‌ی کالا
فعالیت ربات — خط زمانی دورها، خطاها و همگام‌سازی کاتالوگ در سایت ربات قیمت‌گذاری خودکار
فعالیت ربات — خط زمانی دورها، خطاها و همگام‌سازی کاتالوگ
کاربران پنل با نقش مدیر و فقط‌مشاهده و قفل خودکار بعد از رمز اشتباه در سایت ربات قیمت‌گذاری خودکار
کاربران پنل با نقش مدیر و فقط‌مشاهده و قفل خودکار بعد از رمز اشتباه
گزارش تغییرات — هر تغییر با نام کاربر و مقدار قبل و بعدش در سایت ربات قیمت‌گذاری خودکار
گزارش تغییرات — هر تغییر با نام کاربر و مقدار قبل و بعدش

صورت مسئله

در فروشگاهی که چند هزار کالا دارد، قیمت یک عدد ثابت نیست: منبع هر روز قیمتش را عوض می‌کند، کالایی ناموجود می‌شود و کالایی برمی‌گردد. راه معمول این است که یک نفر هر روز بنشیند و دستی به‌روزرسانی کند — کاری تکراری، کند و در عمل همیشه عقب‌تر از بازار، که هر ماه هم برایش حقوق پرداخت می‌شود.

چه کردیم

یک سرویس ویندوزی که کنار فروشگاه کار می‌کند و دو کار دارد. اول همگام‌سازی کاتالوگ: کل کالاهای فروشگاه را می‌خواند و در دیتابیس خودش نگه می‌دارد. دوم قیمت‌گذاری: برای کالاهایی که لینک منبع دارند، قیمت را از صفحه‌ی منبع می‌خواند، درصد دسته و درصد منبع را اعمال می‌کند، گرد می‌کند و روی فروشگاه می‌نویسد.

مهم‌ترین تصمیم طراحی این بود که هیچ نوشتنی بدون تأیید موفق حساب نشود: بعد از هر نوشتن، همان کالا دوباره از فروشگاه خوانده می‌شود و اگر مقدار ثبت‌شده با مقدار ارسالی یکی نبود، ناموفق ثبت می‌شود و دلیلش در تاریخچه می‌ماند. دلیلش ساده است — پاسخ «ثبت شد» از یک API، هیچ‌وقت ثابت نمی‌کند که مقدار واقعاً نشسته است.

کنار ربات یک پنل مدیریت فارسی نشسته است تا کسی برای عوض‌کردن یک درصد یا خاموش‌کردن ربات، سراغ فایل و دیتابیس نرود. تنظیمات از طریق یک فایل کنترلی رد و بدل می‌شود که ربات بدون ری‌استارت می‌خواندش؛ یعنی تغییر در پنل، چند ثانیه بعد اثر می‌کند.

قابل فروش به هر فروشگاهی

ربات به دیتابیس فروشگاه دست نمی‌زند و همه‌ی کارش از راه API انجام می‌شود، پس به یک فروشگاه خاص گره نخورده است. منابع قیمت، درصدها، گام گرد کردن و بازه‌ی ساعتی کار همه تنظیمات‌اند نه کد. برای هر فروشگاه تازه، فقط لایه‌ی اتصال به API آن فروشگاه تطبیق داده می‌شود.

اسکرین‌شات‌های این صفحه از همین پنل ولی روی یک نمونه‌ی نمایشی گرفته شده‌اند؛ داده‌ی هیچ فروشگاه یا منبعی در آن‌ها منتشر نشده است.

پروژه‌های دیگر

نمای صفحه‌ی اصلی سایت بروزکالا

بروزکالا

فروشگاه کالای دیجیتال با هفت گروه محصول، خرید اقساطی بدون ضامن و مقایسه‌ی کالا.

نمای صفحه‌ی اصلی سایت فن‌باز

فن‌باز

فروشگاه کیت باشگاهی و ملی با چاپ اسم و شماره، کنار یک مجله‌ی فوتبالی و صفحات تیم و بازیکن.

نمای صفحه‌ی اصلی سایت کانون هواداران آرسنال

کانون هواداران آرسنال

کانون رسمی هواداران آرسنال در ایران؛ آرشیو خبری چندساله، برنامه و نتایج بازی‌ها و اپلیکیشن موبایل اختصاصی.

پروژه‌ی شما هم می‌تواند اینجا باشد

یک جلسه‌ی کوتاه، یک برآورد شفاف از زمان و هزینه؛ بدون تعهد.