راوی تجربه کاربری در #ویرگول و مدرس در #یوتیوب https://www.youtube.com/c/AmirTaqiabadi
نکاتی که باید برای ثبت سفارش در نظر گرفت
زمانی که یک سفارش در فروشگاه قراره ثبت بشه موارد خیلی زیادی هست که باید در نظر گرفته بشه.
- موجودی
- تراکنشهای مالی
- کد تخفیف
- ظرفیت ارسال
- ...

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

خوب حالا ببینیم وقتی کاربر روی دکمهی پرداخت می زنه چه اتفاقاتی باید بیوفته:
- تمامی شروط سفارش اعم از موجودی و قیمت کالا، شروط کد تخفیف و ظرفیت ارسال باید مجددا چک بشه و بعد سفارش ساخته بشه و کاربر بع درگاه منقل بشه
- موجودی قابل فروش کالا (تخفیف/ظرفیت ارسال) اون سفارش کم بشه و به همون تعداد به موجودی رزرو پرداخت اضافه بشه
- مبلغ قابل استفاده از کیف پول از کیف پول کم بشه
ممکنه بهتون بگن که از کیف پول کم نکنیم و این حرفها و ممکنه دلایل خوبی هم بیارن اما just don't
- مبلغ اولیه سفارش و تخفیف رو یه جایی به عنوان لاگ ذخیره کنید و در صورت لغو جزئی یا کلی سفارش تغییرش ندین. از این مقادیر میتونید بعدا برای کنترل سلامت کیف پول استفاده کنید.
- حتما لاگ تغییرات موجودی و وضعیت سفارش رو نگه دارید.
لغو سفارش پرداخت نشده
هر تغییر وضعیتی تو سفارش، ملاحظات بسیار زیادی داره. به عنوان مثال زمانی که می خواهیم سفارش در وضعیت در انتظار پرداخت که رها شده رو لغو کنیم و به وضعیت پرداخت نشده ببریم جدای از معکوس کردن تمامی ظرفیتها و تراکنشهای لحظهی ثبت سفارش باید به نکته زیر هم توجه کرد:

فرض کنید قراره بعد از یکساعت سفارش در انتظار پرداخت رو لغو کنیم. اگر مطابق تصویر کاربر دقیقه ۵۹ بره درگاه و ما دقیقه ۶۰ سفارش رو لغو کنیم و همهی ظرفیتها و تراکنش ها رو معکوس کرده باشیم. کاربر سفارش رو ۱۰ دقیقه در درگاه وقت داره که پرداخت کنه و وقتی که پرداخت میکنه میاد می بینه سفارشش لغو شده و کلی مشکل ایجاد میشه.
برای اینکه جلوی این خطا رو بگیریم باید امکان رفتن کاربر به درگاه رو ۱۱ دقیقه قبل از لغو کردن سفارش محدود کنیم. یادتون باشه جلوی این موضوع رو هم تو فرانت و هم بک بگیرید چون اگر تنها محدود به فرانت بشه ممکنه به دلیل اشتباه ساعت سیستم کاربر یا ... باز هم این مشکل رخ بده و اگر تنها تو بک جلوشو بگیرید کاربر رو دکمه پرداخت مجدد می زنه و خطا می ده و تجربه بدیه. به جاش بهتره به کاربر دکمه پرداخت مجدد رو در این بازه (دقیقه ۴۹ تا ۶۰) نشون ندیم.
از این دست موارد بسیار زیاده و اگر دوست دارین بیشتر از این ریز نکات بدونیم پیشنهاد میکنم تو رویداد دورهمی مدیران محصول ایکامرس که قراره پنجشنبه ۱۳ دی برگزار بشه ثبت نام کنید.

تا اون موقع به این فکر کنین که اگر مبلغ سفارش، بیشتر از سقف خرید اینترنتی (۲۰۰ میلیون تومان) باشه چه راهکارهایی وجود داره؟ تو کامنت ها نظرتون رو بدین.
مطلبی دیگر از این انتشارات
تحول فلو ثبت آدرس در دیجیشهر: از چالشها تا بهبود تجربه کاربری
مطلبی دیگر از این انتشارات
اضافه کردن فایل json نقشه استانهای ایران به متابیس
مطلبی دیگر از این انتشارات
پوکایوکه در تجربه کاربری استفاده از کد تخفیف یا کد دعوت