Ideal House
Перейти к содержанию

Интеграция Shopware 6#

Добавьте Room Visualizer через плагин Shopware 6 или пользовательскую тему и используйте номер товара выбранного канала продаж в качестве кода товара ideal.house.

Статус проверки: Документация витрины Shopware проверена 7 сентября 2026 г. Магазин клиента для тестирования был недоступен. Этот способ предназначен для стандартной витрины Shopware 6 на Twig; витринам с отдельным или составным фронтендом нужен адаптер для используемого фреймворка.

Перед загрузкой SDK: Откройте Панель управления → Настройки, добавьте адрес источника вашего магазина в Allowed Origins (CORS) и нажмите Сохранить. Укажите фактическое доменное имя опубликованного сайта, а также используемые адреса источников для предпросмотра и тестирования; несколько адресов разделяйте запятыми. См. инструкцию по настройке.

Предварительные требования#

Подготовьте магазин для разработки, доступ к исходному коду плагина/темы, тестовый канал продаж, Shop ID, Publishable Key и импортированные номера товаров. Работайте в плагине или дочерней теме, а не изменяя ядро витрины или тему поставщика.

Минимальные требования для подключения 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>

Точно сопоставьте Shopware productNumber с ideal.house sku. SDK не запрашивает API магазина Shopware.

Расширьте шаблон товара#

В плагине расширьте шаблон или блок Twig рядом с виджетом покупки в установленной версии Shopware. Создайте внешний контейнер, используя текущий товар канала продаж:

twig
{% sw_extends '@Storefront/storefront/component/buy-widget/buy-widget-form.html.twig' %}

{% block buy_widget_buy_container %}
    {{ parent() }}
    {% if page.product.productNumber %}
        <div class="idealhouse-host">
            <div
                data-idealhouse-button-container
                data-product-code="{{ page.product.productNumber|escape }}">
            </div>
        </div>
    {% endif %}
{% endblock %}

Имена блоков и контекст могут меняться между релизами и темами Shopware. Осмотрите шаблон активной версии, выберите наиболее узкий блок расширения и убедитесь, что page.product доступен там. Для карточки товара используйте контекст товара карточки.

Загрузите SDK#

Плагины Shopware могут добавлять JavaScript витрины и переопределять шаблоны. Добавьте локальную точку входа для кода витрины, которая создаёт скрипт 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 = '<SHOP_ID>';
  script.dataset.publishableKey = '<PUBLISHABLE_KEY>';
  document.head.append(script);
}

Скомпилируйте ресурсы витрины и активируйте плагин/тему, используя процесс для вашей версии Shopware. Используйте значения конфигурации для учётных данных в переиспользуемом плагине; отображайте только безопасный для браузера Publishable Key.

Варианты и динамический контент#

В Shopware покупаемые варианты часто представлены как отдельные товары со своим productNumber и каноническим URL. При полной навигации серверный рендеринг Twig естественным образом выводит новый код. Если ваша тема переключает варианты без перезагрузки страницы, подключите её задокументированный колбэк завершения к:

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

Этот связующий код реализует клиент, поскольку темы и сторонние плагины вариантов различаются. После загрузки нового DOM в списках, обновляемых фильтрами или выдвижными панелями, нужно создавать или пересоздавать пустые контейнеры. Не клонируйте дочерние элементы, созданные SDK.

Импорт товаров#

Экспортируйте productNumber каждого товара или варианта Shopware как sku в ideal.house. Используйте загрузку товаров, затем руководства по импорту товаров, статусу задачи, получению списка товаров, обновлению товаров, удалению товара и ошибкам и повторным попыткам.

Любая синхронизация через API магазина или API администрирования, запланированная задача либо интеграция с конструктором потоков или вебхуками реализуется отдельным кодом клиента.

Проверка и удаление#

Проверьте родительский товар, каждый вариант с поддержкой визуализации, отсутствующие и неизвестные номера товаров, списки, фильтры, выдвижные панели и быстрый просмотр, кнопки «Назад»/«Вперёд» браузера, мобильную вёрстку, кеширование и прокси, а также все нужные каналы продаж и домены. Убедитесь, что выполняется один запрос SDK и productNumber точно совпадает с SKU.

Для удаления деактивируйте/удалите плагин или удалите Twig и JavaScript дочерней темы, пересоберите ресурсы витрины, очистите кэши и убедитесь, что запрос SDK или контейнер отсутствуют.

Официальные ссылки платформы#