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

تكامل PrestaShop#

استخدم وحدة PrestaShop صغيرة لتحميل Room Visualizer وعرض زر من مرجع المنتج أو التركيب الحالي.

حالة التحقق: روجعت وثائق وحدات PrestaShop 8/9 ونقاط الربط والموارد في 7 سبتمبر 2026. لم يتوفر متجر تاجر للاختبار. يستخدم المثال نقاط ربط موثقة مشتركة بين Classic وHummingbird، لكن قوالب الجهات الخارجية قد تنقلها أو تحذفها.

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

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

أعدّ متجرًا للاختبار، وصول تطوير الوحدات، Shop ID و Publishable Key، وSKUs مستوردة. قرر ما إذا كان رمز ideal.house يأتي من reference المنتج الأساسي أو من reference التركيب المحدد. يجب أن يكون لكل تركيب مرئي مرجعًا فريدًا وغير فارغ.

عقد 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. لا يمكن تبادل معرفات PrestaShop مع المراجع.

إنشاء نقطة إدخال الوحدة#

سجّل displayProductAdditionalInfo لوضع المحتوى في صفحات المنتجات، وactionFrontControllerSetMedia لتحميل المحوّل المحلي. يوثّق كل من Classic وHummingbird نقطة ربط العرض في قوالب المنتجات والعرض السريع.

php
public function install()
{
    return parent::install()
        && $this->registerHook('displayProductAdditionalInfo')
        && $this->registerHook('actionFrontControllerSetMedia');
}

public function hookActionFrontControllerSetMedia($params)
{
    $this->context->controller->registerJavascript(
        'module-' . $this->name . '-adapter',
        'modules/' . $this->name . '/views/js/adapter.js',
        array('position' => 'bottom', 'priority' => 200)
    );
}

في دالة رد النداء الخاصة بنقطة ربط العرض، احصل على المنتج المعروض، واختر مرجعه، وأسنده إلى Smarty، ثم اعرض قالب الوحدة. طبّق تهريب الأحرف على القيمة في ذلك القالب:

smarty
<div class="idealhouse-host">
  {if $idealhouse_product_code}
    <div
      data-idealhouse-button-container
      data-product-code="{$idealhouse_product_code|escape:'html':'UTF-8'}">
    </div>
  {/if}
</div>

لا تنسخ PHP المختصرة كوحدة إنتاج كاملة: أضف البيانات الوصفية الوحدة المعتادة، توافق الإصدارات، تخزين التكوين، فحوصات الأذونات، وتنظيف إلغاء التثبيت.

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

في adapter.js، أنشئ عنصر SDK المطابق تمامًا بعد قراءة القيمتين العامتين من إعدادات واجهة المتجر الخاصة بوحدتك، بعد تنقيتها:

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 = window.idealhousePublicConfig.shopId;
  script.dataset.publishableKey = window.idealhousePublicConfig.publishableKey;
  document.head.append(script);
}

عرض idealhousePublicConfig مع آلية تعريف/تكوين JavaScript المدعومة من PrestaShop. لا تعرض مطلقًا Client Secret.

تغييرات التركيب والصفحات الديناميكية#

تختلف دورة حياة تحديث المنتج في القالب ووحدات تركيبات المنتجات التابعة لجهات خارجية. عندما يكون القالب النشط قد حدّد التركيب المختار، مرّر مرجعه إلى دالة الربط التالية التي ينفّذها العميل:

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

لا تخمّن اعتمادًا على التسميات المعروضة. تشمل مواضع نقاط الربط الموثقة العرض السريع، لكن تحقّق من أن القالب النشط يعرض نقطة الربط فعلًا. بالنسبة إلى مرشحات AJAX أو أجزاء المنتجات المحدّثة، دع نقطة الربط تنشئ عنصرًا حاويًا جديدًا، أو استدعِ دالة الربط بعد دالة رد النداء الموثقة لتحديث القالب.

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

اربط reference منتج/تركيب PrestaShop إلى sku ideal.house. استخدم رفع المنتج والأدلة لـ استيراد، حالة المهمة، القائمة، التحديثات، الحذف، والأخطاء/إعادة المحاولة. أي تصدير PrestaShop Webservice أو cron أو مزامنة قائمة على نقطة ربط هو تنفيذ عميل.

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

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

ألغِ تثبيت الوحدة أو عطّلها، وتأكد من إزالة نقاط الربط والإعدادات والموارد الخاصة بها، وامسح ذاكرة التخزين المؤقت لـ Smarty وواجهة المتجر، وتحقق من غياب URL الخاص بـ SDK ووسوم data-idealhouse-*.

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