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

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

پرسش‌های متداول هوشمند A2

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

مسئله تجاری

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

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

  • یک افزونه‌ی MU به نام a2-smart-faq.php که جفت پرسش و پاسخ را از دوازده تاکسونومی ویژگی محصول می‌سازد: برند، اندازه‌ی قاب، مکانیزم، رنگ صفحه، بند، مقاومت در برابر آب، جنسیت، سبک، خاستگاه برند، کشور سازنده و فیلدهای گارانتی.
  • یک روال انتخاب که فقط پرسش‌هایی را می‌آورد که داده‌ی محصول جواب صادقانه‌ای برایشان دارد؛ ساعتی که داده‌ی مقاومت آب ندارد، اصلاً پرسش مقاومت آب را نشان نمی‌دهد.
  • سه هدف برای سوارکردن بلوک، به‌ترتیب اولویت: کانتینر a2-pdp-accordion، آکاردئون موجود المنتور، و در آخر یک لنگر فالبک که زیر خلاصه‌ی محصول چاپ می‌شود.
  • CSS و JS درون‌خطی که یک بار و فقط روی صفحات محصول چاپ می‌شوند، تا این ماژول هیچ جای دیگری وزن اضافه نکند.

رویکرد فنی

  • آکاردئون به‌شکل یک المان قالب پنهان در wp_footer چاپ می‌شود؛ یک اسکریپت کوچک آن را روی بهترین جایگاه موجود سوار می‌کند و با MutationObserver دوباره تلاش می‌کند، چون المنتور بخشی از صفحه‌ی محصول را دیر می‌سازد.
  • لنگر فالبک به woocommerce_after_single_product_summary هوک شده؛ پس اگر چیدمان صفحه‌ساز عوض شود، بلوک باز هم رندر می‌شود.
  • پاسخ‌ها قالب جمله‌ی فارسی‌اند که مقدار ویژگی در آن‌ها جاگذاری می‌شود، با همان لحنی که فروشگاه ما با مشتری حرف می‌زند.
  • اسلاگ‌های ویژگی به‌شکل ثابت کلاس در یک فایل جمع شده‌اند. برای بردن افزونه روی کاتالوگ دیگر کافی است همان ثابت‌ها عوض شوند، نه اینکه کد از نو نوشته شود.

نتیجه و شواهد

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

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

این محتوا با اندازه‌ی کاتالوگ بزرگ می‌شود، نه با تعداد نیرو. محصول جدید همان لحظه که ویژگی‌هایش پر شود، راهنمای خرید می‌گیرد.

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

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

خلاصه_اجرایی {
  پروژه: "A2 Smart FAQ"
  فایل: "mu-plugins/a2-smart-faq.php (v1.0.3)"
  پشته: "افزونه‌ی MU وردپرس، PHP، ووکامرس، جاوااسکریپت خالص"
  ورودی: "۱۲ تاکسونومی ویژگی (برند، اندازه‌ی قاب، مکانیزم،
           صفحه، بند، مقاومت در برابر آب، گارانتی، ...)"
  ترتیب_سوارشدن: ".a2-pdp-accordion ← آکاردئون المنتور ← لنگر"
  هوک‌ها: "woocommerce_after_single_product_summary، wp_footer"
  وضعیت: "زنده روی همه‌ی صفحات محصول؛ اثر تبدیل جدا نشده"
}

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

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

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