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

کل کاتالوگ فروشگاه خوانده و با دیتابیس ربات تطبیق داده میشود: کالای تازه اضافه، کالای تغییرکرده بهروز و کالایی که دیگر در فروشگاه نیست علامتگذاری میشود.
روشن/خاموش، بازهی ساعتی کار، گام گرد کردن و حالت آزمایشی از پنل عوض میشود و ربات چند ثانیه بعد آن را میخواند؛ سرویس متوقف نمیشود.
بعد از هر نوشتن، مقدار دوباره از فروشگاه خوانده میشود و فقط نوشتنِ تأییدشده موفق حساب میشود؛ «ارسال شد» بهتنهایی هیچ چیزی را ثابت نمیکند.
چه چیزی ساخته شد
ربات تا وقتی صریحاً اجازه ندهید روی فروشگاه چیزی نمینویسد؛ فقط ثبت میکند چه قیمتی را مینوشت. اول چند روز خروجی را میبینید، بعد روشنش میکنید.
هر کالا میتواند چند لینک منبع داشته باشد و ارزانترین قیمت برنده میشود. واحد پول هر منبع (ریال یا تومان) جداگانه تعریف میشود تا یک صفر اضافه، قیمت را ده برابر نکند.
درصد دستهی کالا و درصد منبعِ برنده با هم جمع میشوند و نتیجه همیشه به گام دلخواه (مثلاً نزدیکترین ۱۰٬۰۰۰ تومان) گرد میشود؛ قیمتهای بیقوارهی اسکرپشده روی سایت نمینشیند.
قیمت روی همهی تنوعها نوشته میشود و وقتی کالا در منبع ناموجود شود، موجودی هر سایز اول ذخیره و بعد صفر میشود — برگشتن کالا، موجودی قبلی هر سایز را برمیگرداند، نه عددی دلخواه.
اگر فروشگاه در یک همگامسازی کمتر از نسبت تعیینشده کالا برگرداند، ربات هیچ کالایی را حذفشده علامت نمیزند؛ یک خطای موقت سرور نباید نصف کاتالوگ را ناپدید کند.
لینک منبع هر کالا، درصد دستهها، منابع قیمت، کنترل ربات، تاریخچهی قیمت، خط زمانی فعالیت و خطاها — همه در یک پنل راستبهچپ، بدون نیاز به دستزدن به فایل یا دیتابیس.
نقش «مدیر» همهچیز را تغییر میدهد و «فقط مشاهده» فقط میبیند؛ هر تغییر با نام کاربر و مقدار قبل و بعدش در گزارش تغییرات ثبت میشود و پنج رمز اشتباه، حساب را موقتاً قفل میکند.
همهی درخواستها از یک صف با فاصلهی زمانی رد میشوند و هر کالا تا موعد بعدیاش دوباره خوانده نمیشود؛ ربات سایت مبدأ را زیر فشار نمیگذارد.
تصویرها از نسخهی زندهی سایت گرفته شدهاند، نه از طرح اولیه.










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