Ideal House
تخطّي إلى المحتوى

تكامل OpenCart#

أضف Room Visualizer من خلال إضافة OpenCart 4 أو سمة مخصصة واربط رمز منتج ثابت في واجهة المتجر إلى فهرس ideal.house.

حالة التحقق: تم مراجعة وثائق إضافة OpenCart 4 في 7 سبتمبر 2026. لم يكن هناك متجر اختبار متاح. تستخدم OpenCart 3 وقوالب الجهات الخارجية مسارات واتفاقيات أحداث مختلفة؛ اضبط هذا الدليل على الإصدار الرئيسي المثبت.

قبل تحميل SDK: افتح لوحة التحكم ← الإعدادات، وأضف أصل واجهة متجرك إلى Allowed Origins (CORS)، ثم انقر على حفظ. أدرج اسم المضيف المنشور وأي أصول للمعاينة أو بيئة ما قبل الإنتاج تستخدمها؛ وافصل بين الأصول المتعددة بفواصل. راجع خطوات الإعداد.

المتطلبات المسبقة واختيار الرمز#

أعدّ متجرًا للاختبار، وصول تطوير الإضافة/السمة، Shop ID و Publishable Key، وسجلات اختبار مستوردة. غالبًا ما يعرض OpenCart الأساسي model في قوالب المنتجات، بينما قد يتطلب SKU تعديلًا في وحدة التحكم أو الإضافة اعتمادًا على الإصدار والسمة. اختر قيمة واحدة واستخدمها بشكل مستمر كـ sku ideal.house.

لا تعدّل ملفات الفهرس الأساسية مباشرة. عبّئ التغييرات كإضافة OpenCart 4 أو احتفظ بها في سمة مخصصة خاضعة للتحكم في الإصدارات.

عقد SDK الأدنى#

html
<script
  src="https://sdk.ideal.house/sdk.js"
  data-shop-id="<SHOP_ID>"
  data-publishable-key="<PUBLISHABLE_KEY>"
  async
></script>

<div data-idealhouse-button-container data-product-code="CHAIR-OAK-01"></div>

يجب أن يتطابق Product Code حرفيًا مع sku ideal.house المستوردة.

اعرض حاوية المنتج#

مدد قالب المنتج النشط من خلال إضافتك. إذا قمت عمدًا بربط حقل model OpenCart إلى sku ideal.house، ضع هذا بالقرب من إجراءات المنتج:

twig
{% if model %}
  <div class="idealhouse-host">
    <div
      data-idealhouse-button-container
      data-product-code="{{ model }}">
    </div>
  </div>
{% endif %}

يعتمد تهريب الأحرف التلقائي في Twig على إعدادات البيئة؛ تأكد من تهريب أحرف القيمة المختارة بما يناسب استخدامها في سمة HTML. إذا اخترت حقل SKU الفعلي، فأضف تلك القيمة المنقّاة إلى بيانات القالب في وحدة التحكم ضمن إضافتك، واعرضها بدلًا من model.

تحميل SDK مرة واحدة#

أضف مورد JavaScript لواجهة المتجر عبر آلية الإضافة أو القالب. ينبغي أن ينشئ سكربتًا واحدًا بالسمات المطلوبة:

js
if (!document.querySelector('script[src="https://sdk.ideal.house/sdk.js"]')) {
  const script = document.createElement('script');
  script.src = 'https://sdk.ideal.house/sdk.js';
  script.async = true;
  script.dataset.shopId = '<SHOP_ID>';
  script.dataset.publishableKey = '<PUBLISHABLE_KEY>';
  document.head.append(script);
}

احفظ القيمتين العموميتين في تكوين الإضافة واعرضهما بأمان. لا تضع Client Secret ideal.house أبدًا في JavaScript، أو Twig، أو سجلات الإضافة، أو محتوى HTML المخزن مؤقتًا.

الخيارات، المتغيرات، والرسم الديناميكي#

لا تتطابق خيارات OpenCart دائمًا واحدًا لواحد مع متغيرات منتجات تحمل SKU. إذا كان متجرك يستخدم إضافة للخيارات أو متغيرات المنتجات، فتكامل مع دالة رد النداء الموثقة التي تُستدعى بعد تحديد المتغير ومع نموذج بيانات تلك الإضافة. لا تستبدل العنصر الحاوي إلا عندما توفّر الإضافة الرمز المحدد بدقة:

js
function renderIdealhouseCode(host, productCode) {
  host.replaceChildren();
  const code = String(productCode || '').trim();
  if (!code) return;
  const container = document.createElement('div');
  container.dataset.idealhouseButtonContainer = '';
  container.dataset.productCode = code;
  host.append(container);
}

هذه شيفرة محوّل ينفّذه العميل؛ لا يفترض هذا الدليل وجود حدث موحّد لمتغيرات المنتجات في OpenCart. لبحث AJAX ومرشحات الفئات والنوافذ المنبثقة والعرض السريع، اعرض حاويات نظيفة في قوالب الإضافة أو استدعِ دالة الربط من دالة رد النداء الموثقة عند اكتمال التحديث. لا تنسخ مطلقًا العناصر الأبناء التي أنشأها SDK.

استيراد المنتجات#

صدّر model/SKU OpenCart المختار لكل عنصر مرئي واربطه إلى sku ideal.house. استخدم رفع المنتج، ثم اتبع استيراد المنتجات، حالة المهمة، قائمة المنتجات، تحديث المنتجات، حذف المنتج، والأخطاء وإعادة المحاولة.

مكالمات OpenCart Admin API، التصدير المجدول، مستمعي الأحداث، وإشعارات الويب هي عمل تكامل مملوك للعميل.

التحقق والإزالة#

اختبر المنتجات البسيطة، كل تركيب خيار مدعوم، الأكواد المفقودة/المكررة، SKUs غير المعروفة لـ ideal.house، صفحات الفئة/البحث، العرض السريع، زري الرجوع والتقدم في المتصفح، تخطيط الهاتف المحمول، المتاجر المتعددة، اللغات/العملات، الموافقة، والتخزين المؤقت/الضغط للإنتاج. أكد طلب SDK واحد وتطابق الرمز الدقيق.

للإزالة، عطّل/ألغِ تثبيت الإضافة أو أزل تجاوز القالب المخصص والمورد، جدّد تعديلات/أحداث OpenCart، امسح تخزينات السمة/CDN، وتأكد من عدم وجود طلب SDK أو حاويات.

مراجع المنصة الرسمية#