من مشكلة في متجر WooCommerce إلى إضافة منشورة على WordPress.org بمساعدة الذكاء الاصطناعي
الحمد لله رب العالمين 🌸
حبيت أشارككم تجربة مهمة بالنسبة إلي، تجربة بدأت من مشكلة حقيقية واجهتني أثناء العمل على متجر WooCommerce، وانتهت بنشر أول إضافة WordPress / WooCommerce إلي رسمياً على WordPress.org.
الإضافة اسمها:
Fatima Attribute Pricing Builder for WooCommerce
هذه التجربة ما كانت مجرد كتابة كود، ولا كانت مجرد طلب بسيط من الذكاء الاصطناعي. كانت رحلة كاملة من فهم المشكلة، توجيه الفكرة، تجربة أكثر من نسخة، تعديل المسار، تجهيز الإضافة للنشر، ثم قبولها وظهورها رسمياً.
من أين بدأت الفكرة؟
بدأت الفكرة من حاجة واقعية داخل متجر WooCommerce يستخدم المنتجات المتغيرة.
في WooCommerce، المنتجات المتغيرة تعتمد على attributes و variations. مثلاً: الحجم، النوع، الإضافة، التغليف، أو أي خيار آخر.
المشكلة أن تعديل أسعار كل variation بشكل يدوي يأخذ وقتاً، خصوصاً عندما تكون الخيارات متكررة في أكثر من منتج، مثل المطاعم، الكافيهات، متاجر الطعام، أو المنتجات القابلة للتخصيص.
الفكرة الأساسية كانت أن أستخدم نفس attributes و variations الموجودة داخل WooCommerce، وأضيف فقط طبقة تساعد على حساب الأسعار.
يعني يكون لكل منتج سعر أساسي، وتضاف عليه قيم الخيارات، ثم يتم حساب السعر النهائي لكل variation.
لماذا بنيت فوق WooCommerce بدلاً من بناء نظام جديد؟
هذه كانت من أهم القرارات في الفكرة.
لم أرد أن أبني نظام خيارات منفصل عن WooCommerce، لأن WooCommerce لديه أصلاً نظام واضح للمنتجات المتغيرة من خلال attributes و variations.
لذلك كان التوجه أن الإضافة لا تنشئ attributes من الصفر، ولا تولّد variations تلقائياً، ولا تستبدل طريقة WooCommerce الأصلية.
هي تعمل على المنتجات المتغيرة الموجودة أصلاً، وعلى الـ attributes والـ variations التي أنشأها صاحب المتجر بالطريقة القياسية.
دور الإضافة هو تسهيل حساب الأسعار وتطبيقها على regular prices الخاصة بالـ variations الموجودة.
بالنسبة لي، هذا جعل الإضافة أخف، أوضح، وأقرب لطريقة WooCommerce الطبيعية، بدل أن أضيف نظاماً منفصلاً قد يربك المستخدم.
دور الذكاء الاصطناعي في التجربة
استخدمت الذكاء الاصطناعي كمساعد في التفكير والتطوير، لكن ليس كبديل عن فهم المشكلة أو اتخاذ القرار.
لم تكن التجربة عبارة عن أمر واحد مثل: “اصنع لي إضافة”.
كانت عبارة عن حوار طويل، توجيه، تجربة، مراجعة، وتطوير نسخة بعد نسخة.
كنت أشرح المشكلة، أقترح السلوك المناسب، أختبر النتيجة داخل WooCommerce، ثم أعود لتعديل الفكرة وتوجيهها من جديد.
الذكاء الاصطناعي ساعدني في ترتيب المنطق، التفكير بالسيناريوهات، كتابة أجزاء من الكود، مراجعة خطوات التطوير، وتجهيز مرحلة النشر.
لكن التوجيه، القرارات، اختبار النتيجة، وفهم المشكلة الواقعية كانت خطوات أساسية مني.
كيف تطورت الإضافة نسخة بعد نسخة؟
في البداية كانت الإضافة بسيطة: داخل المنتج المتغير يوجد تبويب Price Builder، نضع فيه base price وقيم الـ attributes، ثم نحسب أسعار الـ variations.
لكن بعد أول فكرة ظهرت ملاحظة مهمة:
مثلاً في مطعم أو كافيه، قد تكون أسعار الأحجام أو الإضافات متكررة في أكثر من منتج.
من هنا جاء التوجيه لإضافة ميزة:
Global Defaults
أي صفحة عامة داخل WooCommerce يستطيع صاحب المتجر من خلالها تحديد أسعار افتراضية للـ attribute terms.
Medium = 3
Large = 5
ثم أي منتج يستخدم هذه الخيارات يمكنه أن يرث هذه القيم تلقائياً.
بعد ذلك ظهرت حاجة أخرى:
Product Overrides
هنا أضفنا ميزة Product Overrides، أي أن المنتج يستطيع استخدام القيمة العامة، أو يضع قيمة خاصة به عند الحاجة.
الفرق بين الحقل الفارغ والرقم 0
خلال التجربة ظهر تفصيل صغير، لكنه مهم جداً في تجربة الاستخدام:
ما الفرق بين أن يكون الحقل فارغاً، وبين أن يكتب المستخدم الرقم 0؟
تقنياً كان ممكن اعتبار الاثنين نفس الشيء، لكن عملياً هذا غير صحيح.
لذلك صار المنطق كالتالي:
- الحقل الفارغ يعني: استخدم القيمة العامة من Global Defaults.
- الرقم 0 يعني: هذا الخيار لا يضيف أي تكلفة إضافية لهذا المنتج.
هذا التفصيل جعل الإضافة أوضح وأكثر واقعية لصاحب المتجر.
Preview قبل Apply
بعدها فكرنا بتجربة المستخدم.
كان من الممكن أن تطبق الإضافة الأسعار مباشرة على الـ variations، لكن هذا قد يكون خطيراً، لأن الأسعار الحالية سيتم استبدالها.
لذلك أضفنا خطوة مهمة:
Preview before Apply
أي أن يرى صاحب المتجر السعر الحالي، السعر المحسوب، الفرق بينهما، والمعادلة المستخدمة قبل أن يضغط Apply.
بهذه الطريقة لا يتم تغيير الأسعار مباشرة، بل يستطيع المستخدم مراجعة النتيجة أولاً.
Reset fields to global defaults
أضفنا أيضاً خيار:
Reset fields to global defaults
حتى يستطيع صاحب المتجر إزالة القيم الخاصة من المنتج والعودة إلى القيم العامة بسهولة، بدون أن يمسح كل حقل يدوياً.
هذه الميزة جاءت من التفكير بتجربة الأدمن داخل WooCommerce، وليس فقط من التفكير بالكود.
ماذا أجلنا للإصدارات القادمة؟
خلال التطوير ناقشنا ميزات أخرى مثل الخصومات أو التطبيق الجماعي، لكن كان القرار أن لا تدخل كل الأفكار في الإصدار الأول.
لأن النسخة الأولى يجب أن تكون واضحة، مستقرة، وتركز على حل المشكلة الأساسية.
من إضافة تعمل إلى إضافة قابلة للنشر
بعد أن أصبحت الإضافة تعمل، بدأت مرحلة مختلفة تماماً: تجهيزها للنشر على WordPress.org.
وهنا اكتشفت أن نشر إضافة رسمية ليس مجرد كود.
كان عليّ تجهيز عدة أشياء، منها:
- readme.txt
- screenshots
- banner
- icon
- uninstall.php
- ملفات جاهزة للترجمة
- Plugin Check
- مراعاة معايير WordPress.org
ظهرت ملاحظات كثيرة خلال الفحص، مثل ملاحظات الترجمة، الأمان، sanitization، وتجهيز الملفات. قمت بتعديلها خطوة بخطوة حتى أصبحت الإضافة جاهزة للإرسال.
مراجعة WordPress.org وتغيير الاسم
بعد إرسال الإضافة، وصلتني ملاحظات من فريق WordPress.org، منها أن الاسم والـ slug يجب أن يكونا أوضح وأكثر تميزاً.
في البداية كان الاسم مختلفاً، وبعد التعديل استقر الاسم النهائي على:
والـ slug أصبح:
بعد التعديلات، تم قبول الإضافة رسمياً.
مرحلة النشر عبر SVN
بعد القبول بدأت مرحلة جديدة بالنسبة لي: النشر عبر SVN.
تعلمت كيف أتعامل مع بنية WordPress.org الرسمية:
tags
assets
رفعت ملفات الإضافة، جهزت نسخة 1.0.0، أضفت البانر، الأيقونة، ولقطات الشاشة، ثم عملت commit.
بعدها ظهرت صفحة الإضافة على WordPress.org، وظهر زر Download، وبدأت الإضافة تدخل مرحلة النشر الرسمي للمواقع.
ما بعد النشر
بعد النشر لم أتوقف عند صفحة الإضافة فقط.
جهزت صفحة Documentation كاملة على موقعي الشخصي، فيها شرح لطريقة الاستخدام، المتطلبات، الأمثلة، Global Defaults، Product Overrides، Preview Prices، و Apply Prices.
رابط التوثيق:
https://fatimamohsen.dev/docs/fatima-attribute-pricing-builder/
ثم أضفت رابط التوثيق داخل صفحة الإضافة على WordPress.org حتى يكون الوصول للشرح أسهل وأكثر احترافية.
ماذا تعلمت من التجربة؟
أهم شيء تعلمته أن الذكاء الاصطناعي لا يلغي دور المطور، ولا يحوّل الفكرة إلى منتج كامل من أول جواب.
النتيجة القوية جاءت من:
- فهم المشكلة
- طرح الأسئلة الصحيحة
- توجيه الذكاء الاصطناعي
- اختبار الحل داخل WooCommerce
- تصحيح المسار
- تأجيل الميزات غير الضرورية
- الالتزام بمعايير WordPress.org
- النشر والتوثيق
كنت أستخدم الذكاء الاصطناعي كمساعد قوي، لكنه لم يكن بديلاً عن فهم المشكلة أو اتخاذ القرار.
الفكرة، التوجيه، الاختبار، والمراجعة كانت ضرورية حتى تتحول الإضافة من حل مخصص لمتجر واحد إلى إضافة منشورة وقابلة للاستخدام.
الخلاصة
بالنسبة لي، هذه التجربة كانت خطوة مهمة للانتقال من تنفيذ وتخصيص مواقع WordPress فقط، إلى بناء إضافات وحلول قابلة للنشر والاستخدام.
والحمد لله رب العالمين، تم نشر أول إضافة لي رسمياً على WordPress.org.
