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

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

PWA اپراتور CRM

کارکنان فروش و پشتیبانی از یک ادمین دسکتاپ کار می‌کردند که فرض می‌کرد آن‌ها نشسته‌اند. کسانی که واقعاً به آن نیاز داشتند سر یک پیشخوان و کنار یک مشتری ایستاده بودند، و این ابزار متفاوتی است.

مسئله تجاری

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

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

  • a2-crm-plugin، یک CRM ماژولار وردپرسی که در حال حاضر روی نسخه‌ی ۳٫۲٫۱۷ است و روی عملیات فروشگاه حضوری تمرکز دارد.
  • صندوق ورودی اپراتور با تخصیص، وضعیت خوانده‌نشده و تحویل، تا یک پیگیری به یک نفر مشخص تعلق داشته باشد نه به همه.
  • فرم‌های سفارش حضوری با دراپ‌داون‌های قابل‌ویرایش پرداخت و منبع که از داخل خود مودال مدیریت می‌شوند، تا یک روش پرداخت جدید به توسعه‌دهنده نیاز نداشته باشد.
  • یک اکشن درج دستی محصول برای مواردی که کاتالوگ پوشش نمی‌دهد، که در یک فروشگاه جواهر بیشتر از آنچه به‌نظر می‌رسد پیش می‌آید.
  • گزارش‌گیری داخلی ساخته‌شده روی همان داده، تا اعدادی که مدیریت می‌بیند از آنچه اپراتورها واقعاً ثبت کرده‌اند بیاید.
  • پیکربندی در یک فایل config که در گیت نادیده گرفته می‌شود، با ترجیح نگه‌داشتن اعتبارنامه‌ها در متغیرهای محیطی یا ثابت‌های wp-config.

رویکرد فنی

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

نتیجه و شواهد

کارکنان فروشگاه سفارش‌ها و پیگیری‌ها را سر پیشخوان و در جریان گفت‌وگو ثبت می‌کنند نه اینکه بعداً بازسازی‌شان کنند. افزونه در حالت نگهداری است و در طول خط ۳.x روی گردش‌کارهای حضوری تکرار شده.

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

ارزش یک CRM کاملاً تابع این است که آیا به‌روز می‌شود یا نه. قابل‌استفاده‌کردنش در نقطه‌ی تعامل همان چیزی است که این را تعیین می‌کند، خیلی بیشتر از هر فیچری که دارد.

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

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

خلاصه_اجرایی {
  پروژه: "CRM Operator PWA"
  افزونه: "a2-crm-plugin v3.2.17، CRM ماژولار وردپرسی"
  پشته: "PHP، جاوااسکریپت خالص، لایه‌ی DB وردپرس، MySQL"
  تمرکز: "عملیات فروشگاه حضوری، سر پیشخوان"
  فیچرها: "صندوق اپراتور، تخصیص، وضعیت خوانده‌نشده،
           فرم سفارش حضوری، درج دستی محصول"
  پیکربندی_اپراتور: "دراپ‌داون پرداخت و منبع از داخل مودال
                     قابل ویرایش، ذخیره‌شده به‌شکل داده"
  احراز_هویت: "دسترسی‌های وردپرس؛ بدون مدل موازی"
  رازها: "config.php در گیت نادیده؛ محیط یا wp-config"
}

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

نسخه‌ی ۳٫۲٫۱۷ با وضعیت نگهداری بیشتر از یک فهرست فیچر حرف می‌زند. این نرم‌افزاری است که آن‌قدر در استفاده‌ی واقعی بوده که شکل گرفته باشد.

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