Описание
Wizart Web Visualizer представляет собой виртуальную примерочную как назависимое веб-приложение, которое внедряется в веб-сайт клиента, и служит для предоставления возможности производить наложение образцов отделочных материалов на фото предразмеченных заранее интерьеров и на фото личных интерьеров пользователей. Отображает информацию из PIM-системы(см.ниже) либо из базы данных клиента.
Пример приложения без интеграции: https://webdemo2.wizart.tech
Пример e-commerce с интеграцией: https://webdemo.wizart.tech
PIM-система (Product Information Management System)
представляет собой серверное приложение, хранящее в структурированном виде детальную информацию о продуктах и их текстуры, необходимые для произведения наложения в продуктах визуализации Wizart.
PIM Admin Tool (https://pim-admin.wizart.tech/login)
web-система администрирования, позволяющая клиенту возможность оперативно управлять данными, доступными для него в PIM системе и данными, отображающимися в продуктах визуализации Wizart. Клиент при помощи данного инструмента может проводить загрузку необходимых ему текстур в PIM систему и использовать их в приложениях визуализации Wizart. Для каждого клиента используется своя собственная Admin Tool.
Интеграция Wizart Web
Последовательность действий
Получение доступа к PIM Admin Tool (генерируется и выдается администратором Wizart) и API Token
Импорт необходимых данных в PIM через PIM Admin Tool (User manual for PIM admin , File upload requirements )
Встраивание приложения Wizart Web в сайт клиента
Тестирование интеграции
Публикация
Требование к специалистам
Начальные знания веб-верстки и разработки:
HTML
JavaScript
CSS
Требование к системе
Никаких специфических требований нет. Приложение может быть встроено на любой соверменный веб-сайт.
Примеры возможных мест интеграции
Стили и элементы, открывающие Wizart Web Visualizer могут быть любыми на усмотрение клиента.
Ниже приведены некоторые примеры возможного расположения элементов.
Главное меню:
Страница списка продуктов:
Страница продукта:
Встраивание приложения Wizart Web Visualizer в сайт клиента
Вам потребуется API Token (генерируется и выдается администратором Wizart) - api_token
В исходном файле необходимой страницы добавьте требуемый код в теге
<body>
, как указано в листинге ниже.
Поскольку в Wizart Web Visualizer предусмотрена возможность открытия и визуализации с конкретным продуктом (SKU), уделите пожалуйста внимание тому, как это дополнительно реализовано.
Для корректного отображения Wizart Web Visualizer свойство CSS z-index для тега с id wizart-fitting-room-object
должно быть больше чем z-index у всех остальных всплывающих окон на сайте.
<body> ... <button id="wizart-fitting-room-button" onClick="openFittingRoom()"> Fitting room </button> <object id="wizart-fitting-room-object" role="dialog" aria-label="Wizart Fitting Room." type="text/html" > </object> <style> #wizart-fitting-room-object { z-index: 2147483647 !important; display: none; position: fixed !important; top: 0 !important; left: 0 !important; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); } #wizart-fitting-room-object.active { display: block; } </style> <script src="./wizart-integration.js"></script> </body>
2. Используя следующий листинг ниже, создайте js-файл с именем wizart-integration.js: и загрузите его к существующим исходным файлам клиентского веб-приложения.
// todo get api token from Wizart. const api_token = 'CLIENT_SPECIFIC_API_TOKEN'; const server_address = 'https://pim-client.wizart.tech'; // bba (back button action) param is used to add back button to wizart component const fittingRoomEndpoint = server_address + '/fitting-room' + '?api_token=' + api_token + '&bba=true' ; function openFittingRoom (searchQuery) { const componentEndpoint = searchQuery ? fittingRoomEndpoint + searchQuery : fittingRoomEndpoint; let fittingRoomObject = document.getElementById('wizart-fitting-room-object'); const fittingRoomObjectContainer = fittingRoomObject.parentElement; fittingRoomObject.setAttribute('data', componentEndpoint); // object clonning is necessary as some browsers does not render "object" twice after changing data attribute const clonnedFittingRoomObject = fittingRoomObject.cloneNode(true); fittingRoomObjectContainer.appendChild(clonnedFittingRoomObject); fittingRoomObject.remove(); clonnedFittingRoomObject.classList.add('active'); // should be added to avoid duplicating scrollbars document.getElementsByTagName('html')[0].style.overflow = 'hidden'; } // bba event - fired when back button is clicked at wizart component window.addEventListener('message', function (event) { if (~event.origin.indexOf(server_address)) { // exactly 'close_overlay' as it's sent from wizart component if (event.data === 'close_overlay') { // return overflow of target page to initial state document.getElementsByTagName('html')[0].style.overflow = 'auto'; document.getElementById('wizart-fitting-room-object').classList.remove('active'); } } });
3. (ОПЦИЯ) Для замены логотипа wizart на свой необходимо установить поле logo_path
со ссылкой на устанавливаемый логотип. Логотип должен занимать всю высоту картинки без отступов сверху и снизу. Для этого необходимо заменить кусок кода описанный в пункте 2
const fittingRoomEndpoint = server_address + '/fitting-room' + '?api_token=' + api_token + '&bba=true' ;
на этот
const fittingRoomEndpoint = server_address + '/fitting-room' + '?api_token=' + api_token + '&bba=true' + '&logo_path=LINK_TO_YOUR_LOGO' ;
4. Сохраните и перенесите все изменения в рабочее окружении клиентского сайта.
5. Проверьте работоспособность интеграции.
Интеграция считается завершенной.
В случае возникновения дополнительных вопросов и проблем, пожалуйста обратитесь в техническую поддержку Wizart: developer@wizart.tech