صيدلية د. أحمد حسن في أول الشيخ زايد بمحافظة الجيزة، فاتحة كل يوم من 8:30 الصبح لحد 2 بعد نص الليل، وأغلب طلباتها بتيجي بالتليفون والواتساب وبتتوصّل للبيت. اشتغلنا معاها على 3 حاجات مربوطة ببعض: صفحة هبوط بالعربي والإنجليزي على ah-pharmacy.com بتوصّل الزبون لزرار الطلب من أول شاشة، وبوابة عملاء داخلية لفريق الصيدلية مبنية على تقارير البيع الشهرية، وتنظيم لرقمين الواتساب بتوع الصيدلية على منصة مرسال. الصفحة دي بتحكي عملنا إيه في كل جزء، وليه عملناه كده.
نظرة عامة
الصيدلية مش محتاجة متجر إلكتروني فيه آلاف المنتجات وسلة ودفع أونلاين. اللي بيحصل فعلاً إن الزبون بيصوّر الروشتة ويبعتها على الواتساب، أو بيتصل يسأل عن دوا، والصيدلية بترد عليه بالمتوفر والسعر وبتبعت الطلب مع الدليفري. فالسؤال اللي بدأنا منه كان: إيه أقصر طريق بين واحد بيدوّر على «صيدلية في الشيخ زايد» على جوجل وبين رسالة واتساب في موبايل الصيدلية؟
الإجابة كانت صفحة واحدة، مش موقع بعشر صفحات. الصفحة بتقول الزبون هي فاتحة ولا لأ، وبتديله زرار واتساب بيفتح رسالة طلب جاهزة، وتحت كده بتشرح الخدمات وطريقة الطلب والعنوان والمواعيد وبترد على الأسئلة المتكررة. وبعد ما الطلبات بقت بتوصل، كان فيه سؤال تاني عند صاحب الصيدلية: مين الزباين دول؟ مين بييجي كل شهر ومين بطّل؟ وده اللي اتبنت عشانه البوابة الداخلية. والجزء التالت كان ترتيب الواتساب نفسه عشان الرسايل ماتضيعش بين رقم للتسويق ورقم للطلبات.
الجزء الأول بس هو اللي ظاهر للناس، وهو اللي معروض في الصور فوق. البوابة والواتساب أدوات شغل داخلية فيها بيانات زباين حقيقية، فهنوصفهم هنا بالكلام من غير أي صورة.
عن العميل والقطاع
صيدلية د. أحمد حسن صيدلية حي في أول الشيخ زايد، بتخدم السكان اللي حواليها والمناطق القريبة. شغلها اليومي صرف روشتات، وتوصيل للبيت، ورد على أسئلة الناس عن الجرعات والبدائل وطريقة الاستخدام. والمواعيد طويلة، من 8:30 الصبح لحد 2 بالليل كل أيام الأسبوع، وده معناه إن فيه طلبات كتير بتيجي في أوقات الزبون فيها تعبان ومش عايز ينزل من البيت.
الزبون في مصر غالباً بيختار الصيدلية اللي قريبة منه وبترد عليه بسرعة. يعني المنافسة الحقيقية على حاجتين: إن الزبون يلاقيك أول ما يدوّر، وإنه يرجعلك تاني. وعشان كده الشغل كله اتقسم على السؤالين دول: الصفحة والسيو المحلي عشان يلاقيك، والبوابة والواتساب عشان يرجع.
والصيدلية كانت بتستخدم برنامج كاشير اسمه SofTech Smart Business، وبيطلّع تقارير بيع شهرية في ملفات Excel. البيانات دي كانت موجودة من الأول، بس محدش كان بيقراها غير وقت الحسابات.
التحدي
أول مشكلة كانت إن اللي بيدوّر على صيدلية بيدوّر وهو مستعجل. مش هيقرا نبذة عن تاريخ الصيدلية ولا هيتفرج على صور. هو عايز يعرف هي فاتحة دلوقتي، ورقمها كام، وتوصّل لحد عنده ولا لأ. أي حاجة بتأخر الإجابات دي بتخسّر الطلب.
تاني مشكلة كانت في جوجل نفسه. البحث عن صيدلية بحث محلي، وجوجل بيعتمد فيه على ملف النشاط في خرائط جوجل وعلى تطابق الاسم والعنوان والتليفون في كل مكان النشاط مذكور فيه. لو الموقع كاتب العنوان بصيغة والملف كاتبه بصيغة تانية، ده بيضعّف الإشارة بدل ما يقويها.
تالت مشكلة كانت إن الصيدلية مش عارفة زباينها. فيه فواتير كتير كل شهر في برنامج الكاشير، بس مفيش طريقة سهلة تعرف منها مين الزبون اللي كان بييجي كل شهر واختفى من 3 شهور، أو مين مشترياته بتقل، أو الزبون الجديد اللي جه مرة رجع تاني ولا لأ. والتواصل مع الزباين دول على الواتساب له قواعد من ميتا نفسها: قوالب لازم تتعتمد، وحد يومي للرسايل، ولو الناس عملت بلوك أو بلّغت عن الرقم ممكن يتقفل.
ورابع مشكلة كانت الواتساب نفسه. الصيدلية عندها رقم للطلبات شغال على تطبيق واتساب بيزنس في موبايل الصيدلية، والفريق متعود يرد منه. ولو هنضيف رقم للتسويق والحملات، لازم الزبون اللي يرد على رسالة حملة يتوجّه للرقم الصح، والفريق مايتلخبطش بين رقمين.
الحل
صفحة الهبوط. عملنا صفحة واحدة طويلة بالعربي على الرابط الأساسي وبالإنجليزي على /en. أول شاشة فيها اسم الصيدلية، وعلامة «مفتوحة الآن» بتتحسب من مواعيد العمل وبتتغير لوحدها لـ«مغلقة الآن، تفتح 8:30 صباحاً» برّه المواعيد، وزرار «اطلب على واتساب» بيفتح المحادثة برسالة طلب مكتوبة جاهزة، وزرار اتصال، وكارت فيه التليفون والمواعيد والعنوان. وتحت الشاشة الأولى 5 أقسام بالترتيب: الخدمات، والطلب في 3 خطوات، وآراء العملاء، والعنوان والمواعيد، والأسئلة الشائعة، وفي الآخر زرار طلب أخير.
التصميم اتعمل في 3 اتجاهات مختلفة، والعميل اختار اتجاه سميناه «navy bold»: كحلي غامق في الهيرو وفي قسم الطلب، وأزرق مأخوذ من لوجو الصيدلية نفسه (#1D398D)، وأزرار الواتساب بالأخضر عشان العين تروحلها على طول. والخط IBM Plex Sans Arabic متحمّل من على نفس السيرفر، وبيغطي العربي والإنجليزي بنفس الشكل.
الصفحة مبنية بـPHP من غير قاعدة بيانات. كل الكلام بالعربي والإنجليزي موجود في ملف JSON واحد، فلو الصيدلية غيّرت مواعيدها أو رقمها، التعديل بيحصل في مكان واحد وبيتطبّق على النسختين وعلى البيانات المنظّمة مرة واحدة.
السيو المحلي. الاسم والعنوان والتليفون مكتوبين بالحرف زي ما هم في ملف الصيدلية على جوجل. والصفحة فيها بيانات منظّمة من نوع Pharmacy، ودي نوع من LocalBusiness، فيها المواعيد والإحداثيات والتليفون، وبيانات FAQPage للأسئلة الشائعة، وفيها hreflang بيربط النسخة العربية بالإنجليزية، وsitemap. والتقييمات المعروضة منقولة من ملف جوجل باسم صاحبها ووقتها، ومعاها لينك لكل التقييمات هناك.
بوابة العملاء الداخلية. بوابة خاصة بفريق الصيدلية، بالعربي والإنجليزي، مبنية بـPHP خام وPDO وMySQL من غير framework. الفريق بيرفع تقرير البيع الشهري من برنامج الكاشير، والبوابة بتعمل منه ملف لكل عميل وصورة للشهر ده. ولو نفس الشهر اترفع تاني بعد تصحيح، النسخة الجديدة بتحل مكان القديمة بدل ما الأرقام تتكرر.
من الملفات دي البوابة بتقسّم الزباين لمستويات ولاء حسب إجمالي اللي اشتروه، والحدود بتاعة كل مستوى الفريق بيعدّلها بنفسه. وفيه شرائح حسب سلوك الشراء: زباين بطّلوا ييجوا، وزباين مشترياتهم قلّت، وزباين جداد. وفيه قواعد تنبيه، وصفحة لمسار العميل الجديد بتجمع الزباين حسب أول شهر اشتروا فيه وبتوريك مين منهم رجع في الشهور اللي بعده. وكل ده بيتصدّر Excel، وفيه ملخص بيوصل بالإيميل يومي وأسبوعي.
حملات الواتساب. من جوه البوابة الفريق يقدر يختار شريحة ويبعتلها حملة واتساب عن طريق WhatsApp Cloud API على منصة مرسال. الحملة بتتبني الأول وبتفضل واقفة، ومفيش رسالة بتطلع قبل ما حد يدوس «ابدأ». قبل كده يقدر يبعت تجربة لرقم واحد يشوف بيها الرسالة. وكمان يقدر يوقف الحملة ويكمّلها، ويجدولها، ويجرّب قالبين على نص الشريحة كل واحد، ويسيب مجموعة مقارنة ماتوصلهاش رسايل عشان يعرف الحملة غيّرت المبيعات فعلاً ولا لأ.
والحماية من قفل الرقم مبنية جوه الحملة نفسها: الرسايل بقوالب معتمدة من ميتا بس، والحد اليومي بيمشي مع مستوى الرقم عند ميتا وبيتعدّل لوحده لما المستوى يتغير، وفيه نافذة وقت للإرسال وحد للسرعة. وأي حد يبعت «إيقاف» بيخرج من الحملات على طول.
أتمتة الواتساب على مرسال. رقم التسويق مش بياخد طلبات خالص. أي رسالة بتوصله بيرد عليها برسالة واحدة فيها زرار بيودّي الزبون لواتساب الطلبات. ورقم الطلبات اتوصّل بمرسال بنظام coexistence: الفريق لسه بيرد من تطبيق واتساب بيزنس على الموبايل زي ما كان متعود، وكل محادثة في نفس الوقت بتتحفظ في مرسال. وفوق كده مرسال بيبعت تحية باسم الزبون لما المحادثة تكون هادية بقالها ساعتين، ورسالة غياب برّه المواعيد، وطلب تقييم على جوجل بعد ما المحادثة تخلص. وتفاصيل المنصة نفسها موجودة في صفحة مرسال.
المواصفات التقنية
| البند | التفاصيل |
|---|---|
| نوع المشروع | صفحة هبوط لصيدلية + بوابة عملاء داخلية + أتمتة واتساب |
| صفحة الهبوط | PHP من غير قاعدة بيانات، والمحتوى كله في ملف JSON واحد للغتين |
| اللغات | عربي RTL على الرابط الأساسي، وإنجليزي على /en |
| التصميم | اتجاه «navy bold» اختاره العميل من 3 اتجاهات، أزرق اللوجو #1D398D وأزرار واتساب خضرا |
| الخط | IBM Plex Sans Arabic متحمّل من نفس السيرفر |
| السيو المحلي | اسم وعنوان وتليفون مطابقين لملف جوجل، بيانات Pharmacy (من LocalBusiness) وFAQPage، hreflang، sitemap |
| الأداء والأمان | CSS جوه الصفحة، خريطة بتتحمّل بالطلب، وسياسة CSP صارمة |
| بوابة العملاء | PHP خام وPDO وMySQL من غير framework، واجهة عربي وإنجليزي |
| مصدر البيانات | تقارير البيع الشهرية من برنامج الكاشير SofTech Smart Business بصيغة Excel |
| صلاحيات البوابة | أدوار مستخدمين، سجل لكل العمليات، وقفل الدخول بعد 5 محاولات غلط |
| الواتساب | WhatsApp Cloud API عن طريق مرسال، قوالب معتمدة من ميتا، ورقم الطلبات بنظام coexistence |
أبرز المميزات
- علامة «مفتوحة الآن» بتتحسب من المواعيد وبتتغير لوحدها برّه ساعات العمل.
- زرار واتساب في الهيدر والهيرو وقسم الطلب وآخر الصفحة، وكلهم بيفتحوا رسالة طلب جاهزة.
- نسخة إنجليزية كاملة على /en، والتقييمات فيها مترجمة ومكتوب جنبها إنها مترجمة من العربي.
- بيانات الصيدلية في ملف واحد، فأي تعديل في المواعيد أو الرقم بيظهر في النسختين والبيانات المنظّمة مع بعض.
- خريطة جوجل مش بتتحمّل غير لما الزائر يدوس «عرض الخريطة».
- ملف لكل عميل من تقارير الكاشير، ورفع نفس الشهر تاني بيستبدل القديم.
- مستويات ولاء بحدود بيعدّلها الفريق، وشرائح للي بطّلوا ييجوا وللي مشترياتهم قلّت وللجداد.
- صفحة مسار العميل الجديد بتوضح مين رجع في الشهور اللي بعد أول شراء.
- حملات واتساب ماتبدأش غير بضغطة، مع إرسال تجريبي وجدولة وإيقاف وتجربة قالبين ومجموعة مقارنة.
- حد يومي بيمشي مع مستوى الرقم عند ميتا، ونافذة إرسال، وحد للسرعة، وخروج بكلمة «إيقاف».
- رقم تسويق بيحوّل لرقم الطلبات، ورقم طلبات شغال من الموبايل ومحفوظ في مرسال.
مراحل التنفيذ
- جمع البيانات. بدأنا من ملف الصيدلية على جوجل: الاسم بالظبط، والعنوان، والتليفون، والمواعيد، والإحداثيات. ودي بقت المرجع اللي أي نص في الصفحة بيترجعله.
- 3 اتجاهات تصميم. قدّمنا 3 أشكال مختلفة للصفحة، والعميل اختار «navy bold». بعدها ظبطنا الألوان على أزرق اللوجو وخلّينا الأخضر للواتساب بس.
- بناء الصفحة باللغتين. كتبنا الكلام بالعربي الأول، وبعدين النسخة الإنجليزية، وحطينا الاتنين في ملف JSON واحد. وبعدها البيانات المنظّمة وhreflang وsitemap.
- الأداء. CSS جوه الصفحة، الخط من نفس السيرفر، الخريطة بالطلب، وسياسة CSP صارمة. الهدف إن الصفحة تفتح بسرعة على موبايل في شبكة ضعيفة، لأن ده الموبايل اللي بيطلب منه الزبون العيان.
- بوابة العملاء. قرينا شكل تقارير الكاشير، وبنينا الاستيراد اللي بيعمل ملف لكل عميل وصورة لكل شهر. وبعدها المستويات والشرائح والتنبيهات وصفحة العميل الجديد والتصدير والملخصات بالإيميل والصلاحيات.
- الحملات. ربطنا البوابة بمرسال، وبنينا الحملة بالشكل اللي بيبدأ واقف، ومعاها الإرسال التجريبي والجدولة والإيقاف وتجربة القالبين ومجموعة المقارنة والحدود.
- الواتساب. ظبطنا رد رقم التسويق وزراره، ووصّلنا رقم الطلبات بنظام coexistence من غير ما الفريق يغيّر طريقة شغله، وبعدها التحية ورسالة الغياب وطلب التقييم.
تجربة المستخدم
فكّرنا في الزبون على إنه شخص تعبان أو بيطلب لحد تعبان، ماسك الموبايل بإيد واحدة. عشان كده زرار الواتساب موجود في كل مكان ممكن الزبون يقرر فيه، من الهيدر لحد آخر الصفحة، والرسالة اللي بتتفتح مكتوبة جاهزة فالزبون يبعت صورة الروشتة وخلاص.
قسم «اطلب في ثلاث خطوات» موجود عشان الناس اللي أول مرة تطلب من صيدلية على الواتساب. الخطوات بسيطة: ابعت الروشتة، الصيدلية تأكد معاك المتوفر والسعر، والطلب يوصلك. ومعرفة السعر قبل التوصيل بتشيل أكبر تردد عند الزبون.
الأسئلة الشائعة اتكتبت من الأسئلة اللي الصيدلية بتسمعها كل يوم: فيه توصيل؟ المواعيد إيه؟ أطلب بالروشتة إزاي؟ الصيدلية فين؟ وكل إجابة فيها المعلومة نفسها مش جملة بتقول «تواصل معانا».
وجوه البوابة الداخلية فكّرنا في فريق الصيدلية اللي وقته ضيق. الشرائح جاهزة قدامه من غير ما يفلتر فواتير بإيده، والحملة مابتتحركش لوحدها، والإرسال التجريبي بيخليه يشوف الرسالة على موبايله قبل ما توصل لأي زبون.
النتائج والأثر
مش هنكتب أرقام زيارات أو مبيعات هنا، لأن دي بيانات الصيدلية. اللي نقدر نقوله هو اللي الصيدلية بقت تقدر تعمله ومكانتش بتعمله قبل كده.
الزبون اللي بيدوّر على صيدلية في الشيخ زايد بيلاقي صفحة بتقوله في أول شاشة هي فاتحة ولا لأ، وبزرار واحد بيوصل لواتساب الطلبات. وجوجل بيلاقي نفس الاسم والعنوان والتليفون في الموقع وفي ملف النشاط، وبيانات منظّمة بتقوله ده صيدلية ومواعيدها إيه. والزبون اللي بيتكلم إنجليزي بيلاقي نسخة كاملة بلغته.
وفريق الصيدلية بقى يعرف زباينه بالاسم والسلوك مش بالفواتير بس. بيرفع تقرير الشهر ويشوف مين بطّل ييجي ومين مشترياته قلّت ومين الجديد اللي رجع، ويبعت لكل مجموعة رسالة مناسبة ليها، ويعرف من مجموعة المقارنة الحملة جابت فرق ولا لأ. وده كله من غير ما يعرّض الرقم للقفل، لأن الحدود مبنية جوه النظام نفسه.
والواتساب بقى منظم: رسايل التسويق مابتختلطش بالطلبات، والفريق لسه بيرد من الموبايل اللي متعود عليه، وكل محادثة محفوظة، والزبون اللي بيكلم الصيدلية بالليل بعد المواعيد بيعرف إن رسالته وصلت وهيترد عليه.
الأسئلة الشائعة
ليه صفحة واحدة بدل موقع كامل بصفحات؟
لأن الصيدلية شغلها طلبات بالتليفون والواتساب، والزبون عايز يعرف هي فاتحة ورقمها كام وبتوصّل ولا لأ. صفحة واحدة بتجاوب على ده كله من غير ما الزبون يتنقل، وكل قسم فيها ليه رابط في المنيو.
إزاي علامة «مفتوحة الآن» بتعرف المواعيد؟
العلامة بتتحسب من مواعيد العمل المكتوبة في ملف بيانات الصيدلية، من 8:30 الصبح لحد 2 بالليل، وبرّه المواعيد بتتغير لوحدها لـ«مغلقة الآن، تفتح 8:30 صباحاً». ولو المواعيد اتغيرت، بيتعدّل رقم واحد في الملف.
الصيدلية تقدر تعدّل الكلام أو الرقم بنفسها؟
كل كلام الصفحة بالعربي والإنجليزي، ومعاه التليفون والعنوان والمواعيد، موجود في ملف JSON واحد. أي تعديل فيه بيظهر في النسختين وفي البيانات المنظّمة اللي جوجل بيقراها مع بعض.
بوابة العملاء بتجيب بياناتها منين؟
من تقارير البيع الشهرية اللي بيطلّعها برنامج الكاشير SofTech Smart Business بصيغة Excel. الفريق بيرفع التقرير، والبوابة بتعمل ملف لكل عميل وصورة للشهر، ولو الشهر اترفع تاني بيستبدل النسخة القديمة.
إيه اللي بيمنع رقم الواتساب إنه يتقفل من الحملات؟
الحملات بتتبعت بقوالب معتمدة من ميتا بس، والحد اليومي بيمشي مع مستوى الرقم عند ميتا ويتعدّل لوحده، وفيه نافذة وقت للإرسال وحد للسرعة، وأي حد يبعت «إيقاف» بيخرج من الحملات. والحملة مابتبدأش غير لما حد من الفريق يدوس «ابدأ».
إزاي الصيدلية تعرف إن الحملة نفعت؟
في كل حملة الفريق يقدر يسيب مجموعة مقارنة من نفس الشريحة ماتوصلهاش الرسالة. ولما تقرير الشهر اللي بعده يترفع، المقارنة بين المجموعتين بتوضح الرسالة غيّرت المشتريات ولا لأ. وفيه كمان تجربة قالبين على نفس الشريحة.
الفريق لازم يسيب تطبيق واتساب بيزنس ويرد من مرسال؟
لأ. رقم الطلبات متوصّل بمرسال بنظام coexistence، فالفريق بيرد من تطبيق واتساب بيزنس على الموبايل زي ما كان، وكل محادثة بتتحفظ في مرسال في نفس الوقت. ومرسال بيبعت التحية ورسالة الغياب وطلب التقييم لوحده.
ليه رقم التسويق مابياخدش طلبات؟
عشان الطلبات ماتتفرقش على رقمين ومايبقاش فيه طلب ضايع. أي رد على رقم التسويق بياخد رسالة واحدة فيها زرار بيودّي الزبون لواتساب الطلبات، وهناك الفريق بيكمّل معاه.









