Progress Horizon Trading: 144 منتجاً لا يستطيع مهندس المشتريات الوصول إليها
مورّد بـ 144 منتجاً يردّ على ثلاثة عناوين، والعربية في منتج واحد. أعدنا بناءه في أسبوع: 478 رابطاً ثنائي اللغة، وطلبات تسعير تحمل اسم منتجها.

مورّد يمثّل 22 علامة تصنيع عبر 144 منتجاً كان غير مرئي أمام المهندسين الذين يشترون منه. الكتالوج كان يردّ على ثلاثة عناوين مختلفة، فتضطر محركات البحث إلى الاختيار بين ثلاث نسخ من كل صفحة. وكان يحمل العربية في منتج واحد من 144، في سوق تُقرأ فيه المواصفة بالعربية ويُبحث فيه عن رقم القطعة بالحروف اللاتينية. أما طلبات التسعير فكانت تصل بلا أي أثر يدل على المنتج أو الصفحة التي جاءت منها، فلا أحد يعرف أي العلامات الـ 22 تستحق مكانها. أعادت Alnitak بناءه في أسبوع واحد: شجرة مسارات واحدة واعية باللغة، و 478 رابطاً ثنائي اللغة مولّداً من الكتالوج نفسه، و API للمحتوى بحقول ثنائية اللغة لا يمكن أن تتأخر إحداها بصمت، ولوحة تحكم يؤدي النشر فيها إلى إطلاق الـ Deploy، واثنتا عشرة نقطة طلب موزّعة على خمس قنوات، كل واحدة تُبلغ عن مصدرها. وقد بنت Alnitak النسخة السابقة أيضاً، في 2024. في أغسطس 2026 راجعنا عملنا نحن، وكتبنا الإخفاقات الأربعة في مستند ما زال لدى العميل، وأعدنا الموقع بعد انقطاعه دون أن نرسل فاتورة. الأمران مذكوران هنا عن قصد: الإخفاق هو سبب كتابة مواصفة إعادة البناء بهذا الشكل.
ما الذي تغيّر، بالأرقام
- من 4 إلى كل المساراتتغطية الـ Metadataالعناوين والأوصاف والـ Canonical المرجعي و hreflang كانت على أربعة مسارات قبل إعادة البناء. هي الآن على كل مسار.
- 478عنوان URL بلغتين في Sitemap واحديُولّد من الكتالوج نفسه، باللغتين، بتواريخ تعديل حقيقية بدل تواريخ مخترعة.
- من 1 إلى 144منتجاً يحمل محتوى عربياًكان المحتوى العربي موجوداً على منتج واحد في الكتالوج كله. صار حقلاً إلزامياً في طبقة البيانات، فلا يمكن أن يتخلّف بصمت.
- 12نقطة اتصال منسوبةاثنتا عشرة دعوة إلى الفعل عبر خمس قنوات، كل واحدة ترسل حدثها الخاص ومعه المنتج والصفحة ولغة الزائر.
- بلا فاتورةلإعادة الموقع بعد الانقطاعانقطع تسجيل الـ Domain وانتهت الشهادة دون مالك على أي من الجانبين. أعدنا الموقع ولم نطالب بمقابل.
ما صُمم النظام لتحقيقهبُني ليجد مهندس المشتريات المنتج باللغة التي يبحث بها، وليرى فريق المبيعات أي علامة تجارية وأي صفحة أنتجت طلب التسعير. تُقاس تغطية الفهرسة ومصادر الطلبات مقابل خط الأساس الذي وقّعه الطرفان قبل الإطلاق، ويُرفع التقرير عند نقطة المراجعة بعد 120 يوماً. لا يظهر أي رقم زيارات أو ترتيب على هذه الصفحة قبل أن تُغلق تلك النافذة.
موقف يعرفه كل موزّع
الخبرة لم تكن موضع شك. 22 علامة تجارية، و 144 منتجاً، و 53 قسماً فرعياً، ومشاريع بنية تحتية جرى تزويدها بالفعل. المشكلة أن شيئاً من ذلك لم ينجُ في الطريق إلى صفحة نتائج البحث.
مهندس مشتريات يبحث عن عائلة منتجات بعينها كان يجد إما لا شيء، أو صفحة تحمل اسم المنتج ولا شيء تحته. كان الكتالوج يعيش في جداول البيانات وفي رؤوس من باعوا منه سنوات. هذا هو الشكل المعتاد لهذه المشكلة: عمل سمعته خارج الإنترنت أقوى بكثير من أي شيء يستطيع غريب أن يجده، ولا طريقة لمعرفة أي الاثنين حسم مناقصة خسرتها.
راجعنا عملنا نحن
في 2026 انقطع تسجيل الـ Domain نحو ثلاثة أشهر، وانتهت شهادة TLS بشكل منفصل. لم يكن لأي منهما مالك، لا عند العميل ولا عندنا. نسيت محركات البحث معظم العناوين، وواجه كل زائر تحذيراً أمنياً من المتصفح. أعدنا الموقع ولم نرسل فاتورة، لأن الثغرة كانت من مسؤوليتنا.
ثم فعلنا ما يتجنّبه معظم المورّدين. راجعنا البناء الذي سلّمناه قبل عامين بالصرامة نفسها التي نطبّقها على عمل أي طرف آخر، وكتبنا ما وجدناه، بما في ذلك النصف الذي كان من صنعنا. العميل لا يستطيع الحكم على ادّعاء تقني. ما يستطيع الحكم عليه هو ما إذا كان من استأجرهم سيخبرونه بما لا يسرّه دون أن يسأل.
الأعطال الأربعة، بأسمائها
كشفت المراجعة أربع مشكلات متراكبة، والتراكب هو بيت القصيد: إصلاح أي منها وحدها ما كان ليغيّر شيئاً قابلاً للقياس.
التسجيل المنقطع والشهادة المنتهية هما الأولان. الثالث من صنعنا: شجرتا مسارات متوازيتان تعرضان المنتج نفسه على عنوانين أو ثلاثة، مع Metadata على أربعة مسارات فقط، وتخطيط من اليسار إلى اليمين مثبّت في الكود تحت مبدّل لغة عربي. والرابع من صنعنا أيضاً: فراغ في المحتوى، بمتوسط صفر كلمة في صفحة المنتج، ومحتوى عربي على منتج واحد من 144.
كتبناه كنموذج من ثلاث طبقات، وهي الصيغة التي يستطيع مالك غير تقني أن يحتفظ بها في ذهنه. هل تصل محركات البحث إلى الموقع. هل تفهم ما وصلت إليه. هل على الصفحة ما يستحق أن يُعرض على إنسان. لكل طبقة مرحلة وبوابة دخول ومعيار قبول. ثم شرحناه للعميل في جلسة مشاركة شاشة مدتها 45 دقيقة، وصاحب القرار التجاري في الغرفة، ودون عرض سعر مرفق، وأتبعناها بملخص من صفحة واحدة بلغة مباشرة يستطيع تمريره داخلياً دون أن يحرّره أولاً.
إعادة البناء، في أسبوع
بين 27 و 30 أغسطس 2026، غيّر 18 Commit عدد 555 ملفاً. جُمعت المسارات في شجرة واحدة تعي اللغة، الإنجليزية في الجذر والعربية تحتها، واختير ذلك تحديداً ليبقى كل Backlink قائم وكل عنوان مفهرس حياً. كل مسار يصدر الآن عنوانه ووصفه والـ Canonical المرجعي و hreflang الخاص به. ويُولّد الـ Sitemap من الكتالوج، 478 عنوان URL باللغتين، مع حذف تواريخ التعديل الملفّقة بدل اختراعها.
أُعيد بناء التخطيطات لليمين إلى اليسار لا عكسها، مع خطوط مجزّأة منفصلة لكل كتابة. وملأ سكربت يعتمد مسرداً الكتالوج العربي، وكُتب ليرفض بدل أن يمرّر الإنجليزية على أنها عربية. وانتقل الموقع إلى Server نديره بأنفسنا بإصدارات مؤرّخة و Rollback بالـ Symlink، وانتقلت الصور إلى خط معالجة يولّد AVIF و WebP ولا يكبّر ملفاً أصلياً أبداً، لأن وزن صفحة الكتالوج هو صور المنتجات في معظمه.
الإصلاح الحقيقي: النشر دون مطوّر
لم تكن صفحات المنتجات فارغة لأن لا أحد لديه ما يقوله عنها، بل لأن قوله كان يتطلب مهندساً. أي خطة محتوى تنتهي بتذكرة لمطوّر تموت في قائمة الانتظار. هذا هو السبب الأول والأكثر شيوعاً لبقاء موقع جيد فارغاً.
لذلك تضمّنت إعادة البناء الجزء الغائب من المتطلب الأصلي: API للمحتوى على Express و MongoDB بـ 12 نموذج مستند ثنائي اللغة، كل حقل نصي فيه زوج إنجليزي وعربي إلزامي، خلف Dashboard إدارة من 11 شاشة يُقدَّم عبر Proxy من جهة الـ Server. والنشر من الـ Dashboard يطلق إصداراً إلى الإنتاج يثبّت المحتوى الحي في الموقع. التحقق من الحقول الإلزامية في طبقة البيانات هو ما يقوم بالعمل الحقيقي هنا: هو ما يمنع العمود العربي من أن يصير عموداً فارغاً بهدوء بعد ستة أشهر من الإطلاق.
هذا هو المتطلب الذي كان يجب أن نكتبه في 2024، وهو الذي يحوّل الموقع من تسليم إلى أصل يشغّله العميل.
من أين تأتي الطلبات
يسأل الموزّع سؤالاً تجارياً واحداً عن الموقع: أي المنتجات والعلامات يُنظر إليها، وأيها يتحوّل إلى طلب تسعير، وبأي لغة.
اثنتا عشرة نقطة دعوة إلى الفعل عبر خمس قنوات اتصال، كل منها ترسل حدثها الخاص، فلا تُحتسب نقرة على الخريطة بهدوء كطلب. وكائن واحد يصف من أين جاءت محاولة الاتصال وأي منتج تخصّ، والكائن نفسه يغذّي حدث التحليلات وتعبئة نموذج التسعير معاً، ما يعني أن النسب والطلب لا يمكن فيزيائياً أن يتناقضا. ويُبلَّغ عن تصفّح الكتالوج بشكل أحداث التجارة القياسي، فتصير المنتجات والعلامات الأكثر مشاهدة تقريراً جاهزاً لا بناءً مخصصاً. وتركب لغة الزائر كل حدث، فيستطيع العميل أخيراً أن يرى هل يسلك الزوار بالعربية سلوكاً مختلفاً عن الإنجليزية.
ما يُقاس، وما لم يُقَس بعد
كل ادّعاء يُقاس مقابل خط أساس لليوم صفر وقّعه الطرفان قبل إطلاق إعادة البناء: عدد الصفحات المفهرسة، وتغطية Search Console، ومصادر الطلبات، مؤرشفة. ويسمع العميل منا شهرياً عدد الصفحات المفهرسة، وتُرفع المقارنة عند نقطة المراجعة بعد 120 يوماً. تلك النافذة لم تُغلق، فلا يوجد رقم زيارات على هذه الصفحة ولن يوجد حتى يصير هناك رقم حقيقي.
المحتوى هو السقف الحالي. المرحلة التالية تنشر جداول المواصفات ومراجع المعايير وملاحظات التطبيق التي يملكها العميل أصلاً، بعد أن يتحقق منها مهندسوه، عبر الـ Dashboard الذي بنيناه. وما زلنا نحن الفريق الذي يشغّله.
المزايا الرئيسية
- عنوان واحد لكل منتج، بلغتين، لكل منهما عنوانه ووصفه و Canonical و hreflang، فلا تضطر محركات البحث إلى الاختيار بين ثلاث نسخ من الصفحة نفسها
- Sitemap يُولّد من الكتالوج، 478 عنوان URL باللغتين، فالمنتج الذي يُضاف من الـ Dashboard يصبح عنواناً قابلاً للزحف في اليوم نفسه
- العربية مبنية من العنصر الجذر لا معكوسة، مع خطوط مجزّأة منفصلة للعربية واللاتينية، والمصطلحات التقنية تبقى لاتينية كما يبحث بها المهندسون فعلاً
- API للمحتوى بـ 12 نموذج مستند ثنائي اللغة، كل حقل نصي فيه يتطلب زوجاً إنجليزياً وعربياً، فلا تتخلّف اللغة الثانية عن الأولى بصمت
- Dashboard إدارة من 11 شاشة، والنشر منه يطلق الإصدار إلى الإنتاج: وصف المنتج صار حقلاً في نموذج لا تذكرة لمطوّر
- رسم Structured Data واحد يعرّف الشركة ومجموعتها الأم والعلامات الـ 22 مرة واحدة، وتشير إليه كل صفحة تذكرها
- اثنتا عشرة دعوة إلى الفعل عبر خمس قنوات اتصال، كل منها ترسل المنتج والصفحة واللغة، فلا تُحتسب نقرة على الخريطة كطلب
- إصدارات مؤرّخة مع Rollback بالـ Symlink على Server نديره بأنفسنا، وخط معالجة صور يبني AVIF و WebP دون أن يكبّر ملفاً أصلياً أبداً
الأثر على العمل
لدى العميل الآن كتالوج تستطيع محركات البحث الوصول إليه وقراءته ونسبة الطلبات إليه، ويوسّعه فريقه دون الاتصال بنا — وصف المنتج صار حقلاً في نموذج لا تذكرة لمطوّر، وهذا هو الجزء الذي غيّر فعلاً طريقة عمل الشركة يومياً. الـ Metadata انتقلت من أربعة مسارات إلى كل المسارات. وخريطة الموقع من قائمة جزئية إلى 478 رابطاً ثنائي اللغة. والعربية من منتج واحد في 144 إلى حقل إلزامي في كلها. وتصل طلبات التسعير الآن حاملة المنتج والصفحة واللغة التي أنتجتها، فيرى فريق المبيعات أي العلامات الـ 22 تولّد الطلبات بدل التخمين. وما يغيب هنا عمداً هو رقم عن الزيارات أو الترتيب: تلك تُقاس مقابل خط أساس وقّعه الطرفان قبل إطلاق أي شيء، وتُعرض عند نقطة الـ 120 يوماً، ولا تُلتقط كصورة شاشة.
أرسل رابط موقعك. نفحص قبل أن نسعّر.
أرسل لنا الـ Domain. تحصل على أول نتائج الزحف والفهرسة والسرعة مكتوبة خلال يوم عمل واحد، قبل أن يسعّر لك أحد شيئاً.
أو أرسل رابط موقعك ويرد عليك شخص خلال يوم عمل واحد.