Pultrackوبلاگ
FA
وقتی دو صندوق‌دار آخرین کالای موجود را آفلاین می‌فروشند، چه اتفاقی می‌افتد؟

وقتی دو صندوق‌دار آخرین کالای موجود را آفلاین می‌فروشند، چه اتفاقی می‌افتد؟

خلاصهیک مقاله که به‌طور گسترده به اشتراک گذاشته شده درباره طراحی سیستم‌های فروش (POS) آفلاین-محور منتشر شده که ذخیره‌سازی محلی، همگام‌سازی در صف و مدیریت تعارض را به‌عنوان معماری پیش‌فرض توصیف می‌کند، نه یک راه‌حل اضطراری. این فقط یک روایت مفید است، نه اثبات یک موج سراسری در صنعت — پس آن را نقطه شروع می‌دانیم، نه یک بررسی جامع. از آن برای پاسخ به پرسشی واقعی که صاحبان مغازه‌های کوچک از ما می‌پرسند استفاده می‌کنیم: واقعاً وقتی دو دستگاه همان موجودی را می‌فروشند یا قیمت‌های متفاوتی را در حالت آفلاین ثبت می‌کنند، چه پیش می‌آید؟

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

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

«آفلاین-محور» واقعاً ادعا می‌کند چه چیزی را حل می‌کند؟

ایده اصلی در منبع ساده است: به‌جای این‌که «نبود اینترنت» را یک حالت خطا در نظر بگیریم، سیستم دستگاه محلی را جایگاه اصلی وقوع فروش می‌داند و همگام‌سازی با سرور مرکزی را کاری می‌داند که بعداً، هر زمان اتصال برقرار شد، انجام می‌شود [۱]. تسویه‌حساب، چاپ رسید و کسر موجودی، همگی ابتدا بر اساس داده‌های محلی انجام می‌شوند. ادعا این است که این روش، بزرگ‌ترین حالت خرابی که مغازه‌های کوچک گزارش می‌دهند را از بین می‌برد — صندوقی که صرفاً به این دلیل کار نمی‌کند که یک درخواست شبکه پاسخ نگرفته است.

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

پس واقعاً وقتی دو نفر آخرین کالا را می‌فروشند چه می‌شود؟

این همان سناریویی است که صاحبان مغازه‌هایی با بیش از یک صندوق یا دستگاه بیشتر می‌پرسند، و ارزش دارد دقیقاً بگوییم «آفلاین-محور» در این‌جا چه چیزی را تضمین می‌کند و چه چیزی را نه.

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

هیچ‌کدام از این‌ها به معنای شکسته بودن رویکرد آفلاین-محور نیست — به این معناست که لایه همگام‌سازی و مدیریت تعارض، کار واقعی و مهمی انجام می‌دهد، و صاحبان مغازه حق دارند دقیقاً از فروشندگان بپرسند اختلافات چگونه حل می‌شود، به‌جای این‌که فرض کنند «همگام می‌شود» یک پاسخ کامل است.

آیا این واقعاً تازه است یا فقط بازاریابی‌اش تازه است؟

ما در نامیدن این موضوع به‌عنوان یک تغییر تازه، محتاط هستیم. مغازه‌های کوچک در مناطقی با اتصال ناپایدار، از زمانی که نرم‌افزار POS در آن مناطق وجود داشته، به نوعی از «صندوق را کار نگه‌دار، بعداً حلش کن» نیاز داشته‌اند. آنچه ممکن است تغییر کرده باشد این است که فروشندگان چقدر صریح‌تر این را به‌عنوان معماری اصلی توصیف می‌کنند، نه یک راه‌حل موقت — منبع، ذخیره‌سازی محلی-محور و همگام‌سازی در صف را «مدل پیش‌فرض، نه حالت اضطراری» توصیف می‌کند [۱]. این‌که آیا این واقعاً بازتاب یک تغییر واقعی در نحوه ساخت سیستم‌هاست یا صرفاً تغییری در نحوه توصیف آن به خریداران، چیزی نیست که یک مقاله تنها بتواند مشخص کند.

یک صاحب مغازه واقعاً باید پیش از اعتماد به «حالت آفلاین» چه بپرسد؟

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

این وضعیت برای صاحبان مغازه‌های کوچک چه معنایی دارد؟

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

سوالات متداول

آیا POS آفلاین-محور به این معناست که مغازه‌ام هیچ‌وقت به اینترنت نیاز نخواهد داشت؟

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

اگر دو صندوق هم‌زمان آفلاین باشند و آخرین واحد یک محصول را بفروشند چه اتفاقی می‌افتد؟

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

آیا معماری «آفلاین-محور» واقعاً چیز تازه‌ای است؟

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

آیا حالت آفلاین پرداخت‌های کارتی را هم پوشش می‌دهد؟

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

قیمت‌گذاری دو-ارزی چگونه همگام‌سازی آفلاین را پیچیده می‌کند؟

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

منابع

پولترک را امتحان کنید✈ Telegram