PrestaShop entegrasyonu#
Room Visualizer'i yüklemek ve mevcut ürün veya kombinasyon referansından bir düğme görüntülemek için küçük bir PrestaShop modülü kullanın.
Doğrulama durumu: PrestaShop 8/9 modül, kancası (hook) ve varlık belgeleri 7 Eylül 2026 tarihinde incelendi. Satıcı mağazası mevcut değildi. Örnek, Classic ve Hummingbird'e ortak belgelenmiş kanca noktalarını kullanır, ancak üçüncü taraf temalar bunları taşıyabilir veya atlayabilir.
SDK'ü yüklemeden önce: Panel → Ayarlar sayfasını açın, mağaza vitrininizdeki kökeni (origin) Allowed Origins (CORS) listesine ekleyin ve Kaydet düğmesine tıklayın. Yayımlanan ana bilgisayar adını ve kullandığınız önizleme veya ön üretim (staging) kökenlerini dahil edin; birden fazla kökeni virgülle ayırın. yapılandırma adımları bölümüne bakın.
Ön koşullar ve eşleme#
Bir ön üretim mağazası, modül geliştirme erişimi, Shop ID, Publishable Key ve içe aktarılmış SKU'lar hazırlayın. ideal.house kodunun temel ürün reference'ünden mi yoksa seçilen kombinasyon reference'ünden mi geldiğine karar verin. Her görselleştirilebilir kombinasyonun benzersiz ve boş olmayan bir referansı olmalıdır.
Minimal SDK sözleşmesi#
<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>
Ürün Kodu, içe aktarılmış ideal.house sku ile tam olarak eşleşmelidir. PrestaShop kimlik numaraları ürün referans kodlarının yerine kullanılamaz.
Bir modül yerleştirme noktası oluşturun#
Ürün sayfalarına içerik yerleştirmek için displayProductAdditionalInfo'ü ve yerel adaptörünüzü yüklemek için actionFrontControllerSetMedia'ü kaydedin. Hem Classic hem de Hummingbird, ürün ve hızlı görüntüleme şablonlarındaki görüntüleme kancasını (display hook) belgeler.
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)
);
}
Görüntüleme kancası geri çağırmasında, sunulan ürünü alın, referansını seçin, Smarty'ye atayın ve bir modül şablonu görüntüleyin. Değeri o şablonda kaçış işlemine (escape) tabi tutun:
<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>
Kısaltılmış PHP'ü eksiksiz bir üretim modülü olarak kopyalamayın: normal modül meta verilerini, sürüm uyumluluğunu, yapılandırma depolamayı, izin kontrollerini ve kaldırma temizliğini ekleyin.
SDK'ü bir kez yükleyin#
adapter.js içinde, modülünüzün temizlenmiş mağaza vitrini yapılandırmasındaki iki halka açık değeri okuduktan sonra tam SDK öğesini oluşturun:
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'yi, PrestaShop'in desteklediği JavaScript-tanım/yapılandırma mekanizmasıyla açıklayın. Asla bir Client Secret açıklamayın.
Kombinasyon değişiklikleri ve dinamik sayfalar#
Temanın ürün yenileme yaşam döngüsü ve üçüncü taraf kombinasyon modülleri değişkendir. Aktif tema seçilen kombinasyonu çözdüğü noktada, referansını bu müşteri köprüsüne iletin:
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);
}
Görüntülenen etiketlerden tahmin yürütmeyin. Hızlı görüntüleme, belgelenmiş kancası konumlarına dahildir, ancak aktif temanın kancayı gerçekten görüntülediğini doğrulayın. AJAX filtreleri veya yenilenen ürün parçaları için, kancanın yeni bir kapsayıcı öğe oluşturmasını sağlayın veya temanın belgelenmiş güncelleme geri çağırmasından sonra köprüyü çağırın.
Ürün verilerini içe aktarın#
PrestaShop ürün/kombinasyon reference'ünü ideal.house sku'e eşleyin. Ürün yükleme ve içe aktarma, iş durumu, listeleme, güncellemeler, silme ve hatalar ve yeniden denemeler kılavuzlarını kullanın. Herhangi bir PrestaShop Webservice dışa aktarımı, cron veya kancaya dayalı senkronizasyon, müşteri uygulamasıdır.
Doğrula ve kaldır#
Basit bir ürünü, her kombinasyonu, eksik/yinelenen ürün referans kodlarını, bilinmeyen bir ideal.house SKU'yi, hızlı görüntülemeyi, listeleri, çok ölçütlü filtreleme ile gezinmeyi, tarayıcı geçmişini, mobil cihazları, dil/para birimi satış bağlamlarını, onayı ve üretim önbellekleme işlevlerini test edin. Tek bir SDK isteği ve tam ürün referans kodu/SKU eşitliğini doğrulayın.
Modülü kaldırın veya devre dışı bırakın, kancalarının/yapılandırmasının/varlıklarının kaldırıldığından emin olun, Smarty ve mağaza vitrini önbelleklerini temizleyin ve SDK URL ile data-idealhouse-* işaretlemesinin (markup) bulunmadığını doğrulayın.