Amirali Yaghoutiمهندس ارشد نرم‌افزار

مطالعه موردی مهندسی

SnappPay UI اصلاحات

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

مسئله تجاری

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

آنچه تحویل دادم

  • a2-snappay-blocked-product-override.php، که باکس اسنپ‌پی و دکمه‌ی افزودن به سبد را روی برندهای مستثنا قابل‌دیدن نگه می‌دارد و فقط ماشین‌حساب و کنترل‌های اعتباری را غیرفعال می‌کند.
  • سرکوب متن مبلغ اقساط روی آن محصولات، تا رقمی نمایش داده نشود که مشتری واقعاً نمی‌تواند از آن استفاده کند.
  • a2-snappay-blocked-tooltip-portal.php، که تولتیپ توضیحی را کاملاً بیرون از باکس اقساط رندر می‌کند و از کانتینری که می‌بریدش فرار می‌کند.
  • محدودکردن برند بر اساس دسته‌ی محصول، که فقط روی صفحه‌ی محصول ارزیابی می‌شود، پس هیچ‌چیز از این منطق روی آرشیو یا در سبد اجرا نمی‌شود.

رویکرد فنی

  • برندهای مستثنا یک فهرست واحد است که هر دو ماژول از آن استفاده می‌کنند، پس این دو هیچ‌وقت نمی‌توانند سر اینکه کدام محصولات تحت تأثیرند اختلاف پیدا کنند.
  • هر دو ماژول قبل از هر کاری بررسی می‌کنند که درخواست یک نمای تک‌محصول باشد، که هزینه را از هر نوع صفحه‌ی دیگر دور نگه می‌دارد.
  • تولتیپ portal می‌شود نه اینکه دوباره استایل بگیرد. جنگیدن با overflow یک کانتینر والد با بازنویسی CSS اصلاحی است که دفعه‌ی بعد که افزونه‌ی پرداخت مارک‌آپش را آپدیت کند می‌شکند.
  • خود افزونه‌ی اسنپ‌پی تغییر نمی‌کند. همه‌چیز از افزونه‌های MU پیرامونش انجام می‌شود، پس یک آپدیت فروشنده نمی‌تواند بی‌صدا رفتار را برگرداند.

نتیجه و شواهد

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

اهمیت برای کارفرما

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

خلاصه-اجرایی-پروژه

خلاصه اجرایی خوانا

خلاصه_اجرایی {
  پروژه: "SnappPay UI Fixes"
  فایل‌ها: "a2-snappay-blocked-product-override.php (۲۷۹ خط)
            a2-snappay-blocked-tooltip-portal.php (۱۷۵ خط)"
  دامنه: "چهار برند ساعت مستثنا، فقط صفحات محصول"
  نگه_می‌دارد: "باکس اسنپ‌پی و افزودن به سبد قابل‌دیدن"
  غیرفعال: "ماشین‌حساب و دکمه‌های اعتباری، رقم اقساط"
  تولتیپ: "بیرون از باکس رندر می‌شود تا از بریدگی فرار کند"
  مرز: "افزونه‌ی فروشنده دست‌نخورده؛ رفتار در MU زندگی می‌کند"
}

ارزش حرفه‌ای این پروژه

غریزه‌ی پنهان‌کردن کنترلی که نمی‌توانی پشتیبانی‌اش کنی ارزش مقاومت دارد. یک حالت غیرفعالِ قابل‌دیدن با یک دلیل تقریباً همیشه برای مشتری بهتر از عنصری است که اصلاً وجود ندارد.

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