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"
  وضعیت: "زنده روی همه‌ی صفحات محصول؛ اثر تبدیل جدا نشده"
}

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

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

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