Инструкции по работе с платформой Hotlist.biz

Бұрын
Подсказки по работе с системой вы можете найти при раскрытии разделов для их управления, а также при наведении на иконку

Кратко о платформе

Предпринимателям и продавцам

Предпринимателям и продавцам

На платформе Hotlist.biz Вы можете бесплатно создать сайт или интернет-магазин, оформить индивидуальный дизайн, наполнять его уникальным контентом (полная поддержка HTML). Вы сможете загружать файлы и использовать множество встроенных модулей для вашего удобства. У Вас будет собственная статистика продаж, отслеживание источников заказов, A/B тестинг, свои способы доставки, возможность создавать поисковый фильтр (как на Яндекс Маркет) для разных групп товаров, создавать свои рубрики и рубрики-производителей, вести свой блог, новостную ленту, собирать базу e-mail подписчиков, импортировать/экспортировать товары и услуги, добавлять менеджеров на ваш сайт (совместный доступ), создавать базу клиентов с индивидуальными скидками, использовать платежные системы, выгружать данные с сайта в xml формате, создавать свои формы (Form), включить автоматический обмен данными с 1С и другими торговыми программами и многое-многое другое…

Предпринимателям и продавцам

  • После регистрации в нашем каталоге вашего магазина/предприятия вы сможете добавить в него до 300 товаров бесплатно, при этом можно расширить лимит добавляемых продуктов. (Лимит до 1000 продуктов можно увеличить бесплатно)
  • В свойствах товара можно указать его цену, валюту для оплаты, гарантийный срок, ответственного за гарантию, детальное описание, изображение товара, производителя, вкладки с дополнительными опциями, индивидуальные характеристики товара и прочее.
  • При регистрации компании или (если вы не подключили домен при регистрации, то) после добавления первых 20 товаров у вас появится возможность БЕСПЛАТНО самостоятельно изменить собственный домен второго и третьего уровней (Адрес.hotlist.biz). Домен так же можно запросить и без добавления 20 товаров, бесплатно. При подключении персонального домена у вас откроется больше возможностей для продвижения вашего магазина в интернете.

    • На Hotlist.biz Вы можете самостоятельно сконструировать сайт вашей компании или интернет-магазин
    • Вы сможете создавать свои меню и необходимое количество страниц.
    • Вы сможете корректировать и изменять дизайн вашего сайта.
    • Вы сможете размещать на сайте HTML коды
    • Вы сможете вести блоги и новостные ленты, а также транслировать RSS ленты.
    • Вы сможете загружать свои файлы, отслеживать заказы, и общаться с заказчиком прямо на сайте.

  • Предприятие/Пользователь разместивший товар несет самостоятельно ответственность за содержимое описания, цен и наличие товаров а также за правдивость предоставленной им информации.
  • Внимание, запрещено создавать дубликаты предприятий/магазинов. За такое нарушение профиль пользователя и его предприятия блокируются навсегда
  • Обязательно указывайте соответствующую товару/услуге рубрику, иначе товар не будет отображаться в общем каталоге. Вы так же можете запросить отключение автоматического добавления ваших товаров в международный каталог, через форму обратной связи.
  • Запрещается добавлять товары и услуги нарушающие законодательство вашей страны.

Международный каталог товаров, услуг и предприятий

Правила каталога

При создании сайта или добавлении товаров и услуг, она автоматически размещаются в нашем Международном каталоге товаров, услуг и предприятий.
При добавлении товаров на ваш сайт, вы предварительно указываете рубрику в нашем каталоге (более 50000 рубрик). Если вы не хотите, что бы ваш товар отображался в нашем каталоге, то указываете рубрику "прочее". Однако если вы хотите участвовать в нашем каталоге, то обязательно правильно указывайте рубрику товара.


Нарушение правил размещения товаров в каталоге

Если в ваших продуктах есть ошибки, то они могут быть скрыты в нашем международном каталоге. Это никак не влияет на работу вашего сайта, а лишь увеличивает потенциальную возможность продажи вашего товара/услуги. Об ошибках в ваших товарах и услугах вас могут проинформированы пользователями нашего международного каталога, а также наши менеджеры. Магазины, в которых добавлено множество продуктов с ошибками, могут быть полностью исключены из нашего каталога. При этом на вашем сайте продукты не будут скрыты.

Информация о том, что у ваших продуктов обнаружена неверная информация, может быть ошибочной, так как данный запрос могут отправлять все посетители нашего международного каталога. Если информация о вашем продукте верна, то просто проигнорируйте запрос.

Видеоинструкции

Видеоинструкции

Структура платформы и примеры работы с элементами

Как создавать сайт? Первые шаги и Пример работы с платформой

Как импортировать товары?

Управление слайдером

Управление сайтом

Админ-центр/Админ-панель

Администрирование сайта происходит в Админ-Центре (Открыть Админ-центр) или через Админ-панель, которая расположена слева, после авторизации на сайте.

Вход администратору

Путь для входа администратору сайта:
hotlist.biz/admin/
Если вы скроете меню авторизации на сайте, то для входа администратора достаточно ввести в адресной строке путь указанный выше.
Пример создания ссылки для аутентификации пользователей

Совместный доступ

Для того, чтобы разрешить управление сайтом другому пользователю, вам необходимо добавить Менеджера и задать права доступа.

Основные модули

Типа данных/страниц

Страницы


Страница - блок располагающийся в центре сайта, в области для контента, который может содержать любые HTML данные (HTML, XHTML, JAVASCRIPT, CSS или другие).

Ajax загрузка контента страницы.

Ajax загрузка контента страницы.



Ссылка имеющая class ajax_load_page будет открывать Ajax контент внутри блока, заданного в атрибуте data-content-block.
Путь к загружаемой странице задан в параметре href.
Путь к странице может быть относительным, или полным, с http.
Вы так же можете использовать собственные скрипты, передавая GET или POST параметр p, с именем
(или полным адресом) страницы, по адресу /ajax.php

Кроме того, возможно использование прямых запросов без использования Ajax.
Например, для загрузки данных в iframe. Путь такой же как и при использовании Ajax.

Скрипт загрузки данных во всплывающем окне:
Скрипт всплывающего окна с загрузкой Ajax контента


Каталог статей


Каталог статей - такой же блок как и страницы, которые дополнительно имеют краткие описания, которые отображаются в виде списка, со ссылкой для просмотра полного текста статьи, а также возможностью разделять списки статей по Категориями.
Списки статей можно отображать не только внутри категорий, но и геренировать собственные списки.

Ajax загрузка контента статьи

Ajax загрузка контента статьи.



Ссылка имеющая class ajax_load_blog будет открывать Ajax контент внутри блока, заданного в атрибуте data-content-block.
Путь к загружаемой странице задан в параметре href.
Путь к странице может быть относительным, или полным, с http.
Вы так же можете использовать собственные скрипты, передавая GET или POST параметр blog_cat_p, с полным адресом
статьи, по адресу /ajax.php

Кроме того, возможно использование прямых запросов без использования Ajax.
Например, для загрузки данных в iframe. Путь такой же как и при использовании Ajax.

Скрипт загрузки данных во всплывающем окне:
Скрипт всплывающего окна с загрузкой Ajax контента

Пример Ajax скрипта загрузки собственного списка статей

Пример Ajax загрузки статьи в JSON формате

Блок/Меню


Блок/Меню – это блок, в который вы сможете вставлять любые HTML коды. Также вы сможете использовать меню с заранее заданными функциями, например, корзина заказов, поисковый фильтр, хиты продаж, последние статьи и другие.

Блок/Меню можно использовать для создания собственного стиля/дизайна сайта. Например, вы можете создать Шапку сайта, разместить в ней необходимые элементы (Логотип, Контакты, Ссылки навигации по сайту, Поисковую форму и прочее) и написать для них CSS стили в редакторе дизайна. С помощью блоков/меню вы можете размещать скрипты, в том числе и в мета тегах, а также включить/выключать отображение этих данных на определенных страницах или устройствах. В большинстве случаев, вам достаточно использовать Header/Шапку и Footer/Низ сайта, а также, например, левый или правый Блок/Меню для размещения поискового фильтра. Скрипты сайта вы можете разместить в одном Блоке/Меню, и расположить его, например, в Служебных тегах.

Блок меню можно расположить в 7 основных частях сайта:
  • «Шапка сайта (Header)» – блок шапки сайта, Отображается над основным блоком с контентом, внутри элемента «#hotengine-header».
  • «Низ сайта (Footer)» - блок низа сайта, Отображается под основным блоком с контентом, внутри элемента «#hotengine-footer».
  • «Справа» - блок отображается справа, возле основного блока с котентом, и не выходит за пределы контента.
  • «Слева» - блок отображается слева, возле основного блока с котентом, и не выходит за пределы контента.

  • «Вверху» - блок отображается вверху контента, и не выходит за его область.
  • «Вверху > cat_tree» - блок отображается вверху, сразу под деревом категорий
  • «Внизу» - блок отображается внизу контента, и не выходит за его область.

  • «Служебные теги перед тегом Body (Header Meta)» - блок располагается под служебными Meta тегами, и может использоваться для вставки JavaScript, Meta-tags и других служебных данных.

  • Ко всем меню будет добавлен class позиции, а также уникальный menu_id. Основная разметка блоков сайта
    Для создания расширенной версии мобильного меню (в стиле приложения), используйте «Конструктор мобильного меню». Конструктор позволяет создать многоуровневое меню, всплывающий «Поисковый фильтр», а также собственные иконки.


Пример использования блоков и меню


Магазин


Магазин может содержать организованный список товаров с кнопками для его заказа. В магазине предусмотрено множество дополнительных данных, разделение по производителям, категориям, типам товаров, характеристикам и прочим свойствам.

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

Списки товаров можно отображать не только внутри категорий, но и на страницах, блоках/меню, статьях. Для этого создайте страницу, и в тексте, добавьте код Генератора блока/меню, слайдер с товарами магазина

Списки категорий можно отображать на страницах или блоках/меню. Для этого создайте страницу или Блок/Меню, и в тексте, добавьте код Виджета с категориями магазина


Добавление товаров


Ajax загрузка товара

Ajax загрузка товара.



Ссылка имеющая class ajax_load_shop будет открывать Ajax контент внутри блока, заданного в атрибуте data-content-block.
Путь к загружаемой странице задан в параметре href.
Путь к странице может быть относительным, или полным, с http.
Вы так же можете использовать собственные скрипты, передавая GET или POST параметр shop_cat_p, с полным адресом
товара, по адресу /ajax.php

Кроме того, возможно использование прямых запросов без использования Ajax.
Например, для загрузки данных в iframe. Путь такой же как и при использовании Ajax.
Скрипты добавления товара в корзину нужно подгружать дополнительно, если вы используете iframe.

Скрипт загрузки данных во всплывающем окне:
Скрипт всплывающего окна с загрузкой Ajax контента

Ajax загрузка отзывов к товарам

Пример Ajax скрипта загрузки списка товаров + «Генератор списка товаров»

Ajax загрузка корзины

Ajax загрузка корзины.



Ссылка имеющая class ajax_load_cart будет открывать Ajax контент внутри блока, заданного в атрибуте data-content-block.
Для загрузики корзины достаточно выполнить обращение к странице «/ajax.php?cart&load_cart_ajax»


Пример Ajax скрипта загрузки корзины при наведении курсора мышки

Ajax загрузка списка изображений карточки товара

Ajax загрузка списка всех категорий в JSON формате

Ajax загрузка списка всех категорий в JSON формате.

Для получения списка всех категорий магазина достаточно выполнить запрос по адресу /ajax.php?json&shop_categories&start=0&param=:products

Где
  • &start= - ID категории с которой начать отображение.
  • &param= параметры, которые можно получить в Виджете с категориями (не обязательный параметр)
  • Запрос работает только с указанием вашего домена, например http://example.com/ajax.php?json&shop_categories&start=0

Пример результата: {"id":"ID категории","parentID":"ID родительской категории","child_cat":"Количество вложенных категорий","child_items":"Количество товаров в категории","image":"Путь к изображению категории","title":"Название категории"},

Ajax загрузка товара в JSON формате

Ajax загрузка товара в JSON формате.

Для получения данных карточек товаров в JSON формате, достаточно выполнить запрос по адресу /ajax.php?json&shop_products&id=0

При выгрузке товаров можно указать параметры сортировки и фильтрации по следующим параметрам:
  • id - ID карточки товара (одно или несколько значений, через запятую).
  • pers_shop_cat_page_catid - ID категории магазина (одно или несколько значений, через запятую)
  • producer – производитель (одно или несколько значений, через запятую)
  • collection - коллекция (одно или несколько значений, через запятую)
  • sort_by – сортировка
  • order_by – сортировка
  • sort_instock_priority – сортировка приоритет
  • price_from – цена от
  • price_to – цена до
  • stock - наличие

Запрос работает только с указанием вашего домена, например http://example.com/ajax.php?json&shop_products&id=0


Демонстрация настройки категорий и навигационного меню


Форма (Form)

Форма - раздел документа, позволяющий пользователю вводить информацию для последующей обработки системой. На платформе HotList.biz вы сможете создавать полноценные формы, с привязкой имен, id и class'ов для полей. Данные форм можно обрабатывать на нашей платформе или отправлять на любой другой ресурс.

Пример создания и размещения формы

Ajax загрузка форм (всплывающие формы)

Как создать форму обратной связи?
Доступно 3 способа создания формы.
  1. Наиболее гибкий способ - это открыть конструктор форм, и создать форму, задав нужные поля. Все инструкции доступны в конструкторе формы.
  2. Создать функциональную страницу ( feedback ) при открытии которой будет отображаться стандартная форма обратной связи.
  3. Использовать всплывающую форму обратной связи, которая создается следующим кодом:

    Code: html
    <a class="hotengine-dialog-email" data-site="XXXX" href="javascript://">Написать нам</a>


    class="hotengine-dialog-email" - обозначает, что кнопка для всплытия формы обратной связи, а data-site="XXXX" - ID сайта.
    XXXX замените на ID вашего сайта, который можете узнать при наведении на кнопку АДМИН ПАНЕЛЬ.

    Так же можно указать название для всплывающего окна, и текст на кнопке "Закрыть". Для этого добавьте data-close-button="Закрыть" и data-title="Обратная связь" к ссылке с классом email.
    Ширину и высоту окна можно задать при помощи data-width="600" и data-height="640".
    Текст кнопок в форме можно задать при помощи атрибутов data-send-button="Отправить" и data-clear-button="Очистить"
    Изменить названия полей для ввода, вы можете при помощи CSS стилей (текст вписан в виде content, в css превсдо классы after).

    Пример

    /*FORM TEXT TITTLES*/

    Code: CSS
    
    

    :lang(ru) .hotengine-form-feedback-text-title:after{ content:"Текст:"; } :lang(en) .hotengine-form-feedback-text-title:after{ content:"Text:"; } :lang(uk) .hotengine-form-feedback-text-title:after{ content:"Текст:"; } :lang(de) .hotengine-form-feedback-text-title:after{ content:"Text:"; } :lang(es) .hotengine-form-feedback-text-title:after{ content:"Texto:"; } :lang(fr) .hotengine-form-feedback-text-title:after{ content:"Texte:"; } :lang(kk) .hotengine-form-feedback-text-title:after{ content:"Мәтін:"; } :lang(be) .hotengine-form-feedback-text-title:after{ content:"Тэкст:"; } :lang(ro) .hotengine-form-feedback-text-title:after{ content:"Text:"; } :lang(tr) .hotengine-form-feedback-text-title:after{ content:"Metin:"; } :lang(it) .hotengine-form-feedback-text-title:after{ content:"Testo:"; } :lang(sk) .hotengine-form-feedback-text-title:after{ content:"Text:"; } :lang(da) .hotengine-form-feedback-text-title:after{ content:"Tekst:"; } :lang(pl) .hotengine-form-feedback-text-title:after{ content:"Tekst:"; } :lang(zh) .hotengine-form-feedback-text-title:after{ content:"文本:"; } :lang(hi) .hotengine-form-feedback-text-title:after{ content:"पाठ:"; } :lang(ar) .hotengine-form-feedback-text-title:after{ content:"النص:"; } :lang(pt) .hotengine-form-feedback-text-title:after{ content:"Texto:"; } :lang(bn) .hotengine-form-feedback-text-title:after{ content:"টেক্সট:"; }

    :lang(ru) .hotengine-form-feedback-yourname-title:after{ content:"Ваше имя:"; } :lang(en) .hotengine-form-feedback-yourname-title:after{ content:"Your name:"; } :lang(uk) .hotengine-form-feedback-yourname-title:after{ content:"Ваше ім'я:"; } :lang(de) .hotengine-form-feedback-yourname-title:after{ content:"Ihr name:"; } :lang(es) .hotengine-form-feedback-yourname-title:after{ content:"Su nombre:"; } :lang(fr) .hotengine-form-feedback-yourname-title:after{ content:"Votre nom:"; } :lang(kk) .hotengine-form-feedback-yourname-title:after{ content:"Сіздің атыңыз:"; } :lang(be) .hotengine-form-feedback-yourname-title:after{ content:"Ваша імя:"; } :lang(ro) .hotengine-form-feedback-yourname-title:after{ content:"Numele dvs.:"; } :lang(tr) .hotengine-form-feedback-yourname-title:after{ content:"Adınız:"; } :lang(it) .hotengine-form-feedback-yourname-title:after{ content:"Il tuo nome:"; } :lang(sk) .hotengine-form-feedback-yourname-title:after{ content:"Vaše meno:"; } :lang(da) .hotengine-form-feedback-yourname-title:after{ content:"Dit navn:"; } :lang(pl) .hotengine-form-feedback-yourname-title:after{ content:"Twoje imię:"; } :lang(zh) .hotengine-form-feedback-yourname-title:after{ content:"你的名称:"; } :lang(hi) .hotengine-form-feedback-yourname-title:after{ content:"आपका नाम:"; } :lang(ar) .hotengine-form-feedback-yourname-title:after{ content:"اسمك:"; } :lang(pt) .hotengine-form-feedback-yourname-title:after{ content:"Seu nome:"; } :lang(bn) .hotengine-form-feedback-yourname-title:after{ content:"আপনার নাম:"; }

    :lang(ru) .hotengine-form-feedback-yoursoname-title:after{ content:"Ваша фамилия:"; } :lang(en) .hotengine-form-feedback-yoursoname-title:after{ content:"Your name:"; } :lang(uk) .hotengine-form-feedback-yoursoname-title:after{ content:"Ваше прізвище:"; } :lang(de) .hotengine-form-feedback-yoursoname-title:after{ content:"Ihr name:"; } :lang(es) .hotengine-form-feedback-yoursoname-title:after{ content:"Su nombre:"; } :lang(fr) .hotengine-form-feedback-yoursoname-title:after{ content:"Votre nom:"; } :lang(kk) .hotengine-form-feedback-yoursoname-title:after{ content:"Сіздің аты-жөні:"; } :lang(be) .hotengine-form-feedback-yoursoname-title:after{ content:"Ваша прозвішча:"; } :lang(ro) .hotengine-form-feedback-yoursoname-title:after{ content:"Numele dumneavoastră:"; } :lang(tr) .hotengine-form-feedback-yoursoname-title:after{ content:"Adınız:"; } :lang(it) .hotengine-form-feedback-yoursoname-title:after{ content:"Il tuo nome:"; } :lang(sk) .hotengine-form-feedback-yoursoname-title:after{ content:"Vaše meno:"; } :lang(da) .hotengine-form-feedback-yoursoname-title:after{ content:"Dit navn:"; } :lang(pl) .hotengine-form-feedback-yoursoname-title:after{ content:"Imię i nazwisko:"; } :lang(zh) .hotengine-form-feedback-yoursoname-title:after{ content:"你的名称:"; } :lang(hi) .hotengine-form-feedback-yoursoname-title:after{ content:"आपका नाम:"; } :lang(ar) .hotengine-form-feedback-yoursoname-title:after{ content:"اسمك:"; } :lang(pt) .hotengine-form-feedback-yoursoname-title:after{ content:"O seu apelido:"; } :lang(bn) .hotengine-form-feedback-yoursoname-title:after{ content:"আপনার নাম:"; }

    :lang(ru) .hotengine-form-feedback-yourphone-title:after{ content:"Ваш телефон:"; } :lang(en) .hotengine-form-feedback-yourphone-title:after{ content:"Your phone:"; } :lang(uk) .hotengine-form-feedback-yourphone-title:after{ content:"Ваш мобільний телефон:"; } :lang(de) .hotengine-form-feedback-yourphone-title:after{ content:"Ihr Telefon:"; } :lang(es) .hotengine-form-feedback-yourphone-title:after{ content:"Su teléfono:"; } :lang(fr) .hotengine-form-feedback-yourphone-title:after{ content:"Votre téléphone:"; } :lang(kk) .hotengine-form-feedback-yourphone-title:after{ content:"Телефон:"; } :lang(be) .hotengine-form-feedback-yourphone-title:after{ content:"Ваш тэлефон:"; } :lang(ro) .hotengine-form-feedback-yourphone-title:after{ content:"Telefonul dvs.:"; } :lang(tr) .hotengine-form-feedback-yourphone-title:after{ content:"Telefon:"; } :lang(it) .hotengine-form-feedback-yourphone-title:after{ content:"Il telefono:"; } :lang(sk) .hotengine-form-feedback-yourphone-title:after{ content:"Váš telefón:"; } :lang(da) .hotengine-form-feedback-yourphone-title:after{ content:"Din telefon:"; } :lang(pl) .hotengine-form-feedback-yourphone-title:after{ content:"Telefon:"; } :lang(zh) .hotengine-form-feedback-yourphone-title:after{ content:"你的电话:"; } :lang(hi) .hotengine-form-feedback-yourphone-title:after{ content:"अपने फोन:"; } :lang(ar) .hotengine-form-feedback-yourphone-title:after{ content:"الهاتف:"; } :lang(pt) .hotengine-form-feedback-yourphone-title:after{ content:"Seu telefone:"; } :lang(bn) .hotengine-form-feedback-yourphone-title:after{ content:"আপনার ফোন:"; }

    :lang(ru) .hotengine-form-feedback-youremail-title:after{ content:"Ваш e-mail:"; } :lang(en) .hotengine-form-feedback-youremail-title:after{ content:"Your e-mail:"; } :lang(uk) .hotengine-form-feedback-youremail-title:after{ content:"Ваш e-mail:"; } :lang(de) .hotengine-form-feedback-youremail-title:after{ content:"Ihre e-mail:"; } :lang(es) .hotengine-form-feedback-youremail-title:after{ content:"Su e-mail:"; } :lang(fr) .hotengine-form-feedback-youremail-title:after{ content:"Votre e-mail:"; } :lang(kk) .hotengine-form-feedback-youremail-title:after{ content:"Сіздің e-mail:"; } :lang(be) .hotengine-form-feedback-youremail-title:after{ content:"Ваш e-mail:"; } :lang(ro) .hotengine-form-feedback-youremail-title:after{ content:"Adresa de e-mail:"; } :lang(tr) .hotengine-form-feedback-youremail-title:after{ content:"E-mail:"; } :lang(it) .hotengine-form-feedback-youremail-title:after{ content:"Il tuo indirizzo e-mail:"; } :lang(sk) .hotengine-form-feedback-youremail-title:after{ content:"E-mail:"; } :lang(da) .hotengine-form-feedback-youremail-title:after{ content:"Din e-mail:"; } :lang(pl) .hotengine-form-feedback-youremail-title:after{ content:"Twój e-mail:"; } :lang(zh) .hotengine-form-feedback-youremail-title:after{ content:"你的电子邮件:"; } :lang(hi) .hotengine-form-feedback-youremail-title:after{ content:"अपने ई-मेल:"; } :lang(ar) .hotengine-form-feedback-youremail-title:after{ content:"البريد الإلكتروني:"; } :lang(pt) .hotengine-form-feedback-youremail-title:after{ content:"Seu e-mail:"; } :lang(bn) .hotengine-form-feedback-youremail-title:after{ content:"আপনার ই-মেইল:"; }

    :lang(ru) .hotengine-form-feedback-youraddress-title:after{ content:"Ваш адрес:"; } :lang(en) .hotengine-form-feedback-youraddress-title:after{ content:"Your address:"; } :lang(uk) .hotengine-form-feedback-youraddress-title:after{ content:"Ваша адреса:"; } :lang(de) .hotengine-form-feedback-youraddress-title:after{ content:"Ihre Adresse:"; } :lang(es) .hotengine-form-feedback-youraddress-title:after{ content:"Su dirección:"; } :lang(fr) .hotengine-form-feedback-youraddress-title:after{ content:"Votre adresse:"; } :lang(kk) .hotengine-form-feedback-youraddress-title:after{ content:"Сіздің мекен-жайы:"; } :lang(be) .hotengine-form-feedback-youraddress-title:after{ content:"Ваш адрас:"; } :lang(ro) .hotengine-form-feedback-youraddress-title:after{ content:"Adresa:"; } :lang(tr) .hotengine-form-feedback-youraddress-title:after{ content:"Adresi:"; } :lang(it) .hotengine-form-feedback-youraddress-title:after{ content:"Indirizzo:"; } :lang(sk) .hotengine-form-feedback-youraddress-title:after{ content:"Adresa:"; } :lang(da) .hotengine-form-feedback-youraddress-title:after{ content:"Din adresse:"; } :lang(pl) .hotengine-form-feedback-youraddress-title:after{ content:"Adres:"; } :lang(zh) .hotengine-form-feedback-youraddress-title:after{ content:"你的地址:"; } :lang(hi) .hotengine-form-feedback-youraddress-title:after{ content:"आपके पते की:"; } :lang(ar) .hotengine-form-feedback-youraddress-title:after{ content:"العنوان الخاص بك:"; } :lang(pt) .hotengine-form-feedback-youraddress-title:after{ content:"O seu endereço:"; } :lang(bn) .hotengine-form-feedback-youraddress-title:after{ content:"আপনার ঠিকানা:"; }

    /*FORM TEXT TITTLES*/



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


Комментарии / Отзывы

Комментарии можно оставлять на всех типах страниц. Комментарии имеют гибкие настройки, с возможностью указывать их как к определенному разделу на сайте, так и к отдельной странице. К комментариям возможно включить "Оценку", а также защитное изображение "Captcha". Для карточек товаров реализована отдельная форма комментариев - отзывы.

Ajax загрузка комментариев

Ajax загрузка комментариев.



Элемент имеющий class "ajax_load_comments" будет открывать Ajax контент внутри блока, заданного в атрибуте data-content-block.
ID загружаемой страницы задан в параметре data-page-id. Дополнительно можно отфильтровать комментарии по рейтингу, передав переменную starrating_quality, например starrating_quality=5.

Для комментариев используются 4 параметра:
  • hotengine_comments_hotengine_page_id - ID страницы.
  • nc - номер страницы комментариев.
  • snc_on_page - количество комментариев на странице (от 1 до 50).
  • hotengine_comments_page_type - тип страницы.

Типы доступных страниц (обязательный параметр):
  • page - страницы
  • shop_category - категории магазина
  • shop_collection - коллекции магазина
  • shop_producer - производители
  • blog_category - категория каталога статей
  • blog_page - статья


Вы можете использовать собственные скрипты, передавая GET или POST параметры hotengine_comments_hotengine_page_id и hotengine_comments_page_type, по адресу /ajax.php. nc - номер страницы, snc_on_page - количество комментариев на странице.

Для получения данных в JSON формате, достаточно добавить GET/POST переменную json.

Ajax загрузка отзывов к товарам

Ajax загрузка отзывов к товарам.



Ссылка имеющая class ajax_load_shop_comments будет открывать Ajax контент внутри блока, заданного в атрибуте data-content-block.
Путь к загружаемой странице задан в параметре href.

Для отзывов используются три параметра:
hotengine_shop_comments_shop_cat_page_id - ID товара.
nc - номер страницы комментариев.
snc_on_page - количество комментариев на странице (от 1 до 50).
Путь к странице может быть относительным, или полным, с http. Путь должен быть либо путем к товару, либо можно сразу указать ID товара, отзывы к которому необходимо загрузить.
Вы так же можете использовать собственные скрипты, передавая GET или POST параметр hotengine_shop_comments_shop_cat_page_id, с полным адресом
товара (или ID товара), по адресу /ajax.php. nc - номер страницы, snc_on_page - количество комментариев на странице. Дополнительно можно отфильтровать комментарии по рейтингу, передав переменную starrating_quality, например starrating_quality=5.

Кроме того, возможно использование прямых запросов без использования Ajax.
Например, для загрузки данных в iframe. Путь такой же как и при использовании Ajax.
Скрипты добавления товара в корзину нужно подгружать дополнительно, если вы используете iframe.

Скрипт загрузки данных во всплывающем окне:
Скрипт всплывающего окна с загрузкой Ajax контента
Для получения данных в json формате, достаточно добавить GET/POST переменную json.


Multilanding / Динамические страницы

Multilanding - это автоматическое изменение контента страницы в зависимости от ключевого запроса посетителя, установленных в рекламе переменных или его местоположения.

Как использовать Multilanding?


На платформе HotList.biz вы можете настроить Multilanding страницы так, что бы при совпадении (части или полного) запроса, менялось содержимое целых блоков на странице (на страницах, в товарах и в меню). В качестве запроса могут использоваться данные поискового запроса (определяемые автоматически), а также ваши собственные установленные GET переменные. Например, при добавлении UTM меток в рекламных объявлениях, вы можете использовать метку utm_term, таким образом Multilanding страница будет активна для GET переменной utm_term. Данные об источнике перехода хранятся не более 24 часов. При этом данные об источнике перехода по партнерской программе хранятся 120 дней.


Пример работы с Блоком/Меню

Пример использования Блока/Меню для подтверждения сайта в Центре Вебмастеров.
Для подтверждения сайта в центре вебмастеров (например Google или Яндекс) необходимо добавить <meta> код.
Для этого создайте Блок/Меню, вставьте нужный meta код и расположите его в служебных тегах. После чего ваш сайт будет подтвержден.
Таким же образом вы можете создать собственную шапку и низ сайта. В меню вы можете вставлять практически любой HTML код.
Также в блоки и меню можно вставлять JavaScript и CSS — система сама преобразует их в отдельные файлы.



Пример совместного использования категорий и производителей (дополнительных категорий)

Для каждого товара вы можете выбрать рубрику (персональную рубрику вашего магазина), а также Производителя. Таким образом, один товар может быть в списке основной категории магазина, а также в рубрике Производитель*. Например у телефона Samsung, может быть две рубрики, основная - "Смартфоны" и дополнительная - "Samsung". А так же вы сможете отображать в основной рубрике товары только определенного производителя**.

* - рубрику "Производитель" можно заменить на нужное вам слово.

Родительскую (первую) рубрику мы рекомендуем назвать "Магазин" (Store).


Пример создания категории магазина:
Для начала рекомендуем вам создать основную категорию, в которой вы будете создавать подкатегории.
Откройте в Админ-центре редактор категорий магазина, и нажмите "Добавить категорию".
Выберите ваш сайт и нажмите "ОК".
После этого введите имя (это будет адресом к вашей категории). Например, для основной категории создадим группу "Магазин" с именем "store".
Готово.

Точно так же вы можете управлять рубриками Производители (дополнительные категории).


** - Кроме того, если вам необходимо открыть список товаров определенной рубрики, и определенного производителя, то достаточно добавить GET переменную PRODUCER. В переменной достаточно указать или ID производителя, или его наименование. Пример: /pers_shop/water/?producer=bonaqua В этом случае будет показан список товаров внутри рубрики "water", и у которых производитель "bonaqua".

Оснвоные блоки и их расположение



Поиск по сайту


Поиск осуществляется после отправки формы с переменной «search». Тип данных для поиска задается при помощи пути (страницы) на которую отправляется форма. Для поиска по «Каталогу товаров» отправку необходимо сделать на страницу «/shop/».

Как добавить поисковую форму в Шапку сайта?

В Блоке/Меню, расположенном в Шапке сайта, вы можете добавить следующий код:

Code: html
<div align="center" id="hotengine-search_form_block" itemscope itemtype="https://schema.org/WebSite">
<link itemprop="url" href="//{HOTENGINE-SC:site_url}/"/>
<form id="hotengine-search-searchinput" name="hotengine-search-searchinput" method="post" action="/ru/shop/" itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction">
<meta itemprop="target" content="//{HOTENGINE-SC:site_url}/kk/shop/?search={search}"/>
<label>
<input class="input" name="search" type="text" placeholder="Поиск..." id="hotengine-smart_search_input" value="" itemprop="query-input">
</label>
<label>
<button type="submit" class="search-button">Найти</button>
</label></form>
</div>


Код сразу содержит Микроразметки для Google. В пути для отправки формы (//{HOTENGINE-SC:site_url}/kk/shop/?search={search}) указан kk язык, вы можете его изменить.

Пример:


CSS стиль блока, с заменой кнопки отправки на изображение:

Code: Css
#hotengine-search_form_block{
position: relative;
width:300px;
float: right;
z-index:2;
height: 41px;
margin:33px 0px 33px 10px;
}

#hotengine-search_form_block input{   
height: 20px;
vertical-align: middle;
border: 1px solid #e5e5e5;
padding: 0.15em;
width: 20.0em;
color:#9c9b9b;
height: 20px;
background: #fff;
padding: 0 13px;
height: 41px;
}
#hotengine-search_form_block input[type="text"]{
text-indent:4px;height: 39px;
}
#hotengine-search_form_block .search-button{
background:#41474c;
border-radius:0px;
vertical-align:middle;
display:block;
position:absolute;
top:0px;
right:0px;
border:none;
color:#fff;
width:41px; height:41px;
text-align:center;
font-size:12px;
line-height:25px; 
cursor:pointer; overflow:hidden; 
}
#hotengine-search_form_block .search-button:after{
content:""; width:41px; height:41px; display:block; position: absolute; right:0px; top:0px; 
background:none; background-color:#d6d6d6;
-webkit-mask:url("data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KDTwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIFRyYW5zZm9ybWVkIGJ5OiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIj4KDTxnIGlkPSJTVkdSZXBvX2JnQ2FycmllciIgc3Ryb2tlLXdpZHRoPSIwIi8+Cg08ZyBpZD0iU1ZHUmVwb190cmFjZXJDYXJyaWVyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KDTxnIGlkPSJTVkdSZXBvX2ljb25DYXJyaWVyIj4KDTxwYXRoIGZpbGw9IiMwMDAwMDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMjUgMmE1LjI1IDUuMjUgMCAxMDMuMTQ0IDkuNDU1bDIuMzI2IDIuMzI1YS43NS43NSAwIDEwMS4wNi0xLjA2bC0yLjMyNS0yLjMyNkE1LjI1IDUuMjUgMCAwMDcuMjUgMnpNMy41IDcuMjVhMy43NSAzLjc1IDAgMTE3LjUgMCAzLjc1IDMuNzUgMCAwMS03LjUgMHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgoNPC9nPgoNPC9zdmc+") center center no-repeat; 
-webkit-mask-size:20px;
}
#hotengine-search_form_block .search-button:hover:after{
	background-color:#fff;
}
#hotengine-search_form_block .search-button:active:after{ top:1px; }

Если заменить путь /shop/ на /blog/, то поиск будет осуществляться по каталогу статей.
Перезапись value поля input name="search" происходит автоматически.




Поисковый фильтр и Типы продукта (Характеристики товара).

В карточках товара можно указать характеристики, которые будут дополнительно отображаться в описании товара, а также по которым потом будет осуществляться поиск.  Для этого сначала создайте «Тип продукта».

Создание Типа продукта и Характеристик товара

Например:
Создаем «Тип продукта» - «Кроссовки». 
«Характеристика» - указываем несколько полей, «Множественный выбор (Checkbox)» с названиями: «Цвет», «Назначение», «Производитель».
После сохранения названий полей, справа появится возможность заполнить возможные варианты.
Создайте значения.
Цвет: Белый, Красный, Зеленый.
Назначение: Бег, Баскетбол, Футбол.
Производитель: Adidas, Asics, Nike

Теперь в карточке товара во вкладке «Параметры и Характеристики» укажите «Тип продукта» и укажите подходящие значения.


Создание поискового фильтра для категорий.


Если вам необходимо создать поисковый фильтр, то в разделе «Мои блоки/меню» создайте «Функциональное меню» - «Поиск с Фильтром по типам продуктов».
Данный блок будет отображаться везде, где вы включите отображение.
Для того, чтобы в определенной категории автоматически раскрывался необходимый тип товара, то в тексте «Функционального блока/меню» нужно указать ID соответствующего типа товара, а также добавить текст «autopath», для того, чтобы при выполнении поиска, он осуществлялся на той же странице, а не переходил на общий поиск по сайту.
Например, если ID созданного ранее типа продукта был 1123, то текст Блока/Меню будет «1123autopath».
Теперь укажите путь на котором отображать блок/меню с поисковым фильтром
«Введите символы, при обнаружении которых отображать Блок/Меню:»
/category_name/
Где category_name – имя категории, путь по которому она расположена.
Для скрытия Поискового фильтра при просмотре карточки товара в пункте «Введите символы, при обнаружении которых не отображать Блок/Меню:» введите
.htm


Пример поискового фильтра:

Для скрытия поискового поля вверху над Типом продукта, в Редакторе дизайна в Css стилях, добавьте «.menu_position_left .hotengine-smart_search_input_label { display: none;}»

Для скрытия поискового поля выбора Типа продукта, в Редакторе дизайна в Css стилях, добавьте «.menu_position_left .shop_catalog_product_types_id_label { display: none;}»

.menu_position_left - означает, что скрываем поля в Левом блоке сайта.


Для отображения количества товаров с указанным параметров можно использовать параметр («count») при созданий Функционального Блока/Меню с поисковым фильтром.
Для скрытия не обнаруженных характеристик - «hideempty» (подробнее описано на странице создания функционального Блока/Меню).
Чтобы отображать выбранные посетителем значения поискового фильтра в верхней части страницы, можно использовать параметр «checkedlist». Эту функцию также можно активировать в разделе «Мобильное меню: Приложение» на вкладке «Поисковый фильтр». Она упростит пользователю доступ к выбранным значениям для поиска, что особенно удобно при просмотре сайта на мобильных устройствах или экранах с небольшим разрешением. Функцию достаточно включить один раз — либо с помощью параметра «checkedlist» в разделе «Мои блоки/Меню» - «Поисковый фильтр», либо в разделе «Мобильное меню: Приложение», во вкоадке «Поисковый фильтр».
Demo:
Value1 ×
Value2 ×
Demo 2:
Value 3 ×
Value4 ×

Создание автоматических описаний.

При использовании типов товаров и характеристик вы можете создать статьи и испльзовать их для добавления в карточки товаров. Описания будут добавлены в зависимости от установленных у товара характеристик или категорий. Управление и подробные инструкции доступны на странице «Магазин» - «Автоматические описания».

Вставка поискового фильтра на обычной странице.

Если необходимо разместить блок с поисковым фильтром внутри текста страницы (описание, статья, контентная страница и т.д.), используйте следующий короткий код:
{HOTENGINE-SC:smart_search_widget:PARAM}

Вместо PARAM указываются параметры, которые управляют работой и отображением фильтра.

Доступные параметры короткого кода


  • autopath — автоматическая подстановка пути отправки поискового запроса
  • checkedlist — добавлять список выбранных в фильтре значений вверху страницы
  • hide_input — скрыть текстовое поле поискового запроса (можно скрыть параметром, или с помощью CSS стилей)
  • all — не учитывать категорию при поиске
  • child_cat — выполнять поиск по всем дочерним подкатегориям
  • count — отображать количество товаров
  • count_all — отображать количество товаров без учёта категории
  • hideempty — скрывать параметр, если по нему не найдено товаров
  • hideempty_all — скрывать параметр, если по нему не найдено товаров (без учёта категории)

Все настройки виджета поискового фильтра совпадают с параметрами функционального меню «Поисковый фильтр».

Формат указания параметров


Параметры можно указывать через символ «|»

Пример использования


{HOTENGINE-SC:smart_search_widget:autopath|count_all|hideempty|ID типа товара|checkedlist|all|hideempty_all|pathurl=/ua/pers_shop/snakers/|}

Пояснения к примеру


  • ID типа товара — указывается идентификатор типа товаров, для которых должен работать фильтр (обязательно)
  • pathurl=/ua/pers_shop/snakers/ — относительный путь к категории, в которой дополнительно размещён функциональный блок меню с поисковым фильтром

Путь /ua/pers_shop/snakers/ является относительным путём к категории и используется для корректного формирования поисковых запросов и ссылок.


Пример callback функций после выполнения Java Script

На сайте используется множество функций, после выполнения которых возможно вам понадобится выполнить собственные скрипты. Для этого мы добавили набор callback функций, который вызываются после выполнения скриптов, с предварительной проверкой их существования.
Например, после добавления товара в корзину вызывается функция callback_hotengine_cart_plus_after, если она существует

Code: JavaScript
if(typeof(callback_hotengine_cart_plus_after) === "function"){ 
callback_hotengine_cart_plus_after(); 
}


Для запуска собственного скрипта функции callback_hotengine_cart_plus_after, ее необходимо создать.

Code: JavaScript
window.callback_hotengine_cart_plus_after = function(){
  // your script
};



Список некоторых предусмотренных Callback функций:

Shop
callback_hotengine_ajax_load_products_list - после загрузки списка товаров (универсальная функция во всех случаях загрузки списка товаров скриптом)
callback_hotengine_ajax_load_products - после загрузки списка товаров, по кнопке "Показать еще".
callback_hotengine_shop_products_list_div_button - после проматывания списка товаров в слайде
callback_hotengine_shop_page_boughtwith_loaded($id) - после загрузки списка, "с товаром покупают" ($id-ID загружаемых товаров)
callback_hotengine_shop_page_products_synonyms_loading($id) - перед загрузкой списка, "товары синонимы" ($id-ID загружаемых товаров)

Shop / Automatic description
callback_hotengine_shop_autodescription($type) - после отображения автоматического описания ($type - html,ajax)
callback_hotengine_shop_autodescription_readmore($id,$job) - после загрузки развернутого текста автоматического описания ($job - show,hide,load)

Shop / Cart
callback_hotengine_cart_plus - после отправки запроса на добавление товара в корзину
callback_hotengine_cart_addresult($result,$item_id) - после добавления товара в корзину, различные варианты результата ($result-значение результата. Значения: "added" - добавлен, "removed" - удален, "instock_smaller" - остаток меньше чем добавляют, "instock_smaller_exists" - остаток меньше чем уже добавлено в корзину)
callback_hotengine_cart_plus_after($items_in_cart) - после добавление товара в корзину ($items_in_cart - количество товаров в корзине после выполнения)
callback_hotengine_cart_plus_after_boughtwith($ids) - после добавление товара в корзину передается список "С товаром покупают" в переменной $ids
callback_hotengine_cart_plus_after_boughtwith_email($ids) - после добавление товара в корзину передается "Список для рассылки" в переменной $ids (E-mail рассылка других товаров)
callback_hotengine_cart_count_product_num - после выбора продукта для изменения его количества, в корзине
callback_hotengine_cart_error_wrong_num - указано не верное количество товара при добавлении в корзину
callback_hotengine_shop_update_cart_menu - обновить количество товаров в корзине (для меню с корзиной, например в мобилном меню)
callback_hotengine_cart_menu_hover_block - Функция, выполняемая при наведении на иконку корзины после отображения её содержимого

Shop / Variant
callback_hotengine_shop_product_variaty_select - после выбора разновидности
callback_hotengine_variety_change_price($price) - после выбора разновидности и изменения цены ($price - новая цена)
callback_hotengine_variety_change_sku($sku) - после выбора разновидности и изменения кода товара ($sku - новый sku)
callback_hotengine_variety_change_skuimage($img) - после выбора разновидности если указано новое изображение ($img - новый путь к изображению)
callback_hotengine_variety_change_stock_count($stock) - после выбора разновидности и изменения количества в наличии ($stock - новое количество в наличии). Данная функция не инициализируется, если не создана, так как не всегда необходимо изменять количество товара в наличии.
callback_hotengine_variety_require() - если не выбрана разновидность, перед вызовом диалогового окна сообщение
callback_hotengine_variety_require_list($href) - если не выбрана разновидность, перед вызовом диалогового окна с сообщением, при просмотре списка товаров ($href - ссылка для просмотрта карточки товара)

Shop / Favorite / Compare
callback_hotengine_favorite_addresult($result,$count_favorite) - после добавления товара в избранные, различные варианты результата ($result-значение результата. Значения: "added" - добавлен, "removed" - удален; $count_favorite - количество товаров в избранных)
callback_hotengine_compare_plus() - после добавления товара в список для сравнения

Shop / Search
callback_hotengine_shop_catalog_product_types - после выбора типа продукта в поисковом фильтре

Shop / Stock
callback_hotengine_shop_product_stock_inform- после вызова окна "Сообщить о наличии"
callback_hotengine_shop_product_stock_inform_send - после отправки запроса "Сообщить о наличии"

Shop / Delivery
callback_hotengine_loading_delivery_type - после выбора способа доставки
callback_hotengine_loading_delivery_type_finalvalues - после выбора способа доставки оконательного значения

Shop / Storehouse
callback_hotengine_shop_cart_change_storehouse - после выбора точки выдачи

User
callback_hotengine_authorize_result($result) - функция после авторзиации пользователя ($result -рузальтат выполнения: 2-ошибка логина илипароля, 3-аккаут заблокирован, 4-необходима активация,5-Активация прошла успешно,6-Не верный код Captcha)

Shop / Sell Statistic
callback_hotengine_statisticsell_printorder($a) - после вызова окна распечатки заказа. $a=1 - перед отображением окна. $a=2 - после отображением окна.

Blog
callback_hotengine_blog_page_list_div_button - после проматывания списка статей в слайде

Dialog
callback_hotengine_dialog_email - после вызова окна для обратной связи (встроенная форма обратной связи)
callback_hotengine_form_loaded - после загрузки формы (Конструктор форм / Всплывающая форма)
callback_hotengine_form_submit_result($a) - после отправки формы через диалоговое окно. $a=0 - ошибка. $a=1 - ok.

Mobile
callback_hotengine_mobilemenu_click($a,$href) - нажатие на ссылки в мобильном меню. $a=0 - ссылки пунктов и верхние иконки. $a=1 - ссылки подкатегорий. $a=2 - после отображением окна ajax с контентом.
callback_hotengine_mobilemenu_show - функция отображения контента мобильного меню (для создания эффекта появления). По умолчанию document.getElementById("hotengine-mobile-outer")?.style.setProperty("display", "block");

Пример
Пример появления справа на лево.
Code: html
let $element = $("#hotengine-mobile-outer");
let elementWidth = $element.outerWidth();
$element.css({ right: -elementWidth, display: "block" }).animate({ right: 0 }, 500);




Other
callback_hotengine_loadGoogleReviews_after - функция при загрузке блока с отзывами Google Place
callback_hotengine_booking_form($a) - функция при работе с бронированием. Значения $a: 2 - перед получением свободных слотов. 3 - после создания списка свободных слотов. 4 - после нажатия кнопки назад. 4 - показать свободные слоты начиная с указанной даты, 6 - начало процесса подтверждения бронирования. 7 - перед отправкой подтверждения бронирования. 8 - перед отправкой подтверждения бронирования, после формирования списка данных. 9 - перед отправкой подтверждения выбранного слота для бронирования. 10 - отправка формы - подтверждение бронирования. 1 - отправка бронирования, результат.

Готовые скрипты


Большинство решений вы можете реализовать при помощи скриптов (JavaScript). Некоторые из них описаны на странице инструкций, некоторые на странице настроек. Дополнительно вы можете найти готовые решения на странице Скрипты для использования на сайтах.

Скрытые данные (Системная разметка / Микроразметка)

Специальная разметка hotengine-marking

Данная разметка содержится на всех страницах (страницах, магазине, каталоге статей и др.), а также в пунктах меню, где используется список данных, напрмер последние статьи и новости.

Данная разметка содержит следующие данные:
data-hotengine-marking-type= тип страницы
data-hotengine-marking-timestamp= дата создания страницы
data-hotengine-marking-view= количество просмотров

Данные небходимы в случае, если вы хотите запретить или отобразить дополнительные данные, на определенной странице, с определенным типом страницы, или если вам необходимо отобразить количество просмотров, или дату материала (новости, статьи, товара). Кроме того, проинспектировав данный элемент, вы можете обнаружить ID записи (страницы, статьи или товара), а также другие дополнительные данные.

Если вам нужны еще какие-то данные в разметке, то сообщите нам об этом.
Code: html
<span class="hotengine-marking" data-hotengine-marking-type="shop_catalog_page" data-hotengine-marking-timestamp="1422368197" data-hotengine-marking-view="6" data-hotengine-marking-shop_catalog_page_id="71111" data-hotengine-marking-shop_catalog_page_price="1" data-hotengine-marking-shop_catalog_page_price_currency="USD" data-hotengine-marking-shop_catalog_page_complectation="22323" data-hotengine-marking-video="https://youtu.be/tAyVrZ1jzC4">


Кроме того, при установке индивидуальных параметров доставки, добавляются еще атрибуты:
data-hotengine-marking-delivery="xxx"
data-hotengine-marking-delivery_price="xxx"
data-hotengine-marking-delivery_note="xxx"


При наличии габаритов и веса товара добавляются атрибуты: data-hotengine-marking-shop_cat_page_deliv_width="XX"
data-hotengine-marking-shop_cat_page_deliv_height="XX"
data-hotengine-marking-shop_cat_page_deliv_length="XX"
data-hotengine-marking-shop_cat_page_deliv_units="XX"
data-hotengine-marking-shop_cat_page_deliv_weight="XX"
data-hotengine-marking-shop_cat_page_deliv_weight_units="XX"
data-hotengine-marking-shop_cat_page_deliv_capacity="XX"



Пример скрипта, который проверяет страницу на наличие объекта разметки и типа страницы «shop_catalog_page» (страница карточки товара).
Code: html
let product_marking = $(".hotengine-marking[data-hotengine-marking-type='shop_catalog_page']");
  if(typeof product_marking !== typeof undefined && product_marking !== false && product_marking !='undefined' && product_marking !=''){
 let product_id = product_marking.attr("data-hotengine-marking-shop_catalog_page_id");
  console.log("ID PRODUCT IS "+product_id);
}

Если страница определена как карточка товара, то извлекаем ID товара - data-hotengine-marking-shop_catalog_page_id.

Доступные типы страниц:

Shop:
  • shop_catalog_page - карточка товара
  • shop_catalog_page_incategory - карточка товара на странице со списком *
  • shop_catalog_page_incategory_search - карточка товара на страницие результата поиска
  • shop_catalog_page_cart_products_list - карточка товара в корзине
  • pers_shop_catalog_category - категория магазина
  • shop_catalog_category_collection - категория-коллекция, магазина
  • shop_catalog_category_producer - категория-производитель, магазина
  • shop_statistic_sale - статистика продаж
  • shop_catalog_page_cart_bought_with - с товаром покупают (при просмотре корзины)
Blog:
  • blog_catalog_page - статья
  • blog_catalog_page_incategory - список статей *

* - у данных объектов списка атрибуты микроразметки добавлены без использования отдельного элемента hotengine-marking.

Пример использования разметки (Отображение даты создания записи + timeConverter)
Code: html

<script>
(function(){
  function timeConverter(UNIX_timestamp) {
  const metaLang = document.querySelector(`html`);
  let lang = metaLang ? metaLang.getAttribute(`lang`).toLowerCase() : `en`;
  const a = new Date(UNIX_timestamp * 1000);
  const year = a.getFullYear();
  const monthIndex = a.getMonth();
  const date = a.getDate();
 const months = {
  "ru": ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],
  "uk": ["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"],
  "pl": ["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],
  "en": ["January","February","March","April","May","June","July","August","September","October","November","December"]
  };
 if (!months[lang]) lang = "en";
  return { day: date, month: months[lang][monthIndex], year: year };
  }


document.querySelectorAll(`#hotengine-content-page .hotengine-blog-page-list-block, #hotengine-content-blog .hotengine-blog-page-list-block`).forEach(block => {
    const timestamp = block.getAttribute(`data-hotengine-marking-timestamp`);
    if(timestamp){
        const t = timeConverter(timestamp);
        const dateHtml = `
            
${t.day} ${t.month} ${t.year}
`; const contentElem = block.querySelector(`.contenth_i`); if(contentElem){ contentElem.insertAdjacentHTML(`afterbegin`, dateHtml); } } }); })(); </script>

Данный скрипт находит элемент разметки, #hotengine-content-blog .hotengine-blog-page-list-block (статью из списка) и вставляет Дату, предварительно преобразованная из TIMESTAMP, функцией timeConverter в начало элемента .contenth_i.
CSS style
Code: CSS
.hotengine_add_date { font-size:10px; float:right; color:#555;
  display: inline-block;
  width: 60px;
  padding: 8px 5px;
  background-color: #f4f4f4;
  border-radius: 8px;
  text-align: center;

  box-shadow: 0 0 5px rgba(0,0,0,0.1);
  margin: 8px 10px 12px 8px;
  color: #333;
}

.hotengine_add_date span {
  display: block;
  line-height: 1.2;
}

.hotengine_add_date span.day {
  font-size: 20px;
  font-weight: bold;
}

.hotengine_add_date span.month {
  font-size: 13px;
  font-weight: 500;
}

.hotengine_add_date span.year {
  font-size: 11px;
  color: #777;
}

@media screen and (max-width: 600px) {
  .hotengine_add_date {
    width: 48px;
    padding: 6px 4px;
    margin: 6px 8px 10px 0;
  }

  .hotengine_add_date span.day {
    font-size: 16px;
  }

  .hotengine_add_date span.month {
    font-size: 11px;
  }

  .hotengine_add_date span.year {
    font-size: 10px;
  }
}




Кроме того, к тегу <HTML> для пользователей добавляется разметка data-hotengine-marking-userid, с ID пользователя.
Если пользователь добавлен как "Клиент" со своей скидкой, то также добавляется метка data-hotengine-marking-user-group-discount, с размером его скидки.

Code: html
<html lang="ru" data-hotengine-marking-userid="USERID" data-hotengine-marking-user-group-discount="-10%">
Где:
ru - язык сайта
USERID - ID пользователя
10% - размер клиентской скидки.


Если пользователь добавлен в Группу клиентов, то дополнительно указывается ID группы к которой он относится.
Code: html
<html lang="ru" data-hotengine-marking-userid="XXXXX" data-hotengine-marking-user-group-discount="-20%" data-hotengine-marking-user-group-id="XXXXX">



Пример дополнительной разметки в разновидности товара
Code: html
<ul class="hotengine-shop-product-variety_select" size="1" data-vpid="XXXXX" >
<li value="0" title="Разновидность" >Разновидность</li>
<li value="XXXXXX" data-hotengine-variety-disable-add="1" data-hotengine-variety-pricechange="+10" data-hotengine-variety-stockcount="10" class="">Разновидность 1</li>
<li value="XXXXX" data-hotengine-variety-disable-add="0" data-hotengine-variety-pricechange="=500" data-hotengine-variety-stockcount="10" class="hotengine-shop-product-variety_hilight">Разновидность 2</li>
<li value="XXXXX" data-hotengine-variety-disable-add="0" data-hotengine-variety-pricechange="-110" data-hotengine-variety-stockcount="10" class="hotengine-shop-product-variety_hilight-selected">Разновидность 3</li>
</ul>

data-hotengine-variety-disable-add - вкл/выкл возможность добавлить разновидность в корзину (1-запретить, 0-разрешить). При нажатии на разновидность, выключенную для добавления - ничего не происиходит и цена товара и артинкул не изменяется.

data-hotengine-variety-pricechange - данные об измении цены, вы можете их использовать для создания подстветки данных об изменяемой цене (при помощи javascript).
data-hotengine-variety-stockcount - количество в наличии

CSS классы для элементов:
.hotengine-shop-product-variety_hilight - выделенный объект (при наведении мышки).

.hotengine-shop-product-variety_hilight-selected - выделенный объект на который нажали (активная разновидность).

Кроме того, для всех дочерних элементов блока с выключенной функцией добавления в корзину [data-hotengine-variety-disable-add="1"] добавлена стилизация обесцвечивания и обычный курсор при наведении.

Пример метки при поисковом запросе в магазине
Code: html
<span class="hotengine-marking" 
data-hotengine-marking-type="shop_catalog_page_incategory_search"
data-hotengine-marking-search="отдельно поисковый запрос"
data-hotengine-marking-searchparam="?&search=поисковый запрос полная строка (+сортировка и прочие данные)"
data-hotengine-marking-sortparam="дополнительные данные сортировки"
data-hotengine-marking-smart_search_price_from="цена от"
data-hotengine-marking-smart_search_price_to="цена до"
data-hotengine-marking-smart_search="поисковый запрос при использовании поискового фильтра"
data-hotengine-marking-searchresult-num="55">

data-hotengine-marking-searchparam - поисковый запрос, можно использовать для создания ссылки на страницу с запросом.
data-hotengine-marking-searchresult-num - количество найденных продуктов по введенному запросу.

Пример метки в категориях магазина магазина
Code: html
<span class="hotengine-marking" 
data-hotengine-marking-type="pers_shop_catalog_category"
data-hotengine-marking-view="9999"
data-hotengine-marking-pers_shop_catalog_category_parent_id="222"
data-hotengine-marking-pers_shop_catalog_category_child_count="2"
data-hotengine-marking-pers_shop_catalog_page_count="999"
data-hotengine-marking-pers_shop_catalog_page_child_count="1299"
data-hotengine-marking-pers_shop_catalog_category_name="nameofcategory"
data-hotengine-marking-pers_shop_catalog_category_id="8342">

data-hotengine-marking-pers_shop_catalog_category_parent_id - ID родительской категории
data-hotengine-marking-pers_shop_catalog_category_child_count - количество подкатегорий (только к этому родителю)
data-hotengine-marking-pers_shop_catalog_page_count - количество товаров в этой категории
data-hotengine-marking-pers_shop_catalog_page_child_count - количество товаров в этой и дочерних подкатегориях
data-hotengine-marking-pers_shop_catalog_category_name - имя категории.
data-hotengine-marking-pers_shop_catalog_category_id - ID категории.
Аналогичная разметка используется для Производителей.

Пример поиска метки с поисковым запросом в магазине
Code: JavaScript
<script><!--
document.addEventListener("DOMContentLoaded", () => {
    const searchMark = document.querySelector(`.hotengine-marking[data-hotengine-marking-type="shop_catalog_page_incategory_search"]`);
    if (searchMark) {
        const searchQuery = searchMark.getAttribute("data-hotengine-marking-search");
        const input = document.querySelector(`#hotengine-search-searchinput input[name="search"]`);
        if (input && searchQuery) {
            input.value = searchQuery;
        }
    }
});
  //-->
  </script>

data-hotengine-marking-search - поисковый запрос Внимание! Это лишь пример. При размещении блока поиска в шапке сайта значение поля устанавливается автоматически в момент рендеринга страницы.


Кроме того к некоторым блокам сайта добавлена разметка "data-hotengine-..." с дополнительными данными.
Например data-hotengine-product-images-count - количество картинок у товара.

В корзине разметкой указано количество товаров, общая стоимость и валюта (data-hotengine-cart-count, data-hotengine-cart-total-price, data-hotengine-cart-currency)

Дополнительная разметка, «data-» реализована прямо в элементах разметки, например, элемент class="hotengine-categories-list-block" (блок иконки категории) может содержать разметку: data-image="1" - указана картинка к категории, data-child-cat="7" - количество подкатегорий, data-child-items="5114" - Количество товаров во всех внутренних рубриках, а также количество подкатегорий, data-cid="44" - ID категории. (data-cid - категории магазина, data-pcid - категории производителей, data-ccid - категории коллекций, data-bcid - категории каталога статей)

В статистике продаж, при отдельном просмотре заказа также присутствует микроразметка.

Пример проверки наличия элемента разметки
Code: html
let $catergory = $('.hotengine-marking[data-hotengine-marking-type="pers_shop_catalog_category"]');
if (typeof $catergory !== typeof undefined && $catergory !== false && $catergory !== "undefined" && $catergory.length > 0){
let $nemecat = $catergory.attr("data-hotengine-marking-pers_shop_catalog_category_name");
alert("Category name is "+$nemecat);
}

Инструкция по созданию Сортировки товаров в магазине с примером

Воспользуйтесь ссылкой для автоматического создания функционального меню «Сортировка» или заполните Блок/Меню по инструкциям Скрипт функционального меню «Сортировка».

Инструкция по изменению сообщения о не выбранной разновидности

Текст ошибки выбора разновидности:
Сообщение о необходимости выбрать разновидность товара реализовано в диалоговом окне при помощи CSS элемента. Заменить надписи вы можете в CSS стилях:
Code: CSS
:lang(ru) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"Вы не выбрали разновидность товара."; }
:lang(en) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"You did not select a complete set of goods."; }
:lang(uk) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"Вы не обрали різновид товару."; }
:lang(pl) .hotengine-shop_cart_add_error_wrong_variety:after{ content:"Nie wybrałeś typu produktu."; }

Кроме того, перед отображением сообщения, вызывается callback функция callback_hotengine_variety_require.
При просмотре списка товаров, перед отображением сообщения, вызывается callback функция callback_hotengine_variety_require_list($href), где в качестве $href передается ссылка на карточку товара.

Пример функции с диалоговым окном, которое используется по умолчанию, и может быть изменено:
Code: JavaScript
<script>
 function callback_hotengine_variety_require(){

 $("body").append('<div id="hotengine-shop_cart_add_error_wrong_variety"><a class="hotengine-shop_cart_add_error_wrong_variety-btn-close" data-micromodal-close onclick=\'(function() { $("#hotengine-shop_cart_add_error_wrong_variety,#hotengine-shop_cart_add_error_wrong_variety-data").remove(); return false; })();\'></a></div>');
  
  
  
hotengine_micromodal({
    id: "hotengine-shop-cart-add-error-wrong-variety",
    content: $("#hotengine-shop_cart_add_error_wrong_variety-data").html(),
    defaultWidth: $(window).width() > 410 ? "410px" : "90%",
	defaultHeight: "",
    minWidth: "290px",
    onCloseRemove: false,
	unsetContentHeight: true,
	onCloseEvent: (id) => {
                setTimeout(() => {
                   const m = document.getElementById(id);
                   if (m && m.getAttribute("aria-hidden") === "true") m.remove();
                }, 500);
                }
});
  
  return false; 
  }

 </script>



В параметрах товара можно указать заголовок над списком разновидностей. Длина заголовка добавляется в виде CSS class'а. Например, если заголовок "Выбрать вес", то его длина 24 символа. Соответственно указывается класс hotengine-shop-product-variety-title_24. Вы можете использовать либо текст либо длину заголовка над разновидностью. Например:
Code: JavaScript
<script>												 
	function callback_hotengine_variety_require(){

if($(".hotengine-shop-product-variety-title_24").length > 0){
  $text = "Вы не выбрали вес!";
  } else if($(".hotengine-shop-product-variety-title_38").length > 0){
  $text = "Вы не выбрали количество!";
  } else if($(".hotengine-shop-product-variety-title_26").length > 0){
  $text = "Вы не выбрали цвет!";
  } else {
  $text = "Вы не выбрали разновидность!";
  }
 
 
 $("body").append('<div id="hotengine-shop_cart_add_error_wrong_variety"><b>'+$text+'</b><a class="hotengine-shop_cart_add_error_wrong_variety-btn-close" data-micromodal-close onclick=\'(function() { $("#hotengine-shop_cart_add_error_wrong_variety,#hotengine-shop_cart_add_error_wrong_variety-data").remove(); return false; })();\'></a></div>');
  
  
  
hotengine_micromodal({
    id: "hotengine-shop-cart-add-error-wrong-variety",
    content: $("#hotengine-shop_cart_add_error_wrong_variety-data").html(),
    defaultWidth: $(window).width() > 410 ? "410px" : "90%",
	defaultHeight: "",
    minWidth: "290px",
    onCloseRemove: false,
	unsetContentHeight: true,
	onCloseEvent: (id) => {
                setTimeout(() => {
                   const m = document.getElementById(id);
                   if (m && m.getAttribute("aria-hidden") === "true") m.remove();
                }, 500);
                }
});
  
  return false; 
  }


</script>
Аналогичная функция при просмотре списка товаров, callback_hotengine_variety_require_list($href), дополнена ссылкой на карточку товара, и соответственно может быть использована в отображаемом диалоге.

Инструкция по добавлению ссылки на отзывы / rating в товарах


Для создания ссылки на иконки Рейтинга, в списке товаров, необходимо найти все элементы списка, и добавить ссыку вокруг элементов рейтинга.
Кроме того, после загрузки списка товаров в слайдере или кнопкой "Показать еще", необходимо выполнить добавление ссылки повторно (callback_hotengine_ajax_load_products и callback_hotengine_shop_products_list_div_button).
Code: JavaScript
<script>
  <!-- 


window.callback_hotengine_shop_products_list_div_button = function(){
    const blocks = document.querySelectorAll(`.hotengine-shop-product-list-block .hotengine-shop-product-rating-block`);
    blocks.forEach(block => {
        if(block.parentElement && block.parentElement.classList.contains(`hotengine-shop-product-rating-block-url`)) return;
        const parent = block.parentElement;
        if(!parent) return;
        const readMore = parent.querySelector(`.hotengine-shop-product-read_more a`);
        if(!readMore) return;
        const url = readMore.getAttribute(`href`);
        if(!url) return;
        const a = document.createElement(`a`);
        a.className = `hotengine-shop-product-rating-block-url`;
        a.href = `${url}#tabs-review`;
        parent.insertBefore(a, block);
        a.appendChild(block);
    });
};

window.callback_hotengine_ajax_load_products = function(){
    const blocks = document.querySelectorAll(`.hotengine-shop-products-list-content-append .hotengine-shop-product-list-block .hotengine-shop-product-rating-block`);
    blocks.forEach(block => {
        if(block.parentElement && block.parentElement.classList.contains(`hotengine-shop-product-rating-block-url`)) return;
        const parent = block.parentElement;
        if(!parent) return;
        const readMore = parent.querySelector(`.hotengine-shop-product-read_more a`);
        if(!readMore) return;
        const url = readMore.getAttribute(`href`);
        if(!url) return;
        const a = document.createElement(`a`);
        a.className = `hotengine-shop-product-rating-block-url`;
        a.href = `${url}#tabs-review`;
        parent.insertBefore(a, block);
        a.appendChild(block);
    });
};

window.callback_hotengine_shop_products_list_div_button = function(){
    const blocks = document.querySelectorAll(`.hotengine-shop-products-list-content .hotengine-shop-product-list-block .hotengine-shop-product-rating-block`);
    blocks.forEach(block => {
        if(block.parentElement && block.parentElement.classList.contains(`hotengine-shop-product-rating-block-url`)) return;
        const parent = block.parentElement;
        if(!parent) return;
        const readMore = parent.querySelector(`.hotengine-shop-product-read_more a`);
        if(!readMore) return;
        const url = readMore.getAttribute(`href`);
        if(!url) return;
        const a = document.createElement(`a`);
        a.className = `hotengine-shop-product-rating-block-url`;
        a.href = `${url}#tabs-review`;
        parent.insertBefore(a, block);
        a.appendChild(block);
    });
};
 
-->
  </script>



Для объекта ссылки необходимо задать положение, например CSS:
Code: JavaScript
.hotengine-shop-product-list-block .hotengine-shop-product-rating-block{ position:relative; display: block; bottom: 0px;}
	.hotengine-shop-product-list-block .hotengine-shop-product-rating-block-url{ position:relative; display: block; bottom: 1px;}
	


Дополнительные блоки в корзине: Если у товара установлена оптовая цена, то создается SPAN элемент .hotengine-shop-product-price_bulk_inform_block.
Code: html
<span class="hotengine-shop-product-price_bulk_inform_block"><span class="hotengine-shop-product-price_bulk_inform_block_title"></span><span class="hotengine-shop-product-price_bulk_inform_original_price">100</span><span class="hotengine-shop-product-price_bulk_inform_original_price_bulk">100</span></span>



.hotengine-shop-product-price_bulk_inform_block_title - блок с текстом «Оптовая цена» (изменить можно через CSS стили, content).
.hotengine-shop-product-price_bulk_inform_block - блок с информацией о скидке
.hotengine-shop-product-price_bulk_inform_original_price - цена
.hotengine-shop-product-price_bulk_inform_original_price_bulk - оптовая цена


Если у товара указа Акция, то создается SPAN элемент .hotengine-shop-product-price_sale_inform_block.
Code: html
<span class="hotengine-shop-product-price_sale_inform_block"><span class="hotengine-shop-product-price_sale_inform_block_title"></span><span class="hotengine-shop-product-price_sale_inform_original_price">100</span><span class="hotengine-shop-product-price_sale_inform_original_price_old">120</span></span>



.hotengine-shop-product-price_sale_inform_block_title - блок с текстом «Акционная цена» (изменить можно через CSS стили, content).
.hotengine-shop-product-price_sale_inform_block - блок с информацией о скидке
.hotengine-shop-product-price_sale_inform_original_price - цена
.hotengine-shop-product-price_sale_inform_original_price_old - старая цена товара (отобржается только если значение указано и не равно нулю)


ShortCode (автозамена данных)

ShortCode (автозамена данных)

На всех страницах и Блоках/Меню возможна автоматическая замена Кода, на Статические данные.
У каждой страницы эти данные уникальные, например это может быть ID страницы (стати, товара, страницы).

Ниже представлен список основных данных для автозамены.


{HOTENGINE-SC:current_page_id} - ID текущей страницы (статьи, страницы, товара, новости)
{HOTENGINE-SC:site_url} - URL вашего сайта (адрес)
{HOTENGINE-SC:lang} - Язык открытой страницы
{HOTENGINE-SC:site_tagline} - Слоган сайта
{HOTENGINE-SC:contacts} - Блок с контактами
{HOTENGINE-SC:slide_menu_widget:XX} - Блок с виджетом Slide Menu
{HOTENGINE-SC:slider_widget:XX} - Блок с виджетом Slider
{HOTENGINE-SC:smart_search_widget:PARAM} - Блок с виджетом Поисковый фильтр
{HOTENGINE-SC:main_menu_widget} - главное меню
{HOTENGINE-SC:langmenu} - переключение языка

{HOTENGINE-SC:user_nickname} - Имя пользователя (если он выполнил авторизацию)
{HOTENGINE-SC:user_id} - ID пользователя (если он выполнил авторизацию)
{HOTENGINE-SC:user_login} - Login пользователя (если он выполнил авторизацию)
{HOTENGINE-SC:user_discount} - Пользовательская скидка
{HOTENGINE-SC:user_cashback} - Баланс Cashback
{HOTENGINE-SC:user_group_id} - ID группы пользователя

{HOTENGINE-SC:shop_cart_menu} - корзина с товаром (Блок/Меню Корзина)
{HOTENGINE-SC:favorites} - ссылка на избранные товары
{HOTENGINE-SC:shop_compare_menu} - сравнение товаров
{HOTENGINE-SC:shop_cat_page_image} - Путь к изображению товара (если открыта страница товара)
{HOTENGINE-SC:shop_cat_page_id} - ID товара (если открыта страница товара). Также можно использовать {HOTENGINE-SC:current_page_id}
{HOTENGINE-SC:shop_cat_page_sku} - Код товара (если открыта страница товара)
{HOTENGINE-SC:shop_cat_page_currency} - Валюта товара (сокращенная) (если открыта страница товара)
{HOTENGINE-SC:shop_cat_page_currency_iso} - Валюта товара (ISO) (если открыта страница товара)
{HOTENGINE-SC:shop_cat_page_price} - Цена товара (если открыта страница товара)
{HOTENGINE-SC:shop_cat_page_title} - Наименование товара
{HOTENGINE-SC:shop_cat_page_video} - Video URL (ссылка на Видео)

{HOTENGINE-SC:pers_shop_cat_val_name} - Наименование категории магазина (только внутри категории и кнопке в списке подкатегорий)
{HOTENGINE-SC:pers_shop_cat_val_title} - Заголовок категории магазина (только внутри категории и кнопке в списке подкатегорий)
{HOTENGINE-SC:pers_shop_cat_val_id} - ID категории магазина (только внутри категории и кнопке в списке подкатегорий)
{HOTENGINE-SC:shop_cat_producer_val_name} - Наименование категории производителя (только внутри категории и кнопке в списке подкатегорий)
{HOTENGINE-SC:shop_cat_producer_val_id} - ID категории производителя (только внутри категории и кнопке в списке подкатегорий)
{HOTENGINE-SC:shop_cat_collection_val_name} - Наименование категории коллекции (только внутри категории и кнопке в списке подкатегорий)
{HOTENGINE-SC:shop_cat_collection_val_id} - ID категории коллекции (только внутри категории и кнопке в списке подкатегорий)
{HOTENGINE-SC:blog_cat_val_name} - Наименование категории каталога статей (только внутри категории и кнопке в списке подкатегорий)
{HOTENGINE-SC:blog_cat_val_id} - ID категории каталога статей (только в кнопке категории)

{HOTENGINE-SC:blog_cat_page_id} - ID статьи (только в каталоге статей)
{HOTENGINE-SC:blog_cat_page_title} - Заголовок статьи (только в каталоге статей)
{HOTENGINE-SC:blog_cat_val_id} - ID категории каталога статей (только внутри категории и кнопке в списке подкатегорий)




Например, вы можете использовать данный код для отображения имени авторизированного пользователя на сайте:
Code: html
<span class="user_login_name">Добро пожаловать {HOTENGINE-SC:user_login}</span>


Или вы можете использовать данный код для создания Meta данных для социальных сетей (например разметка Open Graph):
Code: html
<meta property="og:image" content="{HOTENGINE-SC:shop_cat_page_image}"/>
<meta property="og:title" content="{HOTENGINE-SC:shop_cat_page_title}>



Пример создания ссылки на профиль авторизированного пользователя:
Code: html
https://hotlist.biz/{HOTENGINE-SC:lang}/users.php?p=user_profile&action=userprofile&userid={HOTENGINE-SC:user_id}



Выгрузки XML/RSS/YML

XML выгрузки доступные на вашем сайте

Система поддерживает автоматическую генерацию фидов в различных форматах. Вы можете использовать как сокращенные версии для быстрой индексации, так и максимально расширенные данные, включающие характеристики товаров, атрибуты и мультиязычные описания.

Поддерживаемые форматы и платформы:

  • Sitemap.xml – карта сайта для Google и Bing, обеспечивающая быструю индексацию.
  • Google Merchant Center – XML-фиды для Google Shopping и динамического ремаркетинга.
  • Yandex Market – стандарт XML (YML) для рекламных сетей.
  • Hotline.ua – специализированный прайс с поддержкой наценок для управления маржинальностью.
  • Rozetka.ua – XML-файл, адаптированный под требования маркетплейса с поддержкой исключений по ценам.
  • Prom.ua – фид с интеллектуальной мультиязычностью: автоматическое объединение описаний (UA/RU) в одном файле согласно спецификации портала.
  • Эпицентр (Epicentrk.ua) – адаптированный XML-фид с учетом стандартов контента маркетплейса.
  • JSON / CSV Price – универсальные форматы для интеграций и работы в Excel.

Генератор и актуальный список ссылок доступен в админ-панели: «XML/CSV/XLS/JSON».

Гибкая настройка (Фильтрация и Сортировка):

Добавляя GET параметры к ссылке, вы можете динамически менять содержимое выгрузки:

Параметр Описание
producer ID производителя (можно несколько через запятую).
price_from / price_to Фильтр по диапазону цен «от» и «до».
pers_shop_cat_page_catid ID категории магазина (поддержка нескольких веток).
stock Статус наличия (только в наличии / все товары).
sort_instock_priority Приоритет: товары в наличии поднимаются в начало списка.
sort_by / order_by Направление и поле для сортировки данных.

Пример ссылки: https://ваш-сайт.com/export.xml?producer=10&price_from=500&stock=1

Все варианты доступных значений и конструктор ссылок находятся на странице «Выгрузки XML/CSV/XLS/JSON».


Формульные наценки

В системе реализована возможность автоматического расчета цен по формулам. Управление маржинальностью доступно на трех уровнях:

  • Глобально для выгрузки: Параметр «Дополнительная наценка» позволяет задать общий процент к базовой стоимости товара непосредственно при создании ссылки на фид.
  • Для каждой категории: В настройках конкретной категории магазина можно указать индивидуальную наценку, которая будет применяться только к товарам этой группы. При этом настройки позволяют гибко задавать разные проценты для каждой площадки отдельно (своя наценка для Rozetka, своя для Prom.ua, своя для Epicentrk.ua и т.д.).
  • Индивидуально в товаре: В каждой карточке товара доступен параметр «Наценка в выгрузках», который позволяет принудительно отключить расчеты для конкретной позиции:

Варианты исключений:

  • Вкл – к товару применяются все активные наценки (выгрузки + категории).
  • Выкл: Без наценок – полное игнорирование наценок. В файл передаётся оригинальная цена сайта без надбавок.
  • Без наценки Rozetka / Prom / Epicentr – точечное отключение наценок только для конкретного маркетплейса.
  • Без формульной наценки – отключение автоматических правил пересчета для этой позиции.

Это крайне полезно для контроля цен на товары с фиксированной розничной ценой (РРЦ), где автоматическое завышение цены недопустимо.

Домены/Domain

Парковка домена

Вы можете бесплатно подключить свой персональный домен первого уровня (например: example.com).

Для этого укажите наши NS сервера в настройках вашего домена:
NS1.HOTLIST.BIZ
NS2.HOTLIST.BIZ

Или IP адрес 88.218.28.193 в «A» запись.

После чего обратитесь к нам через форму обратной связи. В запросе укажите сайт, к которому желаете подключить домен*, и адрес этого домена.

* - мы не осуществляем продажу доменов, для подключения своего домена, его необходимо предварительно зарегистрировать/купить.

Домены в зоне .RU в данный момент не обслуживаются.

SSL/HTTPS

SSL

SSL — это сокращение от Secure Socket Layer — это стандартная интернет технология безопасности, которая используется, чтобы обеспечить зашифрованное соединение между веб-сервером (сайтом) и браузером. SSL сертификат позволяет нам использовать HTTPS протокол (после подключения SSL сертификата, ваш сайт будет открываться не через HTTP, а через HTTPS протокол).


Что такое HTTPS?

HTTPS (Hypertext Transport Protocol Secure) – это протокол, который обеспечивает безопасность и конфиденциальность при обмене информацией между сайтом и устройством пользователя. Посетители сайта рассчитывают, что указанные ими данные не попадут в руки мошенников. Чтобы защитить данные, которые оставляют посетители на вашем сайте, начните применять протокол HTTPS.



Как подключить SSL сертификат


Подключить наш SSL сертификат вы можете при оплате хостинга, указав галочку «SSL сертификат».

Кроме того, Вы можете подключить SSL сертификат для вашего домена, предварительно купив его у любого регистратора. Стоимость подключения и использования вашего сертификата составляет 1$ в месяц (минимальный срок для оплаты - 12мес.).

Для интернет-магазина достаточно сертификата Comodo Positive SSL.

Оплатить подключение SSL.


Почта/E-mail

Создание почтовых ящиков на паркованном домене

После подключения домена вы можете использовать почту с адресом вашего сайта, например mail@example.com.
Вы можете подключить к вашему домену почтовый сервис Google.com, Zoho.com, Яндекс, Mail.ru и другие.

Подключение корпоративной почты на Mail.ru

Инструкции по подключению почты на Mail.ru.

Подключение корпоративной почты на Zoho.eu

1)Зарегистрируйтесь https://www.zoho.eu/mail/
2)Выберите соответствующий тариф, например 5GB - FREE, бесплатный
3)Добавьте ваш домен @yourdomain. Для проверки потребуется создать CNAME или TXT завить в NS записях домена. Вы можете прислать данные и мы добавим их, либо укажите их самостоятельно. Желательно пришлите и TXT и CNAME данные.
4) Добавьте MX записи, с именем @ или пустым именем.
Значения в таблице ниже:

Host/ Domain Address/ Mail Server/ MX Entries/ Value Priority
@/ Blank/ Domain name mx.zoho.eu. 10
@/ Blank/ Domain name mx2.zoho.eu. 20
@/ Blank/ Domain name mx3.zoho.eu. 50


5) В NS записях домена, создайте текстовую запись со значение "v=spf1 ip4:88.218.28.193 include:zoho.eu ~all"
6) По желанию, можно добавить DKIM Signature https://www.zoho.eu/mail/help/adminconsole/dkim-configuration.html
7) Создайте email адреса и пользователей.
8) Укажите созданный ящик в качестве SMTP сервера на сайте.

SMTP server: smtp.zoho.eu
Port: 465
Security Type: SSL

Или
SMTP server: smtp.zoho.eu
Port: 587
Security Type: TLS

https://www.zoho.eu/mail/help/zoho-smtp.html.

Инструкции по подключению на www.zoho.eu.

Настройки SMTP

Вы можете использовать собственный SMTP сервер (РЕКОМЕНДУЕТСЯ), для отправки почты с вашего сайта. Для этого зайдите в Настройки, во вкладку "Почта" и укажите параметры SMTP севвера.

Уведомления

Viber Bot

Вы можете включить оповещение о новых сообщениях и заказах с сайта.

Для подключения к каналу с оповещением о новых заказах, необходимо отправить hotlist_viber_key (где key - ваш ключ), на канал https://viber.com/hotlistbiz. Вы можете поделиться данным ключом и использовать его с различных устройств с Viber.
Установить ключ можно в «Настройках», во вкладке «Уведомления». Кроме того, можно использовать ключ для Форм, который можно указать в «Редакторе форм».

Для отключения оповещений необходимо либо удалить конкретного получателя, сменить ключи или отправить DISABLE hotlist_key (где key - ваш ключ сайта или формы) в Viber.

Telegram Bot

Вы можете включить оповещение о новых сообщениях и заказах с сайта.

Для подключения к каналу с оповещением о новых заказах, необходимо отправить hotlist_telegram_key (где key - ваш ключ), на канал https://t.me/hotlistbiz_bot. Вы можете поделиться данным ключом и использовать его с различных устройств с Telegram.
Установить ключ можно в «Настройках», во вкладке «Уведомления». Кроме того, можно использовать ключ для Форм, который можно указать в «Редакторе форм».

Для отключения оповещений необходимо либо удалить конкретного получателя, сменить ключи или отправить DISABLE hotlist_key (где key - ваш ключ сайта или формы) в Telegram.

Push-уведомления

Push-уведомления — это короткие сообщения, которые появляются на вашем экране (компьютере или телефоне) даже если сайт hotlist.biz закрыт. Они помогают быстро узнавать о важных событиях.

Для подключения перейдите в «Настройках», во вкладку «Уведомления» и следуйте инструкциям.

Языки

Многоязычность и поисковые системы

Если у вас несколько версий страницы на разных языках или для разных регионов, помогите Google идентифицировать их. Тогда в результатах поиска будут представлены те версии ваших страниц, которые лучше всего подходят для языка и региона пользователя.
Один из способов реализации многоязычных сайтов, это тег с атрибутом hreflang. Пример такого тега:
<link rel="alternate" hreflang="lang_code" href="url_of_page" />

На разных страницах сайта (категориях, страницах, статьях, карточках товаров и других) реализована функция многоязычноcти. Например, если у вас добавлена карточка товара на Английском, Белорусском, Русском и Украинском языках, то достаточно во всех карточках товаров в ячейке «Товар на других языках» указать одинаковое значение, например - «1». В таком случае, при открытии страницы на одном из языков, будут добавлены теги hreflang со ссылками на страницы, на других языках. Рекомендуется использовать ID первой карточки товара, для избежания дублирования значений и последующих ошибок. Например, если вы добавили товар «Кроссовки», с ID «12345» , то добавляя аналогичный товар на Английском языке, укажите в пункте «Товар на других языках» - «12345».

Основной выбранный язык сайта будет помечен дополнительным тегом hreflang="x-default".

Как создать многоязычный сайт?

Создайте страницу на одном языке, затем такую же страницу на другом языке, и заполните поле «Страница на других языках» одинаковым значением, например, ID первой созданной страницы. Таким же образом заполняйте статьи и карточки товара. Сайт автоматически сообщит поисковику, о странице на других языках, а также о главной странице (главная страница будет соответствовать основному языку сайта, который вы можете указать в разделе «Настройки», «Стартовая страница»).

Для созданий рубрик каталога статей или магазина, рекомендуем использовать приставку языка. Например, рубрику «dress», можно создать на других языках, используя приставку «dress_ua», «dress_de», «dress_fr»… 
Использовать одинаковый путь к рубрике на других языках возможно, но при импорте данных, например, товара, могут возникнуть ошибки, так как платформа не сможет распознать язык рубрики, в которую он добавляется. Поэтому мы рекомендуем использовать приставки в разделах с рубриками, каталоге статей и интернет-магазине. При использовании языковых приставок как описано выше, переменная «Категория на других языках» будет установлена автоматически.

При создании карточек товара, «Код товара» должен быть уникальным, потому на другом языке можно использовать, например, собственные окончания «SKU/CODE_EN». Если указан «Товар на другом языке», то при изменении основных данных (стоимость, наличие, новинка, хит продаж, доступ), так же будут обновлены все каточки товара указанные как альтернативная версия основного товара.
«Поисковый фильтр» и «Блоки/меню» можно использовать одновременно и для всех языков, и отдельно указать язык на котором его отображать. Например, создайте «Блоки/меню», Шапку сайта, и расположите на всех страницах, указав язык «Русский (ru)». Такой блок будет отображаться везде, только если открыта Русская версия сайта. Таким же образом можно создать шапку и для других языков. Если вам необходимо разместить какой-то код, то не обязательно создавать такой «Блоки/меню» для каждого языка, достаточно указать язык «All (Все)», и блок будет отображаться не зависимо от выбранного посетителем языка.
Префикс языка на платформе Hotlist.biz указывается в начале, например, «/ru/page.htm».

Быстрый перевод каталога товаров на сайте

Для быстрого перевода магазина, вы можете использовать импорт/экспорт через CSV/XLS, а также сервис Google Translate для документов.

Категории магазина


Экспортируйте «Категории магазина». Замените значение «ПРЕДУДУЩЕНГО» языка в ячейке язык, на значение «НОВОГО» языка, а также выполните перевод названий и описаний (например при помощи сервиса Google Translate для документов, предварительно сохранив файл в XLSX). При этом «Язык» всех дочерних категорий будут такими же, как язык основной категории, в которую они добавляются. Поэтому для главной категории (родитель которой является - «main») важно заменить значение ячейки «Язык» на «НОВЫЙ ЯЗЫК». Для устранения возможных ошибок при последующем импорте товаров, рекомендуем использовать уникальные имена, или добавлять в «имя» новых категория «_НОВЫЙЯЗЫК». Например, «category_en», где «en» - новый добавляемый язык.

Перед выполнением импорта необходимо сохранить файл в формате «XLS» или «CSV». После выполнения импорта, проверьте, чтобы язык новых категорий был подходящим. Если по какой-то причине указан не верный язык, то замените язык главной категории вашего каталога, в которую они добавлены, в разделе «Магазин» - «Категории магазина». Для всех дочерних подкатегорий язык так же будет заменен. Если категорий не много, то можно скопировать категории, заменив в них язык и наименование, в разделе «Магазин» - «Категории магазина».


Добавление товаров

Выполните экспорт товаров в разделе «Магазин» - «Экспорт товаров». Установите галочку «Выгрузить все». Снимите галочку «Не экспортировать товары, которых нет в наличии», а также установите галочку «Экспортировать категории без транслитерации» - для упрощения подбора категорий переводимых товаров. Выполните перевод файла при помощи сервиса Google Translate для документов, предварительно сохранив файл в XLSX. При помощи формул добавьте в категории «_язык», или замените их имена на новые созданные категории. Переместите значения столбца «ID» в столбец «Товары на других языка». Обязательно удалите значения для столбца «ID», чтобы не перезаписать существующие товары. А также замените «Код товара», например аналогично добавив «_язык» при помощи формул, так как товары с аналогичным «ID» или «Кодом товара» будут перезаписаны.
Выполните импорт, В разделе «Магазин» - «Импорт товаров». Быстро заполнить соответствие ячеек вы можете нажав «Поля из файла, укажите соответствие» - «Заполнить выбор полей соответствий согласно файлу экспорта (поля «Выгрузить все»)».

Кроме того, для создания корректной разметы для поисковиков, а также переадресации между товарами на разных языках, в товарах основного языка, выполните экспорт и повторный импорт, скопировав значение ячейки «ID» в столбец «Товары на других языка». (При этом можно импортировать только одну ячейку «Товар на других языках» и указать ID или «Код товара», по которым будут найдены товары для перезаписи). Таким образом и новые и ранее созданные товары будут иметь идентичные значения «Товар на других языках».

Многоязычность и меню выбора языка

Вы можете разместить короткий код {HOTENGINE-SC:langmenu} и указать в настройках сайта список доступных языков или разместить код из примера ниже.
Код из примера ниже, формирует кнопку перехода на альтернативные языки, при этом если к странице/статье/карточке товара указана альтернативная языковая версия, то она будет задействована.


1)Вставьте код Css в Редактор дизайна, во вкладку CSS.
2)Добавьте JavaScript в блок/меню, отображаемый на всех страницах.
3)Вставьте код выпадающего списка языков в блок/меню, в котором хотите его расположить, например в шапку сайта.
4)Удалите из блока не нужные языка (class hotengine-shop-select-language-val)



Код меню выбора языка:
Code: html
<nav class="hotengine-shop-select-language-box">
  <span class="hotengine-shop-select-language" data-lang="kk"></span>
  <span class="hotengine-shop-select-language-values">
  <li><a class="hotengine-shop-select-language-val" data-lang="be"></a></li>
  <li><a class="hotengine-shop-select-language-val" data-lang="de"></a></li>
  <li><a class="hotengine-shop-select-language-val" data-lang="en"></a></li>
  <li><a class="hotengine-shop-select-language-val" data-lang="es"></a></li>
  <li><a class="hotengine-shop-select-language-val" data-lang="fr"></a></li>
  <li><a class="hotengine-shop-select-language-val" data-lang="kk"></a></li>
  <li><a class="hotengine-shop-select-language-val" data-lang="pl"></a></li>
  <li><a class="hotengine-shop-select-language-val" data-lang="ru"></a></li>
  <li><a class="hotengine-shop-select-language-val" data-lang="uk"></a></li>
  </span>
  </nav>

CSS стили:
Code: CSS
/*LANGUAGE BLOCK*/
.hotengine-shop-select-language-box { display:inline-block; width:71px; height:auto; overflow:hidden; border:1px solid transparent;  line-height:30px; position:relative; z-index:1000; }
.hotengine-shop-select-language { display:block; width:100%; text-align:center; cursor:pointer; }
.hotengine-shop-select-language-values { display:block; width:100%; vertical-align: top; position:absolute; background:rgba(255, 255, 255, 0.80); }
.hotengine-shop-select-language-box:hover{ overflow:visible;}
.hotengine-shop-select-language-values:hover li{ position:relative; }
.hotengine-shop-select-language-val { width:auto; display:block; margin:0px; vertical-align:top; cursor:pointer; text-align:center; color:inherit; text-decoration:none; }
.hotengine-shop-select-language-val:hover {background:inherit;color:inherit;}


.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="ru"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="ru"]:after { content: "RU"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="en"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="en"]:after { content: "EN"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="uk"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="uk"]:after { content: "UA"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="de"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="de"]:after { content: "DE"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="es"]:after,

.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="es"]:after { content: "ES"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="fr"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="fr"]:after { content: "FR"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="kk"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="kk"]:after { content: "KK"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="be"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="be"]:after { content: "BE"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="ro"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="ro"]:after { content: "RO"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="tr"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="tr"]:after { content: "TR"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="it"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="it"]:after { content: "IT"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="sk"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="sk"]:after { content: "SK"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="da"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="da"]:after { content: "DA"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="pl"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="pl"]:after { content: "PL"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="zh"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="zh"]:after { content: "ZH"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="hi"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="hi"]:after { content: "HI"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="ar"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="ar"]:after { content: "AR"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="pt"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="pt"]:after { content: "PT"; }

.hotengine-shop-select-language-box .hotengine-shop-select-language[lang="bn"]:after,
.hotengine-shop-select-language-box .hotengine-shop-select-language-val[lang="bn"]:after { content: "BN"; }

/*LANGUAGE BLOCK*/

Файл подставляющий пути в ссылки (из link[rel="alternate"]):
Code: JavaScript
<script src="/templates/scripts/hotengine-script-language.js"></script>

Содержание файла

Изменение текстовых элементов на сайте

Многоязычность и замена стандартных надписей

Большинство надписей и элементов на сайте отображаются при помощи CSS псевдоэлементов. Например элемент с классом .hotengine-form-feedback-yourname-title имеет псевдоэлемент с текстом.
Текст разделен при помощи родительского lang атрибута у элемента html.

Пример:
Code: CSS

:lang(ru) .hotengine-form-feedback-yourname-title:after{ content:"Ваше имя:"; }
:lang(en) .hotengine-form-feedback-yourname-title:after{ content:"Your name:"; }
:lang(uk) .hotengine-form-feedback-yourname-title:after{ content:"Ваше ім'я:"; }
:lang(de) .hotengine-form-feedback-yourname-title:after{ content:"Ihr name:"; }
:lang(es) .hotengine-form-feedback-yourname-title:after{ content:"Su nombre:"; }
:lang(fr) .hotengine-form-feedback-yourname-title:after{ content:"Votre nom:"; }
:lang(kk) .hotengine-form-feedback-yourname-title:after{ content:"Сіздің атыңыз:"; }
:lang(be) .hotengine-form-feedback-yourname-title:after{ content:"Ваша імя:"; }
:lang(ro) .hotengine-form-feedback-yourname-title:after{ content:"Numele dvs.:"; }
:lang(tr) .hotengine-form-feedback-yourname-title:after{ content:"Adınız:"; }
:lang(it) .hotengine-form-feedback-yourname-title:after{ content:"Il tuo nome:"; }
:lang(sk) .hotengine-form-feedback-yourname-title:after{ content:"Vaše meno:"; }
:lang(da) .hotengine-form-feedback-yourname-title:after{ content:"Dit navn:"; }
:lang(pl) .hotengine-form-feedback-yourname-title:after{ content:"Twoje imię:"; }
:lang(zh) .hotengine-form-feedback-yourname-title:after{ content:"你的名称:"; }
:lang(hi) .hotengine-form-feedback-yourname-title:after{ content:"आपका नाम:"; }
:lang(ar) .hotengine-form-feedback-yourname-title:after{ content:"اسمك:"; }
:lang(pt) .hotengine-form-feedback-yourname-title:after{ content:"Seu nome:"; }
:lang(bn) .hotengine-form-feedback-yourname-title:after{ content:"আপনার নাম:"; }


Каким образом можно перевести весь сайта?
Создавая многоязычный сайт, укажите язык в создаваемом контенте (странице, меню, категории... )
И используйте пути с указанием языка в начале, /ru/ /en/ ...
Основным языком будет тот, который указан при регистрации сайта.
При добавлении товаров, язык определяется в соответствии с рубрикой в которую он добавляется.
Большинство элементов на сайте вы можете заменять при помощи CSS стилей и псевдоэлементов.

Надписи о количестве товаров
:lang(ru).hotengine-shop-product-price_for-lang-1:after{ content:"за 1 шт";}
Заменяйте число, lang-1, где 1 означает выбранную единицу измерения, а (ru) - язык.

Список значений:
  • 1 - 1 шт;
  • 2 - 100 шт;
  • 3 - 1000 шт;
  • 4 - за 1 упаковку;
  • 5 - 1 кг;
  • 6 - 1000 кг;
  • 7 - 1 м2;
  • 8 - за 1 метр;
  • 9 - за 1 км;
  • 10 - за комплект;
  • 11 - за 1 час;
  • 12 - за 1 день;
  • 13 - за 1 месяц;
  • 14 - за 1 год;
  • 15 - за сотку;
  • 16 - за Акр;
  • 17 - за Гектар;
  • 18 - за участок;
  • 19 - за объект;
  • 30 - за 1 мл;
  • 31 - за 1 л;
  • 32 - за 1 км3;
  • 33 - за 1 м3;
  • 34 - за 1 дм3;
  • 35 - за 1 см3;
  • 36 - за 1 mm3;
  • 37 - за 1 hl;
  • 38 - за 100 грамм;
  • 39 - 1 фунт;
  • 40 - за 1 грамм;
  • 41 - за 10 кг;
  • 42 - за 1 центнер;
  • 43 - за 1 тонна;
  • 44 - за 1 ар;
  • 45 - за 1 пара;
  • 46 - за 1 дюжина;
  • 47 - за 1 галлон;
  • 48 - за 1 баррель;
  • 49 - за 1 минута;
  • 50 - за 1 неделя;
  • 51 - за 1 услугу;
  • 52 - за 1 поездку;
  • 53 - за 1 человека;
  • 54 - за 1 машину;
  • 55 - за 1 м.п.;

Перевод кнопок с помощью JavaScript

Некоторые элементы реализованы без псевдо классов и CSS элементов. Например, такой элемент как кнопка "Отправить" в корзине. Для перевода такого элемента можно использовать Javascript.
Code: JavaScript
<script>
(function() {
    const init = () => {
        const submitBtn = document.querySelector(`#hotengine-shop-cart-form .hotengine-form-submit input[type="submit"]`);
        if (submitBtn) {
            submitBtn.value = `Отправить заказ`;
        }
    };

    if (document.readyState === `loading`) {
        document.addEventListener(`DOMContentLoaded`, init);
    } else {
        init();
    }
})();
</script>

Подробнее ...
Например, в данном случае мы изменяем текст кнопки отправки формы. Код необходимо разместить на странице, где расположена кнопка. Для это необходимо создать функциональную страницу - Корзину. И вставить приведенные в примере код в текст страницы.

Перевод Поискового фильтра

Вы можете использовать один поисковый фильтр для множества языков. Это упростит процесс импорта/экспорта товаров и наполнения сайта.
Перевод осуществляется при помощи инструмента Перевод значений характеристик.

Кроме того, вы можете выполнить перевод при помощи JavaScript. Однако в при таком переводе XML выгрузка характеристик на MarketPlac'ы будет на одном языке.
Например, рассмотрим перевод с Английского на Русский.
Показать

Создайте «Блок/Меню» и разместите его на страницах, где включен поисковый фильтр.
Например в пункте «Введите символы, при обнаружении которых отображать Блок/Меню:» укажите:
/ua/shop/
/ua/pers_shop/

Пример перевода строк, а также кнопки «Применить».
Code: JavaScript
<script>
(function() {
  const $dict = {
    "Color": "Колір",
    "Blue": "Синій",
    "Green": "Зелений",
    "Black": "Чорний"
  };

  /*
  Example translations:
  RU: "Color": "Цвет", "Blue": "Синий", "Green": "Зеленый", "Black": "Черный"
  UA: "Color": "Колір", "Blue": "Синій", "Green": "Зелений", "Black": "Чорний"
  PL: "Color": "Kolor", "Blue": "Niebieski", "Green": "Zielony", "Black": "Czarny"
  */

  const applyTranslations = () => {
    Object.entries($dict).forEach(([txtorig, txtnew]) => {
      const selectors = [
        `#shop_catalog_product_types_id_ajax .product_types_valuebox_checkbox span`,
        `#shop_catalog_product_types_id_ajax .shop_catalog_product_types_block_title`,
        `.shop_catalog_product_properties_block .shop_catalog_product_types_block_title`,
        `.shop_catalog_product_properties_block .product_types_valuebox_checkbox`
      ];

      selectors.forEach(selector => {
        document.querySelectorAll(selector).forEach(el => {
          if (el.textContent.includes(txtorig)) {
            el.innerHTML = txtnew;
          }
        });
      });
    });
  };

  applyTranslations();

  const target = document.getElementById(`shop_catalog_product_types_id_ajax`);
  if (target) {
    const observer = new MutationObserver(() => {
      observer.disconnect();
      applyTranslations();
      observer.observe(target, { childList: true, subtree: true });
    });
    observer.observe(target, { childList: true, subtree: true });
  }

  setTimeout(() => {
    const smartSearchInput = document.querySelector(`.hotengine-smart_search_submit_button input`);
    if (smartSearchInput) smartSearchInput.value = "Застосувати";

    const searchInpButton = document.querySelector(`#searchinp_smart_search .button`);
    if (searchInpButton) searchInpButton.value = "Застосувати";
  }, 100);
})();
  </script>


Пример перевода с перезаписью слов:
Code: JavaScript
<script>
 (function() {
  const $dict = {
    "Colour": "Farbe",
    "Blue": "Blau",
    "Green": "Grün",
    "Black": "Schwarz"
  };

  /*
  Example translations:
  RU: "Colour": "Цвет", "Blue": "Синий", "Green": "Зеленый", "Black": "Черный"
  UA: "Colour": "Колір", "Blue": "Синій", "Green": "Зелений", "Black": "Чорний"
  PL: "Colour": "Kolor", "Blue": "Niebieski", "Green": "Zielony", "Black": "Czarny"
  */

  const applyTranslations = (container) => {
    Object.entries($dict).forEach(([txtorig, txtnew]) => {
      const regex = new RegExp(txtorig, "g");
      if (container.innerHTML.includes(txtorig)) {
        container.innerHTML = container.innerHTML.replace(regex, txtnew);
      }
    });
  };

  const target = document.getElementById(`shop_catalog_product_types_id_ajax`);
  if (target) {
    applyTranslations(target);

    const observer = new MutationObserver(() => {
      observer.disconnect();
      applyTranslations(target);
      observer.observe(target, { childList: true, subtree: true });
    });
    observer.observe(target, { childList: true, subtree: true });
  }

  setTimeout(() => {
    const smartSearchInput = document.querySelector(`.hotengine-smart_search_submit_button input`);
    if (smartSearchInput) smartSearchInput.value = "Anwenden";

    const searchInpButton = document.querySelector(`#searchinp_smart_search .button`);
    if (searchInpButton) searchInpButton.value = "Anwenden";
  }, 100);
})();
  </script>

Аналогично, вы можете добавить другие языки и новые слова, размещая код на соответствующие языковые версии сайта.

Акции (таймер обратного отсчета в магазине)

Перевод на примере таймера. В товарам предусмотрена возможность автоматического создания таймера обратного отсчета. При добавлении товара нажмите галочку "Акционный товар", и в появившемся блоке нажмите "Включить таймер". Установите срок истечения таймера. После истечения указанного срока можно задать действие, например, удалить акцию, или изменить цену...

Как изменить надписи в таймере?

При помощи CSS стилей можно заменить слова в таймере. Для этого, например, в товаре вставьте css html код:
Code: CSS
<style type="text/css">
<!--

/*надпись осталось до конца*/

:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-day:after{
   content:"дней";
}
:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-hourse:after{
   content:"часов";
}
:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-minute:after{
   content:"минут";
}
:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-seconds:after{
   content:"секунд";
}
:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-left:after{
   content:"осталось до конца акции!";
}
:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-done:after{
   content:"Акция завершена!";
}


:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-day:after{
   content:"days";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-hourse:after{
   content:"hours";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-minute:after{
   content:"minute";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-seconds:after{
   content:"seconds";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-left:after{
   content:"left before the end of the campaign!";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-done:after{
   content:"Сampaign complete!";
}


:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-day:after{
    content:"dni";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-hourse:after{
    content:"godziny";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-minute:after{
    content:"minuty";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-seconds:after{
    content:"sekundy";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-left:after{
    content:"pozostało do końca promocji!";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-description-akciya-countdown-l-done:after{
    content:"Ackia ukończona!";
}






:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-days:after{
   content:"дней";
}
:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-hours:after{
   content:"часов";
}
:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-minutes:after{
   content:"минут";
}
:lang(ru) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-seconds:after{
   content:"секунд";
}




:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-days:after{
   content:"days";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-hours:after{
   content:"hours";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-minutes:after{
   content:"minute";
}
:lang(en) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-seconds:after{
   content:"seconds";
}



:lang(uk) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-days:after{
   content:"днів";
}
:lang(uk) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-hours:after{
   content:"годин";
}
:lang(uk) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-minutes:after{
   content:"хвилин";
}
:lang(uk) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-seconds:after{
   content:"секунд";
}


:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-days:after{
   content:"dni";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-hours:after{
   content:"godziny";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-minutes:after{
   content:"minuty";
}
:lang(pl) #hotengine-shop-product-description-akciya-countdown-block .hotengine-shop-product-akciya-countdown-numbers-seconds:after{
   content:"sekundy";
}


-->
</style>


lang(en) или lang(ru) - это язык для которого будет соответствующая надпись, а далее задан сам блок для которого изменить надпись.


Как использовать Таймер на других страницах?
Вставьте следующий код, для использования нашего счетчика обратного отсчета:
Code: JavaScript
<div id="hotengine-shop-product-description-akciya-countdown-block"><div id="hotengine-shop-product-description-akciya-countdown"></div><div class="hotengine-shop-product-akciya-countdown-numbers"><span class="hotengine-shop-product-akciya-countdown-numbers-days"><i></i></span><span class="hotengine-shop-product-akciya-countdown-numbers-hours"><i></i></span><span class="hotengine-shop-product-akciya-countdown-numbers-minutes"><i></i></span><span class="hotengine-shop-product-akciya-countdown-numbers-seconds"><i></i></span></div><span class="hotengine-shop-product-description-akciya-countdown-l-left"></span></div>  

<link rel="stylesheet" type="text/css" href="/templates/javascript_timer_countdown/hotengine_timer_countdown.css" />
<script src="/templates/javascript_timer_countdown/hotengine_timer_countdown.js"></script>
<script>
document.addEventListener("DOMContentLoaded", () => {
    let timerperiod = 5 * 12 * 60 * 60 * 1000; // timer period, in the example 5 days 12 hours ( 5*12 ...) (for example, here the date is constantly shifting, i.e. current date + XX days.)

    // cookies last visit (subtract last visit time)
    let cookieName = `cookie_lastvisit_countdown_timer`;
    let cookieValue = document.cookie.split(`;`).find(c => c.trim().startsWith(`${cookieName}=`))?.split(`=`)[1];
    
    let cookie_lastvisit_minus = 0;
    if (cookieValue && cookieValue !== "null") {
        cookie_lastvisit_minus = new Date().getTime() - parseInt(cookieValue);
    } else {
        cookie_lastvisit_minus = 0;
    }

    let checkdate = timerperiod - cookie_lastvisit_minus; // to check the date of the last visit and the end of the promotion
    let counterdisable = false;

    if (checkdate > 0) {
        counterdisable = false;
    } else {
        cookie_lastvisit_minus = 0;
        counterdisable = true;
    }

    let cookie_lastvisit_countdown_timerv = new Date().getTime() - cookie_lastvisit_minus;
    document.cookie = `${cookieName}=${cookie_lastvisit_countdown_timerv}; path=/;`;
    // cookies last visit (subtract last visit time)

    let ts = new Date().getTime() + timerperiod - cookie_lastvisit_minus; // set the promotion end date
    hotengine_inittimer("hotengine-shop-product-description-akciya-countdown-block", new Date(ts));
});
</script>

Что бы изменить надписи счетчика, откройте файл стиля /templates/javascript_timer_countdown/hotengine_timer_countdown.css, скопируйте его код, и вставив на страницу измените надписи.

Изменение блоков сайта и редактор дизайна

Основные блоки сайта и способы изменения дизайна

Основные блоки сайта

ID и Class'ы основных блоков сайта.





#hotengine-wrapper

#hotengine-header

GRID *
#hotengine-content-container
.hotengine-wrap-container-side-left .menu_position_top .hotengine-wrap-container-side-right
#hotengine-content
.hotengine-wrap-container-side-center
«тип страницы»


.menu_position_buttom


#hotengine-footer


* - Основной внутренний блок с контентом реализован при помощи CSS Grid:
CSS Grid
Code: CSS
/*CONTENT GRID*/

#hotengine-content-container { display: grid;
  grid-template-areas:"container-left container-center container-right";
  grid-template-columns:0% 1fr 0%;
  margin:0 auto; width:100%;
}

#hotengine-content-container[data-hasside="both"]{
  grid-template-areas:"container-left container-center container-right";
  grid-template-columns: auto 1fr auto;
}
#hotengine-content-container[data-hasside="left"]{
  grid-template-areas:"container-left container-center";
  grid-template-columns: auto 1fr;
}
#hotengine-content-container[data-hasside="right"]{
  grid-template-areas:"container-center container-right";
  grid-template-columns: 1fr auto;
}

.hotengine-wrap-container-side-center { grid-area: container-center; vertical-align:top; margin:0 auto; width:100%;}
.hotengine-wrap-container-side-left   { grid-area: container-left; vertical-align:top; margin:0 auto; width:auto; max-width:270px;  }
.hotengine-wrap-container-side-right  { grid-area: container-right; vertical-align:top; margin:0 auto; width:auto; max-width:270px; }

.menu_position_top { display:block;    width:100%;  }
.menu_position_buttom { display:block; width:100%; }

@media (max-width:767px){
#hotengine-content-container[data-hasside="both"]{
  grid-template-areas:"container-center container-left container-right";
  grid-template-columns: 1fr auto auto;
}
#hotengine-content-container[data-hasside="left"]{
  grid-template-areas:"container-center container-left";
  grid-template-columns: 1fr auto ;
}
#hotengine-content-container[data-hasside="right"]{
  grid-template-areas:"container-center container-right";
  grid-template-columns: 1fr auto ;
}
}
/*CONTENT GRID*/

data-hasside - дополнительный атрибут элемента #hotengine-content-container, который сообщает о наличии левого и правого блока.
  • [data-hasside="left"] - присутствует левый блок/меню
  • [data-hasside="right"] - присутствует правый блок/меню
  • [data-hasside="both"] - присутствует левый и правый блок/меню


Внутри данных блоков будет располагаться созданный вами контент, или меню.
Каждый «тип страницы» выделен соответствующим блоком, с присвоением определенного ID.
Например:
  • Страницы - #hotengine-content-page
  • Каталог статей - #hotengine-content-blog
  • Каталог товаров - #hotengine-content-shop
  • Каталог товаров (производители) - #hotengine-content-shop
  • Каталог товаров (коллекции) - #hotengine-content-shop

Данный блок создается внутри элемента #hotengine-content

Кроме того, на страницах категорий, где есть дочерний список страниц, добавляется class:
  • Каталог товаров - .hotengine-content-shop-category
  • Каталог товаров (коллекции) - .hotengine-content-shop-collection
  • Каталог товаров (производителии) - .hotengine-content-shop-producer
  • Каталог статей - .hotengine-content-blog-category

Для Блоков/Меню списка статей создается дополнительный блок (можно отключить в настройках):
Меню последних статей - #hotengine-content-menu-lastblogpost

Как менять дизайна сайта

Вы можете изменить дизайн сайта в Редакторе дизайна. С его помощью можно задать основные цвета элементов, размеры и положения некоторых элементов, изменить Шапку сайта и другое.
При помощи указателя мыши вы можете изменить высоту шапки сайта, размер логотипа, положение главного меню и слогана.


Как создать собственный дизайн Шапки сайта?


Создайте Блок/Меню с расположение в Header (Шапке сайта) и разместите в нем необходимые элементы. Например, Div с телефоном, и Div с надписью о компании (не забудьте присвоить им соответствующий class или id, для последующего обращения к ним по заданным значениям).
Откройте редактор дизайна, задайте положение и свойства дизайна к созданным элементам в CSS стилях.
Таким же образом можно создавать любые графические элементы на сайте и располагать их в нужных вам местах.
Использование встроенных элементов и коротких кодов для верстки.
Кроме создания собственных элементов, на платформе Hotlist.biz существует ряд заранее заданных классов и ID, которые позволяют быстро и удобно использовать базовые элементы магазина без необходимости писать их с нуля.

Какие элементы уже имеют встроенные классы или ID:
  • Кнопка «Добавить в корзину»
  • Корзина
  • Иконка «Добавить в избранное»
  • Иконка «Добавить в сравнение»
  • Все базовые элементы карточки товара: цена, наличие, характеристики, блок с описанием, вкладки в карточке товара
  • Заголовки страниц
  • Виджеты с товарами
  • Мобильное меню
  • Заголовки разновидностей товара
  • Каждая страница имеет уникальный класс или ID, а родительский элемент id="hotengine-wrapper" содержит идентификатор текущей открытой страницы.
Большинство функциональных элементов на сайте уже имеют уникальные идентификаторы (ID) или классы, которые не будут изменены при обновлениях платформы, и их можно использовать при создании собственной верстки или дизайна страниц.

Как использовать встроенные элементы в своём дизайне:
Для вставки некоторых элементов в ваш собственный макет или шаблон, можно использовать короткие коды.
Например:
  • Иконка Корзины с ее содержимым
  • Иконка «Добавить в корзину»
  • Иконка «Добавить в избранное»
  • Иконка «Сравнение товаров» с ее содержимым
  • Виджеты
Использование коротких кодов позволяет быстро и корректно интегрировать стандартные элементы магазина в вашу собственную верстку без ошибок.

Рекомендации по CSS:
  • Прописывайте CSS-стили в редакторе дизайна платформы.
  • Файл автоматически минифицируется (сжимается), что ускоряет работу сайта и улучшает SEO.
  • Можно создавать индивидуальные стили для любых элементов, включая встроенные ID и классы, а также для собственных блоков, чтобы полностью контролировать внешний вид сайта.
С помощью встроенных классов, ID и коротких кодов вы можете создавать профессиональные и уникальные макеты, комбинируя свои блоки с готовыми элементами платформы. Это позволяет сократить время разработки и гарантировать корректное отображение всех функций магазина.

Как сбросить дизайн?

Для того, чтобы вернуть значение по умолчанию, откройте Редактор дизайна и удалите текущее значение для нужного элемента или нажмите на кнопку "Вернуть значение по умолчанию".

CSS стили

Вы можете использовать CSS для оформления любых элементов на сайте. Для выбора элемента нажмите правой кнопкой мыши по элементу, и "Проинспектировать элемент". Скопируйте ID или Class объекта и вставьте во вкладку «Css стили» в редакторе дизайна.

Если вы используете подключаемый шаблон, то его стили имеют меньший приоритет, чем некоторые из указываемых выше значения. Перед использованием подключаемого шаблона, рекомендуем сначала вернуть значение дизайна по умолчанию.

Css стили по умолчанию: CSS файл Основные блоки сайта
Css стили текстовых значений:

Шаблонизация

На данный момент мы используем специальную разметку для элементов, помеченные классы "hotengine-", упорядоченную структуру отображения элементов, а также скрытые данные. Практически все надписи на сайте реализованы при помощи CSS after элементов.
Если смещение и позиционирование элементов не удается сделать при помощи CSS, то вы можете использовать Javascript и перемещать объекты по странице.
Изменение положения некоторых элементов при помощи Javascript.
Code: html
<script>
document.addEventListener("DOMContentLoaded", () => {
    const el = document.querySelector(`.hotengine-shop-product-desc-block .hotengine-shop-product-producer`);
    const newproducer = el ? el.innerHTML : null;

    if (newproducer && newproducer !== "" && newproducer !== "undefined") {
        el.style.display = "none";
        const skuBox = document.querySelector(`.hotengine-shop-product-sku-box`);
        if (skuBox) {
            skuBox.insertAdjacentHTML("afterend", `${newproducer}`);
        }
    }
});
</script>


В данном примере мы проверяем, указан ли производитель. Если производитель указан, то скрыть его и разместить после поля "Код товара".

"Обертывание" элементов при помощи Javascript.
Code: html
<script>
  document.addEventListener("DOMContentLoaded", () => {
    document.querySelectorAll(`.element`).forEach(el => {
        const wrapper = document.createElement("div");
        wrapper.className = "new";
        el.parentNode.insertBefore(wrapper, el);
        wrapper.appendChild(el);
    });
});
</script>

В результате объект с классом element будет "обернут" в div с классом new (<div class="new"><span class="element"></span></div>)

Шаблоны

Кроме базовых стилей в редакторе дизайна вы можете устанавливать готовые шаблоны.
Каталог шаблонов - https://templates.hotlist.biz/

Редактор

На платформе предусмотрен HTML редактор TynyMce, через который можно осуществлять оформление страниц, карточек товаров, сататей и блоков/меню. В редакторе реализована вставка изображений, и готовых «Кодов» для отображение рубрик магазина, списка товаров, списка статей, на любые страницы. Встроенные коды позволяют вставлять, например, на главную страницу, список определеных товаров с заданными параметрами (генератор списка товаров отдельная инструкция) или список категорий, в том числе и в Блоки/Меню (Виджетом с категориями магазина).

Демонстрация редактора

Оформление текста на Hotlist.biz с помощью ИИ

Статистика

Google Analytics:


Вы можете включить отслеживание посетителей при помощи Google Analytics на странице Настройки, во вкладке Статистика/Google Analytics.

При использовании тегов отслеживания будут передаваться стандартные события электронной коммерции для Google Analytics 4 или Google Tag Manager. Кроме того, на странице оформления заказа или отправки формы можно дополнительно установить собственные коды конверсии.
Описания событий:
Google Analytics 4: https://developers.google.com/analytics/devguides/collection/ga4/events
Google Tag Manager: https://developers.google.com/tag-platform/tag-manager/datalayer
Кроме того, вы сможете реализовать передачу собственных тегов, используя JavaScript, Короткие коды и Микроразметку hotengine-markers, которые позволяют заменять динамические данные.

  • add_to_cart – добавление товара в корзину
  • add_to_wishlist – добавление товара в избранные
  • begin_checkout – начало оформления заказа
  • purchase – успешное оформление заказа
  • remove_from_cart – удаление товара из корзины
  • search – поиск по сайту
  • select_item – выбор разновидности товара
  • generate_lead – отправка данных через форму
  • sign_up – регистрация
  • view_cart – просмотр корзины
  • view_item – просмотр карточки товара
  • view_item_list – просмотр списка товаров (категория, подборка, рекомендации и т.п.)

Facebook Pixel:


 Идентификатор отслеживания Facebook Pixel можно указать в общих настройках сайта, во вкладке «Статистика». Пиксель будет передавать данные о посещении страниц (PageView), события добавления товара в корзину (AddToCart), просмотр товара (ViewContent), начало (InitiateCheckout) и завершение оформления заказа (Purchase). Стоимость товара формируется в USD по курсу вашего сайта.

Кроме того, вы можете создать блок меню для генерации пикселя с данными о товаре самостоятельно.
Инструкция

Внимание! При создании кода пикселя не через настройки сайта, обязательно нужно предварительно добавлять основной код пикселя. Для этого создайте блок/меню с основным кодом пикселя и расположите в служебных тегах, отображаемом на всех страницах. При этом в общих настройках сайта, код пикселя указывать не нужно. Если код пикселя в основных настройках указан, то код Products Merchant Facebook на сайте уже установлен.

Блок меню для генерации пикселя с данными о товаре


Создайте блок/меню со следующим кодом:
Code: JavaScript
<script>
fbq('track', 'ViewContent', {
content_name: '{HOTENGINE-SC:shop_cat_page_title}',
content_ids: ['{HOTENGINE-SC:shop_cat_page_id}'],
content_type: 'product',
value: {HOTENGINE-SC:shop_cat_page_price},
currency: '{HOTENGINE-SC:shop_cat_page_currency_iso}'
});
</script>


Показывать Блок/Меню на страницах:Только на страницах Магазина
Введите символы, при обнаружении которых отображать Блок/Меню:htm
Введите символы, при обнаружении которых не отображать Блок/Меню:cart



Если необходимо добавить событие после отправки заявки через Форму, то после текста об успешной отправки данных добавьте следующий код:
Code: html
<script>
fbq('track', 'Purchase');
</script>

Реферальные хвосты:

    На сайте доступно использование Реферальных хвостов. При заказе товаров или отправке письма через обратную связь, к письму будут добавлены данные об источнике перехода на ваш сайт. Так же при использовании UTM окончаний (Компоновщик URL) эти данные будут добавлены к письму.
    Кроме стандартных данных компоновщика доступно разделение источника по группам, которые используются в статистике продаж для разделения источников и более удобного подсчета конверсий. Значение группы можно задать при помощи GET переменно "hotengine_referral_group". Если значение не указано, и указан utm_source, то оно будет использовано для указания группы hotengine_referral_group.
    Данные об источнике перехода могут быть скрыты настройками браузера посетителя или при помощи защищенного протокола сайта источника. Кроме того вы можете дополнительно группировать заказы при помощи переменной "shop_cart_statistic_group" в ссылке, или вручную после оформления заказа.

    Включить Реферальные хвосты вы можете на странице Настройки, во вкладке Статистика.

    Пример ссылки с UTM разметкой:
    https://hotlist.biz/?utm_source=google&utm_medium=cpc&utm_term=slova&utm_content=soderjimoe&utm_campaign=nazvnie

    Пример ссылки с авторазметкой Яндекс Директ, и UTM разметкой:
    https://hotlist.biz/?utm_source=yandex_{source_type}&utm_medium=cpc&utm_term={keyword}&utm_campaign=id:{campaign_id}&utm_content=ad:{ad_id}|gbid:{gbid}|phrase:{phrase_id}|param1:{param1}|position_type:{position_type}|position:{position}|source:{source}|source_type:{source_type}|param2:{param2}
    Полная инструкция

    Пример ссылки с авторазметкой Goolge Adwords, и UTM разметкой:
    https://hotlist.biz/?utm_source=google_adwords_{network}&utm_medium=cpc&utm_term={keyword}&utm_campaign={campaignid}&utm_content=creative:{creative}|from:{ifsearch:search}{ifcontent:content}|matchtype:{matchtype}|adgroupid:{adgroupid}|feeditemid:{feeditemid}|targetid:{targetid}|device:{device}|adposition:{adposition}|placement:{placement}|network:{network}|param1:{param1}|param2:{param2}
    Полная инструкция

Интеграция с «1С», «ERP», CRM-системами и CommerceAPI

Автоматический экспорт при заказе / Отправка POST данных о заказе в JSON формате

Автоматический экспорт при заказе вы можете включить в настройках сайта, во вкладке «Магазин», указав путь для отправки данных.
На указанный адрес будет отправляться POST запрос, со всеми данными о заказе, в том числе и контактные данные заказчика, и перечень товаров. Контактные данные и информация о заказе будет передаваться в JSON формате, POST запросом.
Например, в 1с вы можете реализовать прием заказов через «HTTP сервис»->«SiteExchange» -> «POSTData»

После оформления заказа, на указанный выше адрес будет отправлен POST запрос, со следующими данными:
 Code: JSON
{
  "ORDER": {
    "buyer_name": "NAME",
    "buyer_soname": "SONAME",
    "buyer_phone": "PHONENUMBER123",
    "buyer_email": "email@email.com",
    "buyer_address": "ADDRESS",
    "delivery_storehouse_title": "Extend PICKUP POINT (Selected)",
    "buyer_address_eform0": "Extend ADDRESS (Selected)",
    "buyer_address_eform1": "Extend ADDRESS (Region)",
    "buyer_address_eform2": "Extend ADDRESS (City)",
    "buyer_address_eform3": "Extend ADDRESS (Street)",
    "buyer_address_eform4": "Extend ADDRESS (Home number)",
    "buyer_address_eform5": "FLAT",
    "buyer_address_eform6": "Extend ADDRESS (Branch number)",
    "buyer_sendedtext": "ADD TEXT",
    "post": "1596538754",
    "lang": "en",
    "form_delivery": "",
    "form_delivery_country_code": "",
    "order_id": "XXXXX",
    "customer_id": "XXXX",
    "order_discount": "",
    "order_hash": "55d4ed2ed42b2c116d9927c2b2ce7fef",
    "time": "2025-06-28T12:31:49+00:00",
    "delivery": "",
    "delivery_id": 0,
    "abtesting": 0,
    "referral_group": "",
    "group": "",
    "referral_url": "https://hotlist.biz/....",
    "referral_utm": "",
    "site_id": "10954",
    "site_url": "hotlist.biz",
    "transaction_id": "XXXXX",
    "total": 2264,
    "currency": "UAH",
    "shipping": "0",
    "items": [
      {
        "id": "284430",
        "name": "Adidas Originals Streetball Trainers FX9701 (42)",
        "sku": "200976_42",
        "sku_parent": "200976",
        "variant": "42",
        "category": "sport_shoes",
        "quantity": "1",
        "price": "686",
        "currency": "UAH",
        "variations_id": "409151"
      },
      {
        "id": "284436",
        "name": "Shoe bag with pocket Kite Education College",
        "sku": "200982",
        "sku_parent": "200982",
        "variant": "",
        "category": "bags_for_shoes",
        "quantity": "1",
        "price": "736",
        "currency": "UAH",
        "variations_id": 0
      },
      {
        "id": "284438",
        "name": "ASICS Gel-Venture 8 Gs Trainers (43)",
        "sku": "200984_43",
        "sku_parent": "200984",
        "variant": "43",
        "category": "sport_shoes",
        "quantity": "1",
        "price": "842",
        "currency": "UAH",
        "variations_id": "409154"
      }
    ]
  }
}


Если после отправки запроса, ваш сервис вернет JSON данные, с содержанием «Number» или «crm_order_id», то к заказу будет добавлен внешний номер заказа.

Автоматический экспорт статистики продаж / Отправка POST данных о заказе в JSON формате

Автоматический экспорт статистики продаж вы можете включить в настройках сайта, во вкладке «Магазин», указав путь для отправки данных.
На указанный адрес будет отправляться POST запрос, со всеми данными о заказе, которые изменяются в Статистике продаж. Информация будет передаваться POST запросом в JSON формате.
Например, в 1с вы можете реализовать прием заказов через «HTTP сервис»->«SiteExchange» -> «POSTData»
Кроме того вы можете включить внешний доступ к вашей статистике, указав «Ключ для доступа к статистике продаж».

После изменения статуса заказа (кроме быстрого редактирования статусов), на указанный выше адрес будет отправлен POST запрос в JSON формате, со следующими данными:
 Code: JSON
{
  "ORDER": {
    "crm_order_id": "123",
    "total": "2264",
    "currency": "UAH",
    "discount": "",
    "discount_before": "",
    "total_before": "2264",
    "currency_before": "UAH",
    "shop_cart_statistic_selldone_datestump_unsted": "0",
    "status": "0",
    "status_pay": "0",
    "allow_online_pay": "0",
    "status_for_customer": "0",
    "delivery_status": "0",
    "products_preview": "",
    "admin_note": "",
    "delivery_selected_id_before": "3482",
    "delivery_selected_id": "3482",
    "delivery_track_id": "",
    "delivery_track_id_link": "",
    "buyer_name": "NAME SONAME",
    "buyer_phone": "PHONENUMBER123",
    "buyer_address": "ADDRESS",
    "buyer_address_eform0": "Extend ADDRESS (Selected)",
    "buyer_address_eform1": "Extend ADDRESS (Region)",
    "buyer_address_eform2": "Extend ADDRESS (City)",
    "buyer_address_eform3": "Extend ADDRESS (Street)",
    "buyer_address_eform4": "Extend ADDRESS (Home number)",
    "buyer_address_eform5": "Extend ADDRESS (Flat)",
    "buyer_address_eform6": "Extend ADDRESS (Branch number)",
    "buyer_email": "email@email.com",
    "payment_method": "PaymentMethod (Selected)",
    "group": "",
    "referral_group": "",
    "referral_url": "http://hotlist.biz",
    "referral_utm": "",
    "site_manager_id_operator": "1",
    "buyer_id": "16532",
    "manager_id_operator": "0",
    "order_products": "284430|284436|284438",
    "order_products_sku": "200976_42|200982|200984_43",
    "order_products_num": "1|1|1",
    "order_products_variations_id": "409151|407678|409154",
    "order_products_prices": "686|736|842",
    "order_products_currency": "UAH|UAH|UAH",
    "order_products_titles": "Adidas Originals Streetball Trainers FX9701|Shoe bag with pocket Kite Education College|ASICS Gel-Venture 8 Gs Trainers",
    "order_products_variations_titles": "42||43",
    "order_products_prices_without_discount": "||",
    "post": "1596578917",

    "Save": "Save",
    "order_id": 63738,
    "order_discount": "",
    "time": "2025-06-28T12:31:49+00:00",
    "delivery": null,
    "delivery_id": "3482",
    "referral_group": "",
    "group": "",
    "referral_url": "http://hotlist.biz/ru/pers_shop/sport_shoes/284438.htm",
    "referral_utm": "",
    "site_url": "hotlist.biz",
    "transaction_id": 63738,
    "crm_oder_id": "123",
    "total": "2264",
    "currency": "UAH",
    "items": [
      {
        "id": "284430",
        "name": "Adidas Originals Streetball Trainers FX9701",
        "sku": "200976_42",
        "variant": "42",
        "quantity": "1",
        "price": "686",
        "currency": "UAH",
        "variations_id": "409151",
        "price_without_discount": ""
      },
      {
        "id": "284436",
        "name": "Shoe bag with pocket Kite Education College",
        "sku": "200982",
        "variant": "",
        "quantity": "1",
        "price": "736",
        "currency": "UAH",
        "variations_id": "407678",
        "price_without_discount": ""
      },
      {
        "id": "284438",
        "name": "ASICS Gel-Venture 8 Gs Trainers",
        "sku": "200984_43",
        "variant": "43",
        "quantity": "1",
        "price": "842",
        "currency": "UAH",
        "variations_id": "409154",
        "price_without_discount": ""
      }
    ]
  }
}
'status' - '3', статус сделки // 0 - Не обработан, 1 - Заказ в обработке, 3 - Обработан, 2 - Отменен, 5 - Отменен (Нет в наличии), 6 - Отменен (Отказ), delete - Удалить заказ

'status_pay' - '0', Статус заказа // 0-Не указано, 1 - Оплачен онлайн, не проверен, 4 - Оплачен онлайн и проверен, 2 - Оплачен, 3 - Предоплачен, 5 - Ожидается оплата

'status_for_customer' - '1', Статус для покупателя // 0 - Не обработан, 1 - Обрабатывается, 3 - Отправлен / Обработан, 2 - Отменен

'admin_note' - 'Примечание администратору'

'delivery_status' - '0', 0 - Не указано, 1 - Доставлено, 2 - Не доставлено, 3 - Ожидается отправка, 4 - Передано курьеру, 5 - В пути, 6 - Отправлено на почтовое отделение, 7 - Отправлено на адрес получателя, 8 - Доставлено на почтовое отделение, 9 - Доставлено на адрес получателя

'crm_order_id' - 'XXX', Внешний код заказа (для использования в сторонних CRM)

Подробнее ознакомиться с полями вы можете в статистике продаж, при редактировании заказа.


При изменении товаров в заказе, отправляется JSON запрос с перечнем item, а также номер заказа:
 Code: JSON
{
  "ORDER": {
    "crm_order_id": "123",
    "order_id": 63738,
    "total": "2264",
    "currency": "UAH",
    "discount": "",
    "discount_before": "",
    "total_before": "2264",
    "currency_before": "UAH",
    "shop_cart_statistic_selldone_datestump_unsted": "0",
    "status": "0",
    "status_pay": "0",
    "allow_online_pay": "0",
    "status_for_customer": "0",
    "delivery_status": "0",
    "products_preview": "",
    "admin_note": "",
    "delivery_selected_id_before": "3482",
    "delivery_selected_id": "3482",
    "delivery_track_id": "",
    "delivery_track_id_link": "",
    "buyer_name": "NAME SONAME",
    "buyer_phone": "PHONENUMBER123",
    "buyer_address": "ADDRESS",
    "buyer_address_eform0": "Extend ADDRESS (Selected)",
    "buyer_address_eform1": "Extend ADDRESS (Region)",
    "buyer_address_eform2": "Extend ADDRESS (City)",
    "buyer_address_eform3": "Extend ADDRESS (Street)",
    "buyer_address_eform4": "Extend ADDRESS (Home number)",
    "buyer_address_eform5": "Extend ADDRESS (Flat)",
    "buyer_address_eform6": "Extend ADDRESS (Branch number)",
    "buyer_email": "email@email.com",
    "payment_method": "PaymentMethod (Selected)",
    "group": "",
    "referral_group": "",
    "referral_url": "http://hotlist.biz",
    "referral_utm": "",
    "site_manager_id_operator": "1",
    "buyer_id": "16532",
    "manager_id_operator": "0",
    "order_products": "284430|284436|284438",
    "order_products_sku": "200976_42|200982|200984_43",
    "order_products_num": "1|1|1",
    "order_products_variations_id": "409151|407678|409154",
    "order_products_prices": "686|736|842",
    "order_products_currency": "UAH|UAH|UAH",
    "order_products_titles": "Adidas Originals Streetball Trainers FX9701|Shoe bag with pocket Kite Education College|ASICS Gel-Venture 8 Gs Trainers",
    "order_products_variations_titles": "42||43",
    "order_products_prices_without_discount": "||",
    "post": "1596578917",

    "Save": "Save",
    
    "order_discount": "",
    "time": "2025-06-28T12:31:49+00:00",
    "delivery": null,
    "delivery_id": "3482",
    "referral_group": "",
    "group": "",
    "referral_url": "http://hotlist.biz/ru/pers_shop/sport_shoes/284438.htm",
    "referral_utm": "",
    "site_url": "hotlist.biz",
    "transaction_id": 63738,
    

    "items": [
      {
        "id": "284430",
        "name": "Adidas Originals Streetball Trainers FX9701",
        "sku": "200976_42",
        "variant": "42",
        "quantity": "1",
        "price": "686",
        "currency": "UAH",
        "variations_id": "409151",
        "price_without_discount": ""
      },
      {
        "id": "284436",
        "name": "Shoe bag with pocket Kite Education College",
        "sku": "200982",
        "variant": "",
        "quantity": "1",
        "price": "736",
        "currency": "UAH",
        "variations_id": "407678",
        "price_without_discount": ""
      },
      {
        "id": "284438",
        "name": "ASICS Gel-Venture 8 Gs Trainers",
        "sku": "200984_43",
        "variant": "43",
        "quantity": "1",
        "price": "842",
        "currency": "UAH",
        "variations_id": "409154",
        "price_without_discount": ""
      }
    ]
  }
}

Доступ к статистике продаж / JSON


Укажите ключ для доступа к статистике продаж в настройках, во вкладке «Магазин». Если вам необходимо получить доступ к статистике продаж внешним приложением, то вы можете выполнить (POST/GET или AJAX) запрос по адресу «/ajax.php?statistic_sell»

При этом необходимо указать ключ в запросе, с шифрованием MD5. Например, если у вас указан ключ «123», то в запросе это будет «202cb962ac59075b964b07152d234b70».

В таком случае запрос будет выглядеть так: «/ajax.php?statistic_sell&key=202cb962ac59075b964b07152d234b70»
В запросе можно указать данные для сортировки или поиска (GET/POST параметры), которые можно взять на вашей странице статистики продаж в админ-центре (/page.php?p=statistic_sell&mystat). Сортировка и выбор параметров осуществляется GET/POST запросом, например, «&sort_dateperiod=1week» означает, что будет отображаться статистика продаж за неделю.

Данные отображаются в JSON формате.

Обратите внимание, что если вы используете открытые для посетителей запросы странице, то при помощи вашего ключа они смогут получить доступ к вашей статистике продаж.

Доступ к прайсу магазина / Полная выгрузка прайса в CSV


Укажите ключ для доступа к прайсу магазина в настройках, во вкладке «Магазин». Полная выгрузка прайса находится по адресу «/csv_export_products.csv»

При этом необходимо указать ключ в запросе, с шифрованием MD5. Например, если у вас указан ключ «123», то в запросе это будет «202cb962ac59075b964b07152d234b70».

В таком случае запрос будет выглядеть так: «/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70»
В запросе можно указать данные для сортировки и выборке полей, которые можно взять на вашей странице экспорта в админ-центре (/page.php?p=submit_catalog_page&subpage&export_from_shop). Сортировка и выбор параметров осуществляется GET/POST запросом, например, «&export_product_access=export_product_access» означает, что будет выгружать поле с данными о доступе к товару.

Данные отображаются в CSV формате.

Файл выгрузки кешируется для уменьшения нагрузки и обновляется раз в сутки. Удалить кеш можно при помощи кнопки «Очистить кеш XML/CSV выгрузок».

Пример: https://templatedemo437544.hotlist.biz/csv_export_products.csv?key=202cb962ac59075b964b07152d234b70

Дополнительно реализован механизм обмена данными через API, схожий с WooCommerce API. API позволяет получать и обновлять инофмация о заказах и товарах, а также категориях. Инструкции и настройки в разделе «Магазин» - «Обмен данными JSON Commerce API».

Commerce API (Products/Categories/Sales Statistics)

Commerce API — Краткий мануал по методам

Ключ доступа

Для работы с API нужен ключ доступа (Consumer Secret), который вы создаете в резделе «Настройка», «Магазин», «Доступ к статистике продаж». Ключ формируется на основе Ключа для доступа к статистике продаж.

Методы API (HTTP)

Все запросы идут на базовый URL вашего сайта, например: https://site.com/api/commerce/ или https://site.com/wp-json/wc/v3/

1. Статистика продаж

МетодURLОписание
GET /orders Получить статистику заказов
GET /orders/{id} Получить статистику отдельного заказа по ID
GET /crm_orders/{id} Получить статистику отдельного заказа по внещнему CRM ID
DELETE /orders/{id} Удалить заказ по ID
DELETE /crm_orders/{id} Удалить заказ по внещнему CRM ID
POST /orders Добавить новый заказ
UPDATE /orders/{id} Обновить заказ по ID (PATCH/PUT/UPDATE)
UPDATE /crm_orders/{id} Обновить заказ по внещнему CRM ID (PATCH/PUT/UPDATE)

2. Товары

МетодURLОписание
POST /products Массовое добавление и обновление товаров
GET /products Получить список товаров
GET /products/{id} Просмотр отдельного товара по ID
GET /products/sku/{sku} Просмотр отдельного товара по SKU (коду товара)
UPDATE /products/{id} Обновить товар по ID (PATCH/PUT/UPDATE)
UPDATE /products/sku/{sku} Обновить товар по SKU (коду товара) (PATCH/PUT/UPDATE)
UPDATE /products Массовое обновление нескольких товаров (PATCH/PUT/UPDATE)
DELETE /products/{id} Удалить товар по ID
DELETE /products/sku/{sku} Удалить товар по SKU (коду товара)

3. Категории магазина

МетодURLОписание
POST /products/categories Массовое добавление и обновление категорий
GET /products/categories Получить список категорий товаров
GET /products/categories/{id} Получить категорию по ID
GET /products/categories/id/{id} Получить категорию по ID (альтернативный вариант)
GET /products/categories/name/{name} Получить категорию по имени
UPDATE /products/categories Массовое обновление нескольких категорий (PATCH/PUT/UPDATE)
UPDATE /products/categories/{id} Обновить категорию по ID (PATCH/PUT/UPDATE)
UPDATE /products/categories/id/{id} Обновить категорию по ID (альтернативный вариант)
UPDATE /products/categories/name/{name} Обновить категорию по имени

Параметры родительских категорий

ПараметрТипОписание
category_parent_id int ID родительской категории. Используется в первую очередь, если задан.
category_parent_name string Латинское имя (alias / slug) родительской категории. Используется, если category_parent_id не задан.
category_lang string Язык категории. Применяется для разрешения коллизий в именах.

Принцип работы:

  1. Сначала проверяется category_parent_id.
  2. Если он не задан – используется category_parent_name.
  3. При совпадении имён – добавляется проверка по category_lang.

Особое правило:
Чтобы добавить категорию в корневую (основную) категорию, необходимо указать category_parent_name = "main" и обязательно задать параметр category_lang.

Обновление и удаление:
update_exists (bool) – если true, обновляет категорию при повторном добавлении.
delete (bool) – если true, категория будет удалена.

4. Производители

МетодURLОписание
POST /products/producers Массовое добавление и обновление производителей
GET /products/producers Получить список производителей
GET /products/producers/{id} Получить производителя по ID
GET /products/producers/id/{id} Получить производителя по ID (альтернативный вариант)
GET /products/producers/name/{name} Получить производителя по имени
UPDATE /products/producers Массовое обновление нескольких производителей (PATCH/PUT/UPDATE)
UPDATE /products/producers/{id} Обновить производителя по ID (PATCH/PUT/UPDATE)
UPDATE /products/producers/id/{id} Обновить производителя по ID (альтернативный вариант)
UPDATE /products/producers/name/{name} Обновить производителя по имени

Параметры привязки производителей

ПараметрТипОписание
producer_parent_id int ID родительского производителя (группы). Используется в первую очередь.
producer_parent_name string Латинское имя (alias / slug) родительского производителя.
producer_lang string Язык производителя для разрешения коллизий имен.

Принцип работы:

  1. Сначала проверяется producer_parent_id.
  2. Если он не задан – используется producer_parent_name.
  3. При совпадении имён – добавляется проверка по producer_lang.

Особое правило:
Чтобы добавить производителя в корневую (основную) группу производителей, необходимо указать producer_parent_name = "main" и обязательно задать параметр producer_lang.

Обновление и удаление:
update_exists (bool) – если true, обновляет производителя при повторном добавлении (по умолчанию false).
delete (bool) – если true, производитель будет удалён.

5. Коллекции

МетодURLОписание
POST /products/collections Массовое добавление и обновление коллекций
GET /products/collections Получить список коллекций
GET /products/collections/{id} Получить коллекцию по ID
GET /products/collections/id/{id} Получить коллекцию по ID (альтернативный вариант)
GET /products/collections/name/{name} Получить коллекцию по имени
UPDATE /products/collections Массовое обновление нескольких коллекций (PATCH/PUT/UPDATE)
UPDATE /products/collections/{id} Обновить коллекцию по ID (PATCH/PUT/UPDATE)
UPDATE /products/collections/id/{id} Обновить коллекцию по ID (альтернативный вариант)
UPDATE /products/collections/name/{name} Обновить коллекцию по имени

Параметры привязки коллекций

ПараметрТипОписание
collection_parent_id int ID родительской коллекции. Используется в первую очередь.
collection_parent_name string Латинское имя (alias / slug) родительской коллекции.
collection_lang string Язык коллекции для разрешения коллизий имен.

Принцип работы:

  1. Сначала проверяется collection_parent_id.
  2. Если он не задан – используется collection_parent_name.
  3. При совпадении имён – добавляется проверка по collection_lang.

Особое правило:
Чтобы добавить коллекцию в корневую (основную) коллекцию, необходимо указать collection_parent_name = "main" и обязательно задать параметр collection_lang – язык родительской коллекции.

Обновление и удаление:
update_exists (bool) – если true, обновляет коллекцию при повторном добавлении (по умолчанию false).
delete (bool) – если true, коллекция будет удалена.

6. Сортировка и пагинация

Для методов /orders и /products доступны параметры для постраничного вывода и сортировки:

Параметры пагинации

ПараметрТипОписание
page int Номер страницы (по умолчанию 1)
per_page int Кол-во элементов на страницу (по умолчанию 90, максимум 2000)

Параметры сортировки

ПараметрТипДопустимые значенияОписание
orderby string id, title, price, date, views Поле для сортировки
order string asc, desc Направление сортировки

Параметры языка

ПараметрТипДопустимые значенияОписание
l string ru, ua, en, de, fr, es, it, pl Язык отображения значений

Дополнительно для заказов

Можно фильтровать заказы по дате и статусу:

  • ?after=YYYY-MM-DD — Начальная дата (в формате ISO)
  • ?before=YYYY-MM-DD — Конечная дата
  • ?status=pending|processing|on-hold|completed|cancelled|0|1|2|3|5|6|7|8 — Статус заказа
    • 0 — Не обработанные (pending)
    • 1 — Заказ в обработке (processing)
    • 7 — Заказ в обработке, ожидает поставки (on-hold)
    • 3 — Обработанные (completed)
    • 8 — Обработанные и завершённые (completed)
    • 2 — Отменённые (cancelled)
    • 5 — Отменённые: нет в наличии (cancelled)
    • 6 — Отменённые: отказ (cancelled)
  • ?show_deleted=1 — Показать скрытые заказы

Примеры

GET /orders?page=2&per_page=100&after=2024-06-01&before=2024-06-30
GET /products?orderby=price&order=asc&per_page=50

Пример авторизации в запросе

В запросе передаются ключи:

 Code: PHP
?consumer_secret=ВАШ_СЕКРЕТ (внимание не публикуйте ключ в общий доступ!)

Или через заголовок Authorization с OAuth 1.0a.



Добавить новый заказ (POST /orders)

Чтобы создать новый заказ через API, нужно отправить POST-запрос на /orders с JSON-телом. Обязательно должно быть указано минимум:

  • email — Email покупателя (обязательно!)
  • line_items — Список добавляемых товаров

Параметры заказа

При создании заказа можно указывать дополнительные поля, например:

{
  "first_name": "Name",
  "last_name": "Soname",
  "email": "alex@example.com",
  "phone": "+380671112233",
  "address": "Full address of not used address eform",
  "buyer_address_eform1": "State",
  "buyer_address_eform2": "City",
  "buyer_address_eform3": "Street",
  "buyer_address_eform4": "house number",
  "buyer_address_eform5": "flat",
  "postcode": "01001",
  "total": "999",
  "status": "processing",
  "status_for_customer": "processing",
  "line_items": [ ... ]
}

Описание поля total:

  • totalфинальная сумма заказа (строка или число). Если это поле указано, оно будет использовано как итоговая цена заказа.
  • Если total не указано, сумма заказа будет автоматически пересчитана по сумме добавленных товаров в line_items.
  • Поле total не является обязательным и может быть использовано для заказов без товаров.

Формат line_items

Параметр line_items — это массив товаров, каждый товар задаётся объектом со следующими полями:

"line_items": [
  {
    "product_id": 478734,
    "quantity": 1,
    "price": 100,
    "currency": "USD"
  },
  {
    "product_id": 478268,
    "quantity": 10,
    "variation": "51"
  },
  {
    "product_id": 478266,
    "quantity": 1,
    "variation_id": 735302
  }
]
  • product_idID товара (обязательно!).
  • quantityКоличество единиц товара (обязательно!).
  • price(необязательно) Если указана цена — берётся именно эта цена и не вычисляется по данным сайта.
  • currency(необязательно) Валюта конкретного товара (например, USD или UAH). Если указана и отличается от общей валюты заказа (currency), система сконвертирует цену автоматически.
  • variation_idID разновидности (вариации товара) — способ указать разновидность, если она есть.
  • variationНазвание или код разновидности — используется если нет variation_id. Если указаны оба — приоритет у variation_id.

Важно: Если общая валюта заказа (currency) не указана — будет использоваться валюта по умолчанию для сайта.

Если валюта товара отличается от общей валюты — цена конвертируется автоматически.


Обновление товаров

Обновление товара осуществляется через HTTP-метод UPDATE (или PATCH/PUT) по URL с указанием ID товара или его SKU (кода товара), либо сразу нескольких товаров одним запросом:

  • /products/{id} — обновление товара по ID
  • /products/sku/{sku} — обновление товара по коду (SKU)
  • /products — массовое обновление нескольких товаров (до 5000 за один запрос)

При массовом обновлении путь /products не содержит ID или SKU. В этом случае необходимо передавать массив объектов товаров в параметре products. Каждый элемент массива должен содержать хотя бы id или sku. Если указан id, он имеет приоритет и может использоваться для замены кода товара (sku). Если id не указан, поиск осуществляется по sku - коду товара.

При обновлении передается полный набор данных товара в формате JSON. Все переданные данные заменяют существующие значения, включая:

  • Основные свойства товара (название, описание, цены, статус и др.)
  • Атрибуты (характеристики)
  • Вариации (разновидности товара)
  • Изображения
  • Категории и теги
  • Дополнительные настройки и мета-поля

Обновление вариаций происходит с использованием следующего алгоритма для каждой вариации из массива variations:

  1. Если в вариации указан id, обновление производится по нему.
  2. Если id отсутствует, но указан sku (код вариации), поиск и обновление происходит по нему.
  3. Если нет ни id, ни sku, но есть title (название вариации), поиск и обновление производится по названию.
  4. Если вариация не найдена по указанным критериям, создается новая вариация с заданными параметрами.

Обновление по SKU удобно, когда ID вариации неизвестен, но известен уникальный код.

При обновлении все поля, указанные в JSON, заменят текущие значения товара; чтобы оставить какое-то поле без изменений, просто не включайте его в запрос.

  • Дубликаты разновидностей: если в массиве разновидностей встречаются повторяющиеся по коду (SKU) и названию (title), такие разновидности будут пропущены — одна и та же комплектация не добавится дважды.
  • Главное изображение: в массиве images главным считается то, что под индексом 0. Если images[0] отсутствует или не загружено, главным станет первое успешно загруженное изображение.
  • Максимум изображений: для одного товара можно загрузить не более 10 изображений. Если попытаться загрузить больше, лишние файлы будут проигнорированы.
  • Работа с изображениями:
    • Удаление изображений: чтобы удалить изображение по индексу, укажите для элемента массива images значение "delete". Например, images[2] = "delete" удалит файл с индексом 2. Можно удалять и загружать одновременно, указывая несколько ключей: images[3] = "delete", images[1] = "https://...".
    • Пропуски индексов изображений: если указать пустую строку или false, этот индекс будет пропущен без ошибок.
    • Перезапись изображений: параметр images_replace: если true, система перезапишет существующие файлы изображений по переданным индексам (удалит старый файл и кеш). Если false или не указан — перезапись запрещена.
    • Пропуск занятых индексов: параметр images_skip_index: если true, то при занятом индексе и запрещённой перезаписи система найдёт следующий свободный индекс и сохранит файл туда. Если false или не указан — индекс берётся строго как передан.
    • Сохранение под новым индексом при конфликте: параметр images_replace_new_index: если true, то при занятом индексе и отключённых перезаписи и автоматическом пропуске файл будет сохранён под новым свободным индексом. Если все три параметра false или не заданы и индекс занят — файл не будет загружен.

Параметры товара


Доступные значения вы можете посмотреть в коде примеров ниже. Также приведена дополнительная расшифровка некоторых значений, которая может быть полезна.
  • Доступные значения price_for

    Для каждого товара можно указать параметр price_for, который задаёт единицу измерения цены. Допустимо использовать числовой код или текст (например, «За 1 кг» или «Per 1 kg»). Вот полный список значений:

    Показать / Скрыть
    • 0 — Не указано
    • 1 — За 1 шт
    • 2 — За 100 шт
    • 3 — За 1000 шт
    • 4 — За 1 упаковку
    • 5 — За 1 кг
    • 6 — За 1000 кг
    • 7 — За 1 м² (квадратный метр)
    • 8 — За 1 метр
    • 9 — За 1 км
    • 10 — За комплект
    • 11 — За 1 час
    • 12 — За 1 день
    • 13 — За 1 месяц
    • 14 — За 1 год
    • 15 — За сотку
    • 16 — За акр
    • 17 — За гектар
    • 18 — За участок
    • 19 — За объект
    • 30 — За 1 мл (миллилитр)
    • 31 — За 1 л (литр)
    • 32 — За 1 км³ (кубический километр)
    • 33 — За 1 м³ (кубический метр)
    • 34 — За 1 дм³ (кубический дециметр)
    • 35 — За 1 см³ (кубический сантиметр)
    • 36 — За 1 мм³ (кубический миллиметр)
    • 37 — За 1 hl (гектолитр)
    • 38 — За 100 грамм
    • 39 — За 1 фунт
    • 40 — За 1 грамм
    • 41 — За 10 кг
    • 42 — За 1 центнер (100 кг)
    • 43 — За 1 тонну
    • 44 — За 1 ар
    • 45 — За 1 пару
    • 46 — За 1 дюжину
    • 47 — За 1 галлон
    • 48 — За 1 баррель
    • 49 — За 1 минуту
    • 50 — За 1 неделю
    • 51 — За 1 услугу
    • 52 — За 1 поездку
    • 53 — За 1 человека
    • 54 — За 1 машину
    • 55 — За 1 м.п. (метр погонный)

    Можно использовать как числовое значение, так и текст — система автоматически распознает и приведёт к правильному коду.

  • Доступные значения stock_status

    Для каждого товара можно указать параметр stock_status, который определяет статус доступности товара и его поведение на сайте. Можно использовать числовой код или ключевое слово — система распознает оба варианта.

    Показать / Скрыть
    • 0 — В наличии
    • 1 — Нет в наличии
    • 2 — Под заказ
    • 3 — Нет в наличии + Скрыть товар из списка
    • 4 — Нет в наличии + Запретить добавлять товар в корзину
    • 5 — Наличие уточняйте

    Можно использовать как числовое значение, так и текст — система автоматически распознает и приведёт к правильному коду.

    Если для товара выбран вариант 3, он будет скрыт из списков товаров на сайте. Если выбран вариант 4, товар будет виден, но его нельзя будет добавить в корзину. Вариант 5 показывает покупателю, что наличие нужно уточнить.

  • Акция и Доступные значения promotion_expires_job

    Для каждого товара можно указать параметр promotion_expires_job, который управляет тем, что делать с акцией после истечения её срока.
    Можно использовать числовой код или ключевое слово — система распознает оба варианта.

    Показать / Скрыть
    • 0 — Ничего не делать (скрыть таймер)
    • 1 — Перенести «Старая цена» в основную цену и удалить старую цену
    • 2 — Убрать пометку «Акция»
    • 3 — Перенести «Старая цена» в основную цену и убрать пометку «Акция»
    • 5 — Запустить таймер заново сроком на 1 день
    • 6 — Запустить таймер заново сроком на 10 дней
    • 7 — Запустить таймер заново с предыдущим сроком (дата таймера минус дата последнего редактирования)
    • 8 — Убрать пометку «Акция» и удалить «Старая цена»

    Можно указывать как числовое значение, так и текст — система автоматически распознает и приведёт к нужному коду.

    Важно: Для активации таймера акции обязательно укажите promotion равным 1 — это означает, что акция активна.

    Также необходимо указать дату окончания акции в параметре promotion_expires — она может быть задана как UNIX-время (например, time()), так и в формате YYYY-MM-DDTHH:MM:SS+00:00 (например, 2025-06-28T00:00:00+00:00).

  • Больше значений

    Доступные значения title

    Текст (максимум 255 символов) - наименование товара


    Доступные значения sku

    Текст (максимум 100 символов) - код товара


    Доступные значения status
    • 1 — Доступ открыт
    • 0 — Доступ закрыт (403)

    Доступные значения xml

    Включить/Выключить выгрузку товара в XML (Goolge Merchant и прочие)

    • 1 — Выгрузка включена
    • 0 — Выгрузка выключена

    Доступные значения xml_markup

    Параметр управляет применением наценок при выгрузке товаров в XML (Google Merchant и другие рекламные каталоги).

    • 0 — Вкл: Наценка применяется по умолчанию
    • 1 — Выкл: Без наценок (оригинальная цена)
    • 2 — Без наценки Rozetka
    • 3 — Без наценки Prom.ua
    • 4 — Без наценки Epricentrk.ua
    • 5 — Выкл: Rozetka, Prom, Epicentrk
    • 6 — Без формульной наценки

    Доступные значения noimport

    Включить/Выключить обновление товара при импорте (Магазин - Импортировать товары)

    • 1 — Обновлять при импорте
    • 0 — Не обновлять при импорте

    Доступные значения delete
    • 0 — Не удалять
    • 1 — Удалить товар

    Доступные значения show_period

    Период размещения товара. Позволяет скрыть товар после истечения указанного срока.

    • 0 — На всегда
    • 1 — 1 день
    • 2 — Неделя
    • 3 — Месяц
    • 4 — Полгода
    • 5 — Год

    Доступные значения priority

    Число от 0 до 100. Чем больше — тем выше товар в списке.


    Доступные значения custom_label_4

    Текст (максимум 95 символов)


    Доступные значения meta_title

    Текст (максимум 255 символов)


    Доступные значения meta_description

    Текст (максимум 500 символов)


    Доступные значения meta_keywords

    Текст (максимум 2000 символов)


    Доступные значения multilangid

    Текст (максимум 50 символов)


    Доступные значения categories

    Массив со значениями

    • id — ID категории
    • name — Наименование категории
    • lang — Язык категории

    Доступные значения producer

    Массив со значениями

    • id — ID производителя
    • name — Наименование производителя
    • lang — Язык производителя

    Доступные значения producer_country

    Текст (максимум 100 символов)


    Доступные значения collection

    Массив со значениями

    • id — ID коллекции
    • name — Наименование коллекции
    • lang — Язык коллекции

    Доступные значения short_description

    Текст (максимум 2000 символов) - краткое описание товара (если включено в стилистике сайта, то отображается при просмотре списка товаров)


    Доступные значения description

    Текст длинный - полное описание товара, отображается при отдельном просмотре карточки товара


    Доступные значения description_tab_1

    Текст длинный - вкладка 1 с описанием (Заголовок вкладки укажите в настройках магазина)


    Доступные значения description_tab_2

    Текст длинный- вкладка 2


    Доступные значения description_tab_3

    Текст длинный- вкладка 3


    Доступные значения description_tab_4

    Текст длинный- вкладка 4


    Доступные значения description_tab_5

    Текст длинный- вкладка 5


    Доступные значения bought_with

    Текст (максимум 255 символов) - список значения С товаров покупают, через запятую (ID или SKU товаров)


    Доступные значения bought_with_email

    Текст (максимум 255 символов) - список значения С товаров покупают, отправляемый покупателю на почту при заказе, через запятую (ID или SKU товаров)


    Доступные значения discount

    Текст (максимум 20 символов) - размер скидки (информационное поле о скидке, отображается и в списке товаров и при отдельном просмотре)


    Доступные значения new

    Пометить товар как Новинка

    • 0 — Не установлено
    • 1 — Установлено

    Доступные значения featured

    Пометить товар как Хит продаж

    • 0 — Не установлено
    • 1 — Установлено

    Доступные значения promotion

    Пометить товар как Акция

    • 0 — Не установлено
    • 1 — Установлено

    Доступные значения reducedprice

    Пометить товар как Цена снижена

    • 0 — Не установлено
    • 1 — Установлено

    Доступные значения shipping
    • 0 — Не указаны
    • 1 — Установлены

    Доступные значения shipping_settings (связаны с shipping)
    • 2 — Из Общих настроек
    • 0 — Нет доставки
    • 1 — Есть доставка
    • 3 — Указать только заметку по поводу доставки

    Доступные значения shipping_price (связаны с shipping_settings)

    Текст (максимум 40 символов)


    Доступные значения shipping_note (связаны с shipping_settings)

    Текст (длинный)


    Доступные значения shipping_days (связаны с shipping_settings)

    Текст (максимум 10 символов)


    Доступные значения shipping_sum (связаны с shipping_settings)
    • 0 — Не учитывать количество товара
    • 1 — Учитывать количество товара
    • 2 — Не добавлять доставку к сумме заказа

    Доступные значения attributes

    Массив с характеристиками - отображаются в карточке товара, учитываются при сравнении товара и в поисковом фильтре

    • id — ID характеристики (если есть)
    • name — Название характеристики (поиск происходил тибо по name либо по value_parent_id / value_ints)
    • options — Массив значений характеристики
    • value_ints — Массив числовых ID значений (если есть)
    • value_parent_id — Родительский ID характеристики (если есть)

    Пример:
    [
      {
        "id": 1298,
        "name": "Product type",
        "options": ["Кросівки"]
      },
      {
        "name": "Виробник",
        "options": ["Adidas"],
        "value_ints": [10081],
        "value_parent_id": 1762
      },
      {
        "name": "Розмір",
        "options": ["43", "43,5"],
        "value_ints": [10107, 10108],
        "value_parent_id": 1763
      }
    ]

    Другие значения

    Другие значения вы можете узнать получив методом GET /products или в примерах ниже


Добавление товаров

Этот метод позволяет добавить один или несколько товаров одним запросом (до 3000 за один запрос). Формат запроса полностью совпадает с методом обновления: можно передавать массив products или одиночный товар.

  • Поиск по ID: при добавлении нового товара поле id должно быть пустым или отсутствовать. Если id указан и товар с таким ID уже существует, то система обновит этот товар вместо создания нового.
  • Поиск по коду (SKU): перед добавлением система проверяет, есть ли товар с таким SKU. Если такой товар найден, он будет обновлён, а не создан заново.

Вы можете добавить новые товары и обновить существующие одним запросом.


Это базовое описание основных методов для работы с Commerce API / WooCommerce API v3 по заказам, товарам и категориям.
Ниже расположены скрипты с примерами, которые помогут правильно использовать методы API на практике.


  • Script: Api: ORDER DETAILS

     Code: PHP
    ORDER DETAILS
      $url = "https://yourdomain.com/api/commerce/orders/ORDERID"; // Set the endpoint URL (replace with your actual API endpoint)
      $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
      $ch = curl_init($url); // Initialize cURL session
      // Set cURL options
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return response as string
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey, // Set Authorization header
      "Content-Type: application/json" // Optional: declare expected response type
      ]);
      // Execute request
      $response = curl_exec($ch);
      // Check for cURL error
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      // Parse and print the JSON response
      $data = json_decode($response, true);
      print_r($data); // Output server response
      }
      // Close cURL session
      curl_close($ch);
      
  • Script: Api: UPDATE ORDER

     Code: PHP
    UPDATE ORDER
      $url = "https://yourdomain.com/api/commerce/orders/ORDERID"; // Order API endpoint
      $authKey = "your_authorization_token_here"; // Authorization token
      // Data to update (use API keys, not raw DB field names)
      $updateData = [
      "first_name"  => "Alex",
      "last_name"   => "Las",
      "email"       => "alex@example.com",
      "phone"       => "+380671112233",
      // Full address in plain text (if needed)
      "address"   => "Full address not tied to structured eform fields",
      // Structured address fields (eform system)
      "buyer_address_eform1" => "Region / State",         
      "buyer_address_eform2" => "City",                   
      "buyer_address_eform3" => "Street",                 
      "buyer_address_eform4" => "House number",           
      "buyer_address_eform5" => "Apartment",              
      "buyer_address_eform6"             => "01001",       // Zip/Postal code/Department
      // Order details
      "total" => "999",                        // Total price
      "status" => "processing",                // Internal status or number
      "status_for_customer" => "completed",    // Customer-facing status or number
      ];
      $ch = curl_init($url); 
      // cURL options
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($updateData, JSON_UNESCAPED_UNICODE));
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey,
      "Content-Type: application/json"
      ]);
      $response = curl_exec($ch);
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      $data = json_decode($response, true);
      print_r($data); 
      }
      curl_close($ch);
  • Script: Api: CREATE ORDER

     Code: PHP
    CREATE ORDER
      $url = "https://yourdomain.com/api/commerce/orders"; // Order API endpoint
      $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
      // Order data + products
      $orderData = [
      // Buyer info
      "first_name"  => "Name",                // Buyer's first name
      "last_name"   => "Soname",              // Buyer's last name
      "email"       => "alex@example.com",    // Buyer's email (required)
      "phone"       => "+380671112233",       // Buyer's phone number
      "address"     => "Full address of not used address eform", // General address
      "buyer_address_eform1" => "State",      // State / Region
      "buyer_address_eform2" => "City",       // City
      "buyer_address_eform3" => "Street",     // Street
      "buyer_address_eform4" => "house number", // House number
      "buyer_address_eform5" => "flat",       // Apartment / Flat
      "postcode"    => "01001",               // Postcode / ZIP
      // Total order amount (optional)
      // If you set "total", it will be used as the final order total.
      // If you skip "total", the system will calculate the total automatically
      // based on the products in "line_items".
      //"total"       => "999",
      "status"      => "processing",          // Internal status
      "status_for_customer" => "processing",  // Status shown to the customer
      "currency"   => "USD",                  // Order currency
      // Products in the order
      "line_items" => [
        [
         "product_id" => 478734,         // Product ID (required)
         "quantity"   => 0,               // Quantity (required) / default - 1
         "price"      => 100,            // Custom price (optional, overrides site price)
        ],
        [
         "product_id" => 478268,
         "quantity"   => 10,
         "variation" => "51"             // Variation name or code
        ],
        [
         "product_id" => 478266,
         "quantity"   => 1,
         "variation_id" => 735302        // Variation ID (priority over "variation")
        ]
       ]
      ];
      
      $ch = curl_init($url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($orderData, JSON_UNESCAPED_UNICODE));
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey,
      "Content-Type: application/json"
      ]);
    
      $response = curl_exec($ch);
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      $data = json_decode($response, true);
      print_r($data);
      }
      curl_close($ch);
      
  • Script: Api: UPDATE PRODUCT

     Code: PHP
    UPDATE PRODUCT
     $url = "https://yourdomain.com/api/commerce/products/PRODUCT_ID"; // Product API update endpoint
      $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Product data
    $productData = [
      "id" => 479077, // Product ID is ignored here because it's specified in the URL
      "name" => "Basketballshoesconverseallstarbbprototypecx", // Internal name for database  (does not affect front-end display)
      "title" => "Basketball shoes Converse All Star BB Prototype CX", // Product title (required for new)
      "type" => 1298, // Product type for filtering and attributes
      "access" => true, // Product availability (true = active)
      "description" => "<p>Sneakers Converse All Star BB Prototype CX — Basketball shoes...</p>", // Full product description (HTML allowed)
      "short_description" => "", // Short description of product 
      "sku" => "AO2515C", // Product SKU code
      "sku_show" => 0, // Whether to show SKU publicly (0 = no)
      "price" => "3000", // Current price
      "currency" => "UAH", // Currency code
      "regular_price" => "5760", // Old (regular) price 
      "price_for" => "0", // Unit for pricing (see documentation for accepted values  https://hotlist.biz/en/user_guide.html#autohrefinside13_7)
      "stock_quantity" => 0, // Quantity in stock (0 - unlimited)
      "stock_status" => 0, // Stock status (0 = in stock, 1 = out of stock, others see docs)
      "weight" => 0, // Weight value
      "weight_units" => 0, // Weight units: 0 = grams, 1 = kilograms
      "dimensions" => [
        "length" => 0, // Length
        "width"  => 0, // Width
        "height" => 0, // Height
        "units"  => "0", // Dimension units: 0 = centimeters, 1 = meters
     ],
     "categories" => [
        ["id" => 30519, "name" => null], // Product category (by ID, name, or both)
      ],
      "tags" => "tag1, tag2", // Tags, comma separated, max 8 tags
     "images" => [
        "0" => "-uploadshopcat-s16572/479077/479077_1.webp", // Local image path (won`t be uploaded)
        "1" => "https://hotlist.biz/upload/shop_catalog/s16572/479077/479077_2.webp", // Remote image URL (will be downloaded and attached)
      ],
     "images_replace" => false, // By default: do NOT replace images with the same index. If true, replace existing images by index.
     "images_skip_index" => false, // If true, find next free index if the given index is occupied and save image there.
     "images_replace_new_index" => false, // If true, even if replace and skip are false, save under new free index if original index is occupied.
     "variations_only_update" => false, // If true, new variations will be added without deleting old ones; otherwise all old variations are removed before adding new
     "variations" => [
      [
        "priority" => 0, // Display priority of the variation
        "id" => 736413, // Variation ID for updating existing variation; if not provided, search by SKU or title
        "sku" => "SKU1234", // Variation SKU (recommended)
        "title" => "42", // Variation name (required)
        "status" => "true", // access ( true / false / forbidden)
        "description" => "",
        "stock_status" => 0, // Stock status, same logic as main product
        "show_stock" => 0, // Whether to show stock count
        "instock" => 10, // Quantity in stock for this variation
        "image_num" => 0, // Image index linked to this variation
        "price" => "+100", // Price adjustment: absolute, or relative (+/-)
        "price_old" => "120", // Old price
        "price_cost" => "80", // Cost price
        "bulk_prices" => [ // Bulk pricing rules
          [
          "moq" => 10, 
           "price" => 5000
          ], // Price if order >= 10 units
          [
          "moq" => 15, 
          "price" => 4500
          ], // Price if order >= 15 units
      ],
      "dimensions" => [ // Variation dimensions, same units as product
        "length" => 0, // Length
        "width" => 0,  // Width
        "height" => 0, // Height
        "units" => 0,  // Dimension units: 0 = centimeters, 1 = meters
      ],
      ],
      [
        "priority" => 0,
        "title" => "43",
        "description" => "",
        "stock_status" => 0,
        "show_stock" => 1,
        "instock" => 1,
        "image_num" => 2,
        "price" => "+100",
        "price_old" => "120",
        "price_cost" => "80",
        "bulk_prices" => [
      ["moq" => 10, "price" => 5000],
      ["moq" => 15, "price" => 4500],
      ],
      "dimensions" => [
        "length" => 0,
        "width" => 0,
        "height" => 0,
        "units" => 0,
      ],
    
      ],
      ],
     "products_synonyms" => "", // Comma-separated list of grouped or similar product IDs or SKUs
     "priority" => 12, // Sorting priority (higher number = higher position, max 99)
     "producer" => ["id" => 4713, "name" => null], // Producer category by ID and/or name
     "producer_show" => 0, // Show producer on product page
     "producer_country" => "", // Producer country (text)
     "collection" => ["id" => null, "name" => null], // Collection category (ID and/or name)
     "collection_show" => 0, // Show collection flag
     "supplier" => ["id" => null, "name" => null], // Supplier info
     "bulk_prices" => [ // Bulk prices for main product
        ["moq" => 10, "price" => 5000],
        ["moq" => 15, "price" => 4500],
      ],
     "price_cost" => "", // Cost price for the main product
     "settings_comments" => "e_shop_page_hoteng_com|e_shop_page_hoteng_rating_com|e_shop_page_hoteng_show_rating_com|e_shop_page_hoteng_com_captcha|e_shop_page_hoteng_vis_com|e_shop_page_hoteng_num30",
     "password" => "", // Password protection (if any)
     "show_tree" => 0, // Category tree display setting
     "show_stock" => 0, // Show stock on product page
     "moq" => 0, // Minimum order quantity
     "shipping" => 0, // Shipping enabled flag
     "shipping_settings" => 0, // Shipping configuration
     "shipping_price" => 0, // Shipping cost
     "shipping_note" => "", // Notes about shipping
     "shipping_days" => 0, // Delivery time in days
     "shipping_sum" => 0, // Combine shipping for same products flag
     "show_period" => 0, // Product display period
     "bought_with" => "", // Comma-separated list of products often bought together
     "bought_with_email" => "", // Email to send bought-together product lists
     "new" => 1, // Is product new (1 = yes, 0 = no)
     "reduced_price" => 0, // Price reduced flag
     "discount" => "-20%", // Discount text (informational)
     "featured" => 1, // Featured product flag
     "promotion" => 1, // Has promotion flag
     "promotion_text" => "", // Promotion text
     "promotion_expires" => 1751113909, // Promotion end timestamp
     "promotion_expires_job" => 0, // Job to execute after promotion ends
     "variations_title" => "", // Title above variation selectors
     "variations_type" => 0, // Variation type (Google Merchant Size Type): 0=default from category settings, 1=color, 2=pattern, 3=material, 4=age_group, 5=gender, 6=size
     "variations_require" => 0, // Require variation selection before purchase
     "variations_cartexplode" => 0, // Variation display method settings
     "yml" => 0, // Export to YML/XML flag
     "noimport" => "0", // Disable import via admin panel flag
     "custom_label_4" => "", // Custom label for Google Merchant
     "description_tab_1" => "", // Description tab 1 content
     "description_tab_2" => "", // Description tab 2 content
     "description_tab_3" => "", // Description tab 3 content
     "description_tab_4" => "", // Description tab 4 content
     "description_tab_5" => "", // Description tab 5 content
     "video" => "", // Video URL
     "video_duration" => "", // Video duration in HH:MM:SS format
     "delete" => "delete", // delete product ( true or delete )
     // Product attributes for filtering and characteristics
     "attributes" => [
       [
      // "id"      => 1298,  // Attribute name You can use or NAME or ID
        "name" => "Product type", // Attribute name
        "options" => ["Sneakers"] // Attribute values (multiple allowed)
       ],
       [
        "name" => "Producer", //  Attribute name
        "options" => ["Converse"] //Attribute values (multiple allowed)
       ],
       [
        "name" => "Size", //Attribute name
        "options" => ["37,5", "40"] //Attribute values (multiple allowed)
         // "value_ints"      => [10096, 10101], //You can use or NAME or ID
         // "value_parent_id" => 1763 You can use or NAME or ID
       ],
      ]
     ];
    
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // Use UPDATE method for update operation (UPDATE / PUT / PATCH)
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($productData, JSON_UNESCAPED_UNICODE));
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Authorization: Bearer " . $authKey,
      "Content-Type: application/json"
      ]);
    
      $response = curl_exec($ch);
      if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
      } else {
      $data = json_decode($response, true);
      print_r($data);
      }
    curl_close($ch);
    
  • Script: Api: UPDATE MULTIPLE PRODUCT

     Code: PHP
    UPDATE MULTIPLE PRODUCT (up to 5000 same time)
    $url = "https://yourdomain.com/api/commerce/products"; // Product API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Product data
      $productsData = [
      "products" => [
       [
        "id" => 479077,
        "title" => "New Product Title 1"
        ...
       ],
       [
        "sku" => "SKU123456",
        "title" => "New Product Title 2"
        ...
       ],
       [
        "id" => 479078,
        "title" => "New Product Title 3"
        ...
       ]
      ]
     ];
     
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // UPDATE / PUT / PATCH
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($productsData, JSON_UNESCAPED_UNICODE));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $authKey,
    "Content-Type: application/json"
    ]);
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
    } else {
      $data = json_decode($response, true);
      print_r($data);
    }
    curl_close($ch);
  • Script: Api: UPDATE PRODUCT CATEGORIES

     Code: PHP
    UPDATE MULTIPLE CATEGORIES (up to 3000 same time)
    $url = "https://yourdomain.com/api/commerce/products/categories"; // Categories API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Categories data
     $categoriesData = [
      "categories" => [
        [
          "category_id" => 30518, // Category ID
          "category_name" => "sneakers", // System category name (slug) REQUIRED
          "category_title" => "Sneakers", // Category title
          "category_parent_id" => 1, // Parent category ID
          "category_parent_name" => "ParentCategory", // Parent category Name
          "category_position" => 0, // Position in the list
          
          "category_visible" => 0, // Visibility (0 = hidden, 1 = visible)
          "category_lang" => "ru", // Category language
          
          "category_show_tree" => 0, // Show tree (0/1)
          "category_multilangid" => 0, // Multilanguage binding ID
    
          "category_image" => [
            "0" => "https://hotlist.biz/upload/catalog/16572/files/style/categories/30518.webp", // Image URL
          ],
          "images_replace" => 1, // Image replace if exists
          "category_image_settings" => 7, // Image display settings
          "category_button" => "", // Custom button (without href)
          "category_access" => 0, // Access level
          "category_title_seo_append" => "", // SEO: title suffix
          "category_description_seo_append" => "", // SEO: description suffix
          "category_meta_d" => "", // Meta description
          "category_meta_k" => "", // Meta keywords
          "category_title_inpage" => "Sneakers", // Title shown inside the category page
          "category_text" => "", // Category description text
          "category_text_position" => 0, // Description position
          "category_settings_comments" => "", // Comment settings
          
          "category_settings_rating" => 0, // Enable rating (0/1)
          "category_datestamp" => "2025-09-16T12:41:07+00:00", // Datetime of creation/update
         
          "category_googlegoods_catid" => 0, // Google Goods category ID
          "category_promua_catid" => 0, // Prom.ua category ID
          "category_rozetkaua_title" => "", // Rozetka.ua category title
          "category_merchant_product_category" => "", // Merchant product category
          "category_gm_product_type" => 0, // Google Merchant product type
          "category_gm_sizetype" => 0, // Google Merchant size type
          
          "category_priceappend_rozetka" => "", // Extra price settings for Rozetka
          "category_priceappend_promua" => "", // Extra price settings for Prom.ua
          "category_settings_childproductshow" => 0, // Show products from subcategories (0/1)
          "category_settings_style" => 0, // Style settings
          "category_settings_sibling" => 0, // Show sibling categories (0/1)
          "update_exists" => 1, // Update exists category (0/1)
          "delete" => 0, // For delete category (0/1)
        ]
      ]
    ];
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // UPDATE / PUT / PATCH
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($categoriesData, JSON_UNESCAPED_UNICODE));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $authKey,
    "Content-Type: application/json"
    ]);
    
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
    } else {
      $data = json_decode($response, true);
      print_r($data);
    }
    curl_close($ch);
  • Script: Api: UPDATE PRODUCT PRODUCERS

     Code: PHP
    UPDATE MULTIPLE PRODUCERS (up to 3000 same time)
    $url = "https://yourdomain.com/api/commerce/products/producers"; // Producers API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Producers data
     $producersData = [
      "producers" => [
        [
          "producer_id" => 30518, // Producer ID
          "producer_name" => "sneakers", // System producer name (slug) REQUIRED
          "producer_title" => "Sneakers", // Producer title
          "producer_parent_id" => 1, // Parent producer ID
          "producer_parent_name" => "ParentCategory", // Parent producer Name
          "producer_position" => 0, // Position in the list
          
          "producer_visible" => 0, // Visibility (0 = hidden, 1 = visible)
          "producer_lang" => "ru", // Producer language
          
          "producer_show_tree" => 0, // Show tree (0/1)
          "producer_multilangid" => 0, // Multilanguage binding ID
    
          "producer_image" => [
            "0" => "https://hotlist.biz/upload/catalog/16572/files/style/categories/30518.webp", // Image URL
          ],
          "images_replace" => 1, // Image replace if exists
          "producer_image_settings" => 7, // Image display settings
          "producer_button" => "", // Custom button (without href)
          "producer_access" => 0, // Access level
    
          "producer_meta_d" => "", // Meta description
          "producer_meta_k" => "", // Meta keywords
          "producer_title_inpage" => "Sneakers", // Title shown inside the producer page
          "producer_text" => "", // Producer description text
          "producer_text_position" => 0, // Description position
          "producer_settings_comments" => "", // Comment settings
          
          "producer_settings_rating" => 0, // Enable rating (0/1)
          "producer_datestamp" => "2025-09-16T12:41:07+00:00", // Datetime of creation/update
         
          "update_exists" => 1, // Update exists producer (0/1)
          "delete" => 0, // For delete producer (0/1)
        ]
      ]
    ];
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // UPDATE / PUT / PATCH
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($producersData, JSON_UNESCAPED_UNICODE));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $authKey,
    "Content-Type: application/json"
    ]);
    
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
    } else {
      $data = json_decode($response, true);
      print_r($data);
    }
    curl_close($ch);
  • Script: Api: UPDATE PRODUCT COLLECTIONS

     Code: PHP
    UPDATE MULTIPLE COLLECTIONS (up to 3000 same time)
    $url = "https://yourdomain.com/api/commerce/products/collections"; // Collections API update endpoint
    $authKey = "your_authorization_token_here"; // Authorization token (use your real key)
    // Collections data
     $collectionsData = [
      "collections" => [
        [
          "collection_id" => 30518, // Collection ID
          "collection_name" => "sneakers", // System collection name (slug) REQUIRED
          "collection_title" => "Sneakers", // Collection title
          "collection_parent_id" => 1, // Parent collection ID
          "collection_parent_name" => "ParentCategory", // Parent collection Name
          "collection_position" => 0, // Position in the list
          
          "collection_visible" => 0, // Visibility (0 = hidden, 1 = visible)
          "collection_lang" => "ru", // Collection language
          
          "collection_show_tree" => 0, // Show tree (0/1)
          "collection_multilangid" => 0, // Multilanguage binding ID
    
          "collection_image" => [
            "0" => "https://hotlist.biz/upload/catalog/16572/files/style/categories/30518.webp", // Image URL
          ],
          "images_replace" => 1, // Image replace if exists
          "collection_image_settings" => 7, // Image display settings
          "collection_button" => "", // Custom button (without href)
          "collection_access" => 0, // Access level
    
          "collection_meta_d" => "", // Meta description
          "collection_meta_k" => "", // Meta keywords
          "collection_title_inpage" => "Sneakers", // Title shown inside the collection page
          "collection_text" => "", // Collection description text
          "collection_text_position" => 0, // Description position
          "collection_settings_comments" => "", // Comment settings
          
          "collection_settings_rating" => 0, // Enable rating (0/1)
          "collection_datestamp" => "2025-09-16T12:41:07+00:00", // Datetime of creation/update
         
          "update_exists" => 1, // Update exists collection (0/1)
          "delete" => 0, // For delete collection (0/1)
        ]
      ]
    ];
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "UPDATE"); // UPDATE / PUT / PATCH
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($collectionsData, JSON_UNESCAPED_UNICODE));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . $authKey,
    "Content-Type: application/json"
    ]);
    
    $response = curl_exec($ch);
    if (curl_errno($ch)) {
      echo "Request error: " . curl_error($ch);
    } else {
      $data = json_decode($response, true);
      print_r($data);
    }
    curl_close($ch);

Продвижение сайтов и SEO

Продвижение сайтов

На платформе HotList.biz созданы дополнительные функции для СЕО продвижения сайта, например, вы сможете автоматически добавлять ко всем товарам определенной рубрики нужные вам слова.

Рекмоендации по СЕО продвижению
Рекмоендации по запуску рекламных кампаний


Рекомендуем включить "переадресацию с языковой привязкой". Данная функция помогает избежать дубликата стартовой страницы (дубликаты плохо сказывается на SEO). В связи с тем, что стартовая страница domain.com и страница с привязкой к языку domain.com/ru/ является одной и той же страницей, рекомендуем включать 301 переадресацию на страницу с привязкой к языку. Это можно сделать в Админ-центре, Настройки, Стартовая страница.

Доступ к сайту

Доступ к сайту

Вы можете ограничить доступ к сайту, в «Настройках», во вкладке "О сайте".

Если вы планируете использовать собственный домен, то рекомендуем вам на временном доступе ограничить доступ к сайту, а после покупки домена, открыть его.

Если вам необходимо Удалить сайт / Информацию о компании, то откройте страницу изменения информации о Сайте / Компании, и внизу установите галочку "Удалить сайт и все данные" или "Удалить сайт". Через какое-то время информация о компании / сайте, пропадет из выдачи поисковых систем.

Кеш

Кеш

Благодаря кешированию пользователи, повторно посещающие ваш сайт, тратят меньше времени на загрузку страниц. Заголовки кеширования должны применяться ко всем кешируемым статическим ресурсам, а не только к некоторым из них (например, изображениям). Кешируемые ресурсы включают файлы JavaScript и CSS, графические и другие файлы (мультимедийное содержание).

Кеш мультимедиа файлов

Согласно рекомендациям от Поисковых систем, а также для удобства посетителей, мы Включили на вашем сайте «Сжатие данных», а также Кеширование графических файлов и JavaScripts. Срок кеширования этих файлов – одна неделя.  

Если вы загружаете новое изображение, поверх старого, то будете видеть старое изображение до тех пор, пока не очистится Кеш браузера. В каждом браузере предусмотрен свой способ очистки кэша. Например, в Chrome для принудительной очистки необходимо нажать «CTRL+F5» в окне браузера, на вашем сайте.

Кеш сервера

Кроме того, для ускорения работы сайтов, мы так же реализовали кеширование некоторых текстовых данных, которые очищаются автоматически при их изменении. Однако если вы изменили содержимое страницы/товара/статьи/меню, но измненеия на странице не отобразились, то необходимо принудительно очистить кеш, воспользовавшись ссылкой в админ панели «Очистить кеш», на странице, в которой не отобразились изменения.

Обслуживание сайта и очистка кеша

На сайте кешируются такие данные, как «Разновидность товара», «Акции» (в т.ч. таймер), «RSS/XML/CSV» выгрузки, количество товаров в категории. Для очистки Кеша RSS/XML/CSV выберите в Админ-Панели «XML/CSV/XLS/JSON» - «Очистить кеш XML/CSV выгрузок».

Для пересчета разновидностей, количества товаров в категориях и очистки кеша Акций, перейдите в «Настройки», «Магазин» и внизу списка в пункте «Пересчет товаров и категорий» выберите необходимые параметры для пересчета и обслуживания.
Данную процедуру рекомендуется делать после большого обновления данных в магазине, изменении категорий, добавлении и изменении или удалении большого количества разновидностей, добавлении и изменении категорий, переносе каточек товара в другие категории или если заканчивается срок таймера в акциях.

Архитектура и ускорение e-commerce сайтов

Часто задаваемые вопросы

Часто задаваемые вопросы

Hotlist — это SaaS платформа или CMS?

Hotlist сочетает возможности SaaS платформы и классической CMS. С одной стороны, это облачная система, которая не требует установки на сервер и автоматически обновляется. С другой — платформа предоставляет гибкость CMS: вы можете редактировать HTML, CSS и JavaScript, создавать собственные блоки и полностью управлять структурой сайта.

Можно ли создать интернет-магазин на платформе Hotlist?

Да. Платформа включает полноценную систему ecommerce для создания интернет-магазинов и каталогов товаров. Доступны категории, характеристики товаров, фильтры, разновидности, корзина, оформление заказов, способы доставки и интеграции платежных систем.

Какие сайты можно создать на платформе Hotlist?

На платформе можно создавать различные типы сайтов:

  • интернет-магазин
  • каталог товаров
  • корпоративный сайт
  • лендинг
  • блог или контент-проект
  • портал или сервисный сайт
  • сайт бронирования услуг (Универсальный инструмент для автоматизации записи на услуги, аренды ресурсов или бронирования жилья)

Гибкая архитектура платформы позволяет масштабировать проект под любые задачи.

Нужно ли устанавливать CMS на сервер для работы Hotlist?

Нет. Hotlist работает как облачная SaaS система. Это означает, что установка CMS, настройка сервера, обновления системы, безопасность и оптимизация скорости выполняются на стороне платформы. Пользователь получает готовую среду для создания и управления сайтом.

Можно ли полностью изменить дизайн сайта?

Да. Платформа позволяет полностью управлять дизайном сайта. Вы можете редактировать HTML, подключать собственные CSS стили, добавлять JavaScript, создавать пользовательские блоки и настраивать структуру страниц. Это обеспечивает полную кастомизацию сайта.

Как редактировать страницы?

У вас есть полный доступ к HTML-коду, а также удобный встроенный редактор и обширная библиотека готовых блоков. Вы можете быстро добавлять заголовки, слайды, блоки контактов, социальные сети и использовать встроенную библиотеку SVG-иконок. Ознакомиться с работой инструментов можно здесь: Демонстрация редактора и Библиотека блоков.

Как создать собственную шапку?

Для этого создайте блок меню, выберите его расположение — «Шапка сайта» — и вставьте HTML-код нужных элементов. Все оформление рекомендуется добавлять через редактор дизайна (вкладка «CSS стили»): такой подход гарантирует, что код будет автоматически минифицирован и обеспечит максимально быструю загрузку сайта.

Как изменить шрифт на сайте?

Рекомендуется использовать библиотеку Google Fonts. Полученный код (например: <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Philosopher:wght@400;700&display=swap" rel="stylesheet">) необходимо вставить в блок меню, выбрав позицию «Служебные теги». После этого в редакторе дизайна во вкладке CSS стили укажите элементы для присвоения шрифта:

html, body, * { font-family: "Philosopher", sans-serif; font-optical-sizing: auto; }
Подходит ли платформа Hotlist для SEO продвижения сайта?

Да. Платформа изначально спроектирована под жесткие требования поисковых систем. Вам доступны расширенные SEO настройки: полное управление мета-тегами, редактирование robots.txt, автоматическая генерация sitemap.xml, настройка Canonical URL и 301-редиректов. Поддерживается расширенная микроразметка Schema.org для формирования привлекательных сниппетов.

Особое внимание уделено Core Web Vitals: благодаря серверной оптимизации, минификации кода и современным форматам изображений, сайты достигают 100 баллов в Google PageSpeed Insights. Это гарантирует мгновенную загрузку на мобильных устройствах и дает весомое преимущество при ранжировании в Google.

Можно ли импортировать товары в интернет-магазин?

Да. Товары можно импортировать через XLS, CSV, Google Таблицы, XML или API. Доступна как полная загрузка каталога, так и обновление отдельных данных: цен, характеристик и остатков.

Поддерживается автоматический импорт по расписанию из разных источников. Вы можете сами выбирать поля для обновления и задавать наценки через встроенные формулы, что полностью автоматизирует управление ценами в реальном времени.

Как настроить автоматический импорт товаров и какие параметры доступны?

Автоматический импорт (раздел Магазин — Автоматический импорт) позволяет полностью делегировать обновление каталога системе. Вы можете создавать неограниченное количество сценариев импорта со следующими параметрами:

  • Протоколы и источники: Поддерживаются HTTP, HTTPS, FTP, а также прямая интеграция с Google Tables. Система работает с кодировками UTF-8 и Windows-1251.
  • Гибкое расписание: Интервал запуска от 4 часов до 30 дней. Можно задать приоритет выполнения для разных прайсов.
  • Типы файлов: Прямая работа с CSV, XLS, XLSX, XML/YML, а также поддержка архивов ZIP (автоматическая распаковка перед импортом).
  • Умная наценка: Встроенный калькулятор позволяет автоматически менять цену из прайса. Можно добавить процент или фиксированную сумму (+, -, *, /) к закупочной или розничной цене. Доступны сценарии: например, если в прайсе нет «Закупочной цены», наценка применится к «Розничной».
  • Контроль остатков и данных:
    • Функция «Установить "Нет в наличии" для остальных» обнулит остатки товаров, которых нет в новом прайсе.
    • Автоматическая конвертация изображений в формат WebP для ускорения сайта.
    • Возможность разделения ячейки с несколькими фото, если они записаны через пробел.
  • Мультиязычность: Автоматический поиск и связка товаров на разных языках по SKU (например, code_en, code_ua).

После каждого импорта система может отправлять отчет в Email или Push-уведомлении.

Поддерживает ли платформа API и интеграции?

Да. Платформа поддерживает API интеграции для автоматизации работы сайта и интернет-магазина. Это позволяет синхронизировать товары, заказы, цены, подключать внешние сервисы и автоматизировать бизнес-процессы.

Можно ли добавить собственный JavaScript или HTML код?

Да. Вы можете добавлять собственный HTML, подключать JavaScript и использовать пользовательские скрипты. Это позволяет реализовывать любые дополнительные функции и интеграции.

Подходит ли платформа для крупных интернет-магазинов?

Да. Архитектура платформы позволяет создавать как небольшие магазины, так и крупные ecommerce проекты. Поддерживаются масштабирование каталога, автоматизация процессов, импорт данных и интеграции с внешними системами.

Насколько быстро загружаются сайты на платформе?

Платформа оптимизирована для высокой скорости загрузки страниц. Используется облачная инфраструктура, оптимизация кода и минификация ресурсов. Это положительно влияет на SEO и удобство пользователей.

Есть ли бесплатная версия платформы?

Да. На платформе доступно бесплатное размещение сайта. Вы можете создать сайт и использовать основные функции без ограничений по времени. Бесплатное размещение позволяет загружать до 300 товаров.

На какой срок доступно бесплатное размещение сайта?

Бесплатное размещение на Hotlist.biz является бессрочным. Однако, если сайт не наполняется, не обновляется и владелец не заходил в панель управления более 1 года, такой проект может быть удален как неактивный. Исключение составляют сайты с привлекательным дизайном или те, которые продолжают активно использоваться посетителями — они остаются в системе без ограничений.

Где размещается сайт, созданный на платформе?

Сайты размещаются в облачной инфраструктуре платформы. Пользователю не нужно приобретать отдельный хостинг или настраивать сервер — вся техническая часть уже включена в систему.

Можно ли перенести сайт с другой CMS?

Да. Вы можете перенести данные сайта с другой CMS или платформы. Товары и контент можно импортировать через файлы XLS, CSV, XML или с помощью API интеграций.

Как добавить HTML код на страницу сайта?

HTML-код можно вставлять без ограничений: как в специальные блоки, размещая их в любой части сайта, так и напрямую в контент страниц, статей, категорий или карточек товаров.

Кроме того, для решения стандартных задач доступны готовые виджеты. С их помощью можно быстро добавить функционал любой сложности: мобильное меню, корзину, списки категорий, классическое или мега-меню, а также другие элементы управления без необходимости писать код вручную.

Как изменить дизайн интернет-магазина?

Дизайн можно изменить через редактор дизайна, используя шаблоны, настройки блоков и CSS стили. Также доступна полная кастомизация верстки сайта и готовые пресеты дизайна (блоки контактов, заголовки, контент страниц).

Как добавить товары в каталог интернет-магазина?

Товары можно добавить вручную через панель управления или импортировать из файлов XLS, CSV, XML, Google Таблицы или через API. Это позволяет быстро наполнить каталог большим количеством товаров.

Чем Hotlist отличается от других конструкторов сайтов?

В отличие от многих конструкторов сайтов, платформа сочетает удобство SaaS сервиса и гибкость профессиональной CMS. Пользователь получает облачную инфраструктуру, автоматизацию интернет-магазина, расширенные SEO возможности и полную кастомизацию дизайна.

Можно ли изменить дизайн сайта без опыта в программировании?

Да. Вы можете выбрать готовый шаблон, задать основные цвета и расположение блоков в визуальном редакторе. Настройка футера, мобильного меню и шапки сайта выполняется с помощью гибких виджетов, которые не требуют написания кода, но дают профессиональный результат. Также доступна библиотека готовых блоков с профессиональным адаптивным дизайном.

Как автоматизировать работу магазина и сэкономить время?

Платформа позволяет полностью автоматизировать рутинные процессы: от массового наполнения каталога и управления остатками до обработки заказов, автоматического расчета скидок и интеграции с платежными или логистическими системами. Вы можете сосредоточиться на развитии бизнеса, пока система берет на себя техническую часть.

Как объединить несколько карточек одного товара разного цвета или размера?

Для этого используется функционал «Разновидности». Вы можете создать каждую карточку отдельно для лучшего SEO, а затем объединить их с помощью параметра «Товары синонимы». Также можно настроить выбор параметров (цвет, размер, материал) внутри одной карточки через группы разновидностей.

Сложно ли подключить прием платежей на сайте?

Нет, популярные платежные системы подключаются в несколько кликов в разделе «Магазин → Платежные системы». Для защиты от мошенничества и повышения доверия клиентов, подключение агрегаторов платежей доступно для сайтов с собственным доменом.

Как добавить выбор платежной системы при оформлении заказа?

Сначала подключите платежную систему в разделе Магазин — Платежные системы. После того как ваша система появится в списке активных, перейдите в раздел Настройки — Магазин, Валюта и оплата — Выбор способа оплаты (в форме оформления заказа). Добавьте новый способ оплаты и в поле «Способ оплаты после выбора» укажите вашу систему. В пункте «Показать другие способы оплаты кроме выбранного, после оформления заказа» выберите «скрывать» — тогда после оформления заказа пользователь сразу перейдет к оплате выбранным способом.

Можно ли отправлять реквизиты на оплату при оформлении заказа?

Да. В разделе Настройки — Магазин, Валюта и оплата — Выбор способа оплаты (в форме оформления заказа) выберите нужный метод и заполните поле «Сообщение отправляемое на почту, после оформления заказа» в формате HTML. Также можно заполнить поле «Сообщение после оформления заказа» — этот текст отобразится сразу на странице успешного завершения заказа, но для отправки реквизитов клиенту используйте именно первый пункт.

Как добавить пояснение к способу оплаты прямо в форме заказа?

Перейдите в раздел Настройки — Магазин, Валюта и оплата — Выбор способа оплаты (в форме оформления заказа) и в настройках конкретного метода заполните поле «Описание способа оплаты». Этот текст будет отображаться в виде информационного блока непосредственно в форме оформления заказа в момент выбора данного способа оплаты. Это удобно для уточнения комиссий или условий оплаты.

Как скрыть поля адреса при оформлении заказа на услуги?

Если вы продаете цифровые товары или услуги и адрес клиента не требуется, перейдите в Настройки — Магазин, Валюта и оплата — Выбор способа оплаты (в форме оформления заказа). В настройках метода оплаты активируйте пункт «Скрыть поля адреса». В этом случае при выборе данного способа форма оформления заказа станет короче, а поля для ввода данных доставки будут скрыты.

Как настроить расчет стоимости доставки в зависимости от страны или региона?

Для глобальных настроек перейдите в раздел Магазин — Доставка — «Доставка с разделением на страны». Здесь вы можете указать конкретные страны и регионы, а также задать условия по сумме заказа, при которых будет доступен тот или иной способ. В этом режиме выбор доставки происходит на предварительном шаге, еще до перехода в основную форму оформления заказа.

Как настроить способы доставки непосредственно в форме оформления заказа?

Перейдите в раздел Магазин — Доставка — «Выбор способа доставки (в форме оформления заказа)». Вы можете создавать неограниченное количество методов, задавать им «Название», «Приоритет» отображения в списке и привязывать к конкретному «Языку» страницы. Для каждого метода можно указать «Стоимость доставки», а также настроить диапазоны доступности по «Сумме заказа», «Объему (м3)» и «Весу (Кг)».

Можно ли менять набор полей адреса для разных способов доставки?

Да. В настройках каждого способа доставки есть выбор конфигурации полей. Доступны варианты: «Поля адреса в 1 строку», разделение на «Область, город, улицу», а также специализированные форматы «Город и номер отделения» или «Номер почтомата». Если вы предлагаете «Самовывоз», вы можете выбрать пункт «Поля адреса скрыты».

Как подключить автоматический выбор отделений через API (Новая Почта, Укрпочта)?

В настройках способа доставки в пункте «Api» выберите нужный сервис (например, «NOVAPOSHTA API» или «UKRPOSHTA API»). Вы также можете настроить «Фильтр отделений», чтобы показывать пользователю только грузовые отделения, почтоматы или обычные отделения. Платформа поддерживает автоматизацию, позволяя включить или выключить «Создание ТТН» прямо из настроек метода.

Можно ли скрыть определенные способы оплаты для конкретного вида доставки?

Да, в платформе реализована созависимость оплаты и доставки. В редакторе способа доставки найдите пункт «Скрыть способ оплаты» и выберите из списка те методы (например, «Наложенный платеж»), которые не должны отображаться при выборе данного варианта доставки.

Как работает отслеживание посылок (Tracking) для покупателя?

В настройках доставки вы можете указать «Tracking URL» с маской {TrackNo} (например, https://site.com/?track={TrackNo}). Когда вы добавите номер накладной в «Статистике продаж» к конкретному заказу, система автоматически подставит его в ссылку, и покупатель сможет отследить посылку в один клик из своего кабинета или письма.

Где добавить описание условий доставки, которое увидит клиент?

Используйте поле «Описание доставки» в настройках метода. Вы можете вставить туда текст или HTML-код. Это описание будет динамически отображаться в форме оформления заказа сразу после того, как пользователь выберет соответствующий пункт в списке способов доставки.

Как настроить пункты самовывоза для интернет-магазина?

Для организации самовывоза перейдите в раздел Магазин — Доставка — «Выбор способа доставки (в форме оформления заказа)». В настройках метода выберите конфигурацию полей «Самовывоз из точки выдачи (Поля адреса скрыты)». Сами адреса точек настраиваются в разделе Магазин — «Магазины/Пункты самовывоза», где вы можете добавить неограниченное количество филиалов или складов, которые будут доступны покупателю для выбора при оформлении заказа.

Можно ли использовать шорткоды и динамические данные в текстах?

Да. Платформа поддерживает систему заменяемых коротких кодов (шорткодов). Вы можете автоматически вставлять в текст название товара, актуальную цену, имя авторизованного пользователя или путь к странице. Это позволяет создавать персонализированный контент и динамические SEO-шаблоны.

Поддерживаются ли уведомления в мессенджеры (Viber, Telegram)?

Да, на Hotlist.biz доступны мгновенные уведомления в Viber и Telegram, а также стандартные Email и Push-уведомления. Вы можете настроить получение данных из любых форм обратной связи или корзины заказов во внешние источники в реальном времени.

Как работает мобильное меню и можно ли скрыть лишние элементы?

Вы можете гибко настраивать отображение элементов для мобильных устройств. Система позволяет скрывать основную шапку, логотип или отдельные блоки при активации мобильного меню. Настройка доступна как через стандартные опции, так и по индивидуальным классам или ID элементов.

Можно ли создать профессиональную систему бронирования (Booking)?

Да. Платформа Hotlist включает мощный виджет бронирования, который позволяет организовать запись на услуги или аренду любых ресурсов: от столиков в ресторанах и массажных кабинетов до проката автомобилей и записи на групповые мероприятия.

Ключевые возможности системы бронирования:

  • Разделение на объекты: С помощью ID групп можно разделить расписание для разных мастеров, залов или единиц техники.
  • Гибкие временные слоты: Вы сами задаете шаг времени (например, 30 минут или 2 часа) и максимальную длительность одного бронирования.
  • Автоматический расчет стоимости: Система умеет динамически пересчитывать цену в зависимости от выбранного периода (например, цена за 1 час * количество часов) или использовать фиксированный тариф.
  • Умные статусы и календарь: Слоты синхронизированы со статистикой продаж. Статусы «Предварительная запись», «Забронировано» или «Отменено» мгновенно меняют доступность времени на сайте. Если слот занят — повторное бронирование невозможно (кроме групповых событий).
  • Многоместное бронирование: Для семинаров или групповых тренировок можно указать количество доступных мест на один и тот же период.
  • Оплата для фиксации брони: Можно настроить обязательную предоплату. Сразу после выбора времени клиент перенаправляется на платежную систему, а статус брони меняется автоматически после успешного платежа.
  • Настройка горизонтов записи: Управляйте тем, насколько заранее клиент может записаться (например, «только со следующего понедельника» или «не более чем на месяц вперед»).

Функционал реализован через передачу JSON-параметров и data-атрибутов, что позволяет разработчикам кастомизировать интерфейс бронирования под любые задачи бизнеса.

Как работает импорт характеристик и сложных структур данных?

Импорт реализован максимально гибко: вы можете загружать характеристики товаров как из одной ячейки (списком), так и из раздельных столбцов XLS/CSV. Также поддерживается импорт через API Commerce или XML-файлы, что позволяет синхронизировать даже самые сложные структуры данных.

Можно ли автоматизировать добавление товаров в корзину?

С помощью Генератора ссылок вы можете превратить любой элемент на сайте (кнопку, текст или картинку) в инструмент автоматического добавления товаров в корзину. Вы сами определяете сценарий: добавить один или несколько товаров сразу и выполнить мгновенную переадресацию на страницу оплаты.

«Магазин → Генератор ссылок добавления товаров в корзину»
Можно ли генерировать счета на оплату услуг «на лету»?

Да. Платформа позволяет создавать кнопки для оплаты любых услуг или товаров без необходимости их предварительного поиска в каталоге. Например, вы можете разместить кнопку «Записаться на семинар», настроить форму сбора контактов и сразу после её заполнения перенаправить клиента на оплату выбранным способом.

Эта функция позволяет мгновенно генерировать счета с необходимой стоимостью прямо в процессе взаимодействия с пользователем, что критически важно для продажи сервисов, онлайн-курсов или разовых консультаций.

«Магазин → Генератор счета на оплату»
Есть ли ограничение на количество товаров в интернет-магазине?

Платформа не ограничивает максимальное количество товаров. Архитектура SaaS системы позволяет масштабировать проект от небольшого лендинга до крупных ecommerce каталогов с сотнями тысяч позиций. Благодаря серверной оптимизации, высокая производительность сохраняется при любых объемах данных.

Можно ли подключить собственный домен и SSL-сертификат?

Да. Вы можете подключить собственный домен второго уровня через DNS-настройки. Все сайты на платформе работают через защищенный протокол HTTPS. SSL-сертификат подключается автоматически и бесплатно, что гарантирует безопасность данных и доверие поисковых систем.

Поддерживает ли платформа многоязычность сайта?

Да. Вы можете создавать полноценные многоязычные сайты, добавляя разные языковые версии для страниц, товаров и категорий. Для каждой локализации формируются отдельные URL, что позволяет эффективно продвигать проект в разных странах и улучшать SEO.

Адаптированы ли сайты под мобильные устройства?

Да. Все сайты на платформе используют responsive-верстку. Интерфейс автоматически подстраивается под экраны смартфонов и планшетов, обеспечивая высокую скорость загрузки и удобство пользования на любых мобильных устройствах.

Важным преимуществом является отсутствие ограничений для реализации собственных идей: вы можете полностью кастомизировать дизайн и стилистику сайта под мобильные версии, создавая уникальный пользовательский опыт (UX) без привязки к жестким рамкам шаблона.

Можно ли вести блог и публиковать статьи?

Да. Платформа поддерживает создание блогов, новостных лент и контентных разделов. Вы можете публиковать статьи, оптимизировать их под поисковые запросы и привлекать органический трафик, повышая экспертность вашего ресурса.

Можно ли устанавливать оптовые цены для товаров?

Да. Платформа позволяет задавать оптовые цены как для основных товаров, так и для их разновидностей (вариаций). Вы можете настроить автоматический пересчет стоимости в зависимости от количества товара в корзине, что делает систему идеальной для работы в сегменте B2B и оптовых продаж.

На Hotlist есть система скидок и программа лояльности?

На Hotlist реализована гибкая система лояльности, включающая скидки и кешбэк. Главная особенность в том, что систему скидок можно привязывать к конкретным группам клиентов. Это позволяет создавать персональные предложения для постоянных покупателей, VIP-клиентов или партнеров, автоматизируя работу с разными сегментами аудитории.

Можно ли начислять бонусы или кешбэк при регистрации?

Да, система позволяет гибко управлять лояльностью, включая начисление кешбэка за регистрацию. Вы можете мотивировать новых пользователей, используя UTM-метки для проверки источника регистрации и автоматического пополнения баланса клиента.

Настройка бонусов поддерживает сложные формулы: процент от суммы, фиксированные значения или математические операции (напр. XX%, -XX, /XX). Кешбэк отображается в профиле покупателя и начисляется автоматически при переходе заказа в статус «Обработан» или «Завершен».

Для защиты прибыли предусмотрен лимит списания: например, при стоимости товара 100$ и лимите 10%, клиент не сможет оплатить бонусами более 10$. Все расчеты, включая дробные значения, автоматически округляются до двух знаков после запятой для точности учета.

Можно ли на платформе создать сайт для интернет-магазин?

Да, Hotlist изначально спроектирован как мощная E-commerce платформа. Вам доступны все необходимые инструменты: управление каталогом, корзина, онлайн-оплата, расчет стоимости доставки, система скидок и купонов. Вы можете продавать как физические товары, так и услуги с возможностью оплаты онлайн.

Подходит ли Hotlist для стартапов и малого бизнеса?

Да. Благодаря бесплатному размещению и отсутствию затрат на хостинг или покупку CMS, стартапы могут запустить полноценный бизнес за несколько минут. Готовая инфраструктура позволяет начать работу без вложений в разработку.

Можно ли создать маркетплейс или каталог поставщиков?

Да. Гибкая структура категорий и характеристик позволяет реализовывать не только магазины, но и сложные маркетплейсы, агрегаторы услуг или каталоги компаний с удобной фильтрацией. Для полноценного управления ассортиментом вы можете закреплять за каждым товаром индивидуального поставщика, что упрощает учет и логистику.

Как подключить аналитику и отслеживать продажи?

На платформе реализована автоматическая интеграция с Google Analytics и Google Tag Manager с полной поддержкой электронной коммерции. Вы также можете подключить любые другие системы аналитики через вставку JavaScript-кода или специальные блоки.

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

Подходит ли Hotlist для SEO-специалистов и разработчиков?

Да. Платформа предоставляет полный доступ к редактированию HTML, CSS и JavaScript, что позволяет реализовывать любые технические решения. Для SEO предусмотрен мощный инструментарий: поддержка микроразметки Schema.org, управление мета-тегами, редактирование robots.txt, автоматическая генерация sitemap.xml и интеграция продвинутых аналитических сервисов. Это делает систему идеальной средой для профессионального продвижения и кастомной разработки.

Чем Hotlist отличается от Wix, Shopify и других конструкторов сайтов?

Hotlist — это мощная альтернатива популярным конструкторам, которая сочетает удобство SaaS и гибкость профессиональной CMS. В отличие от Wix или Shopify, мы предлагаем более глубокую кастомизацию кода, отсутствие жестких ограничений в дизайне и специализированные инструменты для автоматизации ecommerce. Вы получаете облачную инфраструктуру и автоматические обновления, сохраняя при этом полный контроль над структурой и логикой сайта.

Можно ли создать сайт без навыков программирования?

Да. Большинство функций платформы доступны через интуитивно понятный интерфейс и готовые виджеты. Вы можете самостоятельно собрать структуру сайта, настроить уникальный дизайн и наполнить каталог товаров, не написав ни одной строки кода. Система берет на себя все технические сложности, позволяя вам сосредоточиться на контенте и продажах.

Есть ли простой механизм редактирования дизайна?

Да. Платформа предлагает гибкий редактор дизайна, каталог готовых шаблонов и пресетов, которые позволяют быстро собрать как многострочный лендинг, так и оформить общий стиль всего сайта.

Вы можете легко настроить шапку (header), футер (footer) и другие части сайта. Для ускорения работы встроены готовые виджеты, которые позволяют в несколько кликов создать мобильное меню, корзину, навигационные списки или сложные мега-меню, не прибегая к программированию.

Можно ли сделать сайт похожим на мобильное приложение?

Да. Для этого на платформе предусмотрен специальный виджет «Мобильное меню — приложение». Он позволяет реализовать интерфейс, привычный пользователям смартфонов: с удобной навигацией в нижней части экрана, быстрым доступом к ключевым разделам и корзине.

Виджет обладает исключительной гибкостью: вы можете настроить индивидуальную стилистику, выбрать иконки, определить способы вызова меню и адаптировать его под логику вашего бизнеса. Это позволяет превратить обычный сайт в полноценное мобильное веб-приложение без сложной разработки.

Есть ли на сайте простая система управления (админ-панель)?

Да. Платформа оснащена полноценной панелью управления, спроектированной для максимально быстрой работы. Большинство настроек и элементов добавляются через интуитивно понятные всплывающие окна с уточняющими вопросами, что исключает ошибки при заполнении.

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

Есть ли в системе файловый менеджер?

Да. В админ-панели предусмотрен полноценный раздел «Файлы». Он позволяет удобно управлять всеми загруженными медиафайлами, документами и архивами вашего сайта в одном месте.

Есть ли конвертация и обработка изображений при загрузке?

Да. Платформа поддерживает автоматическую обработку графики. Прямо при загрузке файлов изображения можно пропорционально уменьшить или конвертировать в современные стандарты WebP, PNG и JPG для обеспечения максимальной скорости загрузки страниц.

Как менять стиль кнопок и элементов индивидуально?

Для индивидуальной правки стиля достаточно нажать «проинспектировать элемент» в браузере, найти нужный класс и прописать для него свойства в редакторе дизайна (вкладка CSS). Структура Hotlist.biz исключает «кашу» в стилях, так как каждый блок имеет уникальный ID и привязан к типу контента.

Какова иерархия основных блоков сайта для работы с CSS?

Сайт имеет четкую структуру контейнеров: общий оберточный блок #hotengine-wrapper, шапка #hotengine-header, основной контейнер контента #hotengine-content-container и подвал #hotengine-footer. Внутри контентной части стили разделяются по типам страниц (ID): страницы — #hotengine-content-page, статьи — #hotengine-content-blog, товары — #hotengine-content-shop.

Как различать стили категорий, коллекций и производителей?

Для страниц со списками (категориями) автоматически добавляются уточняющие классы: .hotengine-content-shop-category для товаров, .hotengine-content-shop-collection для коллекций и .hotengine-content-shop-producer для производителей. Это позволяет задавать уникальный дизайн для каждого типа каталога. Подробную таблицу соответствия ID и классов вы можете найти в инструкции: Идентификаторы и классы блоков.

Можно ли разработать на Hotlist индивидуальные решения?

Да, можно. Команда Hotlist готова к сотрудничеству и реализации индивидуальных решений. Для связи: hotlist.biz@gmail.com

Сколько времени занимает создание интернет-магазина?

Создать магазин можно за несколько минут. После регистрации достаточно выбрать шаблон, добавить товары и настроить способы оплаты. Система готова к работе сразу, позволяя принимать первые заказы в день регистрации.

Можно ли создавать всплывающие окна (Pop-up) на сайте?

Да, в платформу встроен мощный генератор модальных окон. Окно вызывается простым добавлением класса class="hotengine-script-popup" к ссылке или кнопке. Вы можете загружать во всплывающем окне видео с Youtube, контент с других страниц сайта, карточки товаров или произвольный HTML-блок по его ID или классу. Генератор всплывающих окон - https://hotlist.biz/ru/page.php?p=submit_catalog_page&subpage&generatepopup

Какие настройки доступны для всплывающих окон?

Через data-атрибуты вы можете полностью контролировать поведение окна: задавать «ширину» (data-width) и «высоту», устанавливать лимиты (data-max-width), фиксировать заголовок или настраивать адаптивность для мобильных устройств (data-mobile-width). Также доступны продвинутые функции: data-dialog-callback для запуска JS-функции после открытия окна и data-close-overlay для управления закрытием окна по клику вне его области.

Как вывести карточку товара или статью во всплывающем окне?

Для этого используются специальные типы загрузки данных (data-iframe). Например, значение «5» загрузит данные карточки товара, «1» — статью из каталога, а «14» или «15» загрузят чистый HTML этих страниц без лишних элементов дизайна. Это позволяет создавать быстрые предпросмотры товаров или информационные справки без перезагрузки всей страницы.

Действительно ли Hotlist.biz дает преимущество по скорости?

Да. Высокая производительность достигается за счет использования комбинированного кеширования (на уровне файлов и оперативной памяти), а также современной архитектуры оптимизации. Платформа работает на чистом Vanilla JS без тяжелых библиотек и использует стратегию отложенной загрузки скриптов, которые активируются только при непосредственном взаимодействии пользователя с элементами сайта.

Что такое Виджеты HTML?

«Виджет HTML» — это набор независимых HTML-элементов для вставки на страницы сайта. В библиотеку входят: Accordion, Tabs, Callback block, Слайд с комментариями/отзывами, а также Offers mosaic (перечень товаров в стиле мозаики) и Google Reviews (динамическая подгрузка отзывов через API).

Что такое Spoiler (Спойлер) и как он работает?

Spoiler — это элемент страницы, который изначально скрывает часть контента и раскрывается только по клику. В нашей платформе спойлеры реализованы исключительно при помощи CSS, что позволяет им работать мгновенно без использования дополнительных JavaScript-скриптов.

Для чего используется Price range swiper?

Price range swiper — это удобный графический слайдер для выбора диапазона цен в поисковом фильтре. Он позволяет пользователям быстро ограничивать выборку товаров по стоимости, просто перемещая ползунки, что значительно улучшает юзабилити магазина.

Как настроить автоматическую передачу заказов в 1С, ERP или CRM?

Для этого в разделе Настройки — Магазин укажите URL вашего сервиса для приема данных. Платформа будет автоматически отправлять POST-запрос в JSON формате сразу после оформления заказа. Запрос содержит полные данные о покупателе, составе корзины и параметрах доставки. Если ваш сервис вернет в ответ crm_order_id, он будет автоматически привязан к заказу в Hotlist.

Можно ли синхронизировать изменения статусов заказов с внешней системой?

Да. В настройках можно включить экспорт статистики продаж. Система будет отправлять JSON-пакет при любом изменении заказа в админ-панели (смена статуса оплаты, доставки, изменение состава товаров). Это позволяет реализовать двустороннюю синхронизацию, где Hotlist выступает фронтендом, а учетная система (например, 1С) — бэкендом.

Как получить доступ к прайс-листу или статистике через внешний запрос?

Вы можете получать данные в форматах JSON или CSV по специальным адресам (например, /ajax.php?statistic_sell или /csv_export_products.csv). Для безопасности используется авторизация по ключу доступа, зашифрованному в MD5. В запросах можно использовать фильтры (например, &sort_dateperiod=1week), чтобы получать только актуальные данные.

Что такое Commerce API и какие возможности оно дает?

«Commerce API» — это современный интерфейс управления магазином (аналог WooCommerce API), предназначенный для глубокой интеграции с внешними сервисами. Он позволяет программно получать списки заказов, массово обновлять товары, управлять категориями, производителями и коллекциями. API поддерживает стандартные HTTP-методы и возвращает данные в формате JSON. Подробная техническая документация и описание методов доступны по ссылке: Инструкция Commerce API.

Как управлять иерархией категорий и производителей через API?

API предоставляет гибкие методы для работы с вложенностью. Вы можете привязывать категории через category_parent_id или по текстовому алиасу category_parent_name. Особое правило: для добавления в корень используйте имя "main" и указывайте язык category_lang. Это исключает коллизии имен при работе с мультиязычными сайтами.

Какие типы данных можно добавлять или обновлять через API?

Система поддерживает гибкое управление всеми ключевыми сущностями магазина через Commerce API. Вы можете:

  • Управлять заказами: создавать новые заказы (CREATE ORDER), обновлять существующие (UPDATE ORDER) и получать детальную информацию по каждому (ORDER DETAILS).
  • Работать с товарами: обновлять данные конкретной позиции (UPDATE PRODUCT) или выполнять массовое обновление цен и остатков для группы товаров (UPDATE MULTIPLE PRODUCT).
  • Настраивать структуру: добавлять и редактировать категории (UPDATE PRODUCT CATEGORIES), управлять списком производителей (UPDATE PRODUCT PRODUCERS) и коллекциями товаров (UPDATE PRODUCT COLLECTIONS).

Это позволяет полностью синхронизировать каталог и продажи с любыми внешними системами учета.

Как работает отслеживание заказов во внешних CRM?

Для полной интеграции в API предусмотрен параметр crm_order_id. Вы можете записывать ID из вашей CRM в базу Hotlist и в дальнейшем получать или обновлять данные заказа именно по этому внешнему идентификатору (методы /crm_orders/{id}), не привязываясь к внутренней нумерации платформы.

Есть ли в системе автоматический импорт данных?

Да, в разделе Магазин — Автоматический импорт доступны функции планировщика для синхронизации каталога. Вы можете настроить два сценария:

  • Автоматическое обновление: запускается каждые 4 часа. Работает в режиме «Только обновление» (цены, остатки) без добавления новых позиций и загрузки фото, что минимизирует нагрузку.
  • Загрузка новых товаров: запускается раз в сутки и выполняет полноценный импорт новых поступлений в базу данных.

Функция доступна для сайтов с паркованным доменом. Для корректной работы необходимо предварительно сохранить «Соответствие полей» (пресеты №2 или №3) на странице импорта товаров.

Что такое Генератор ссылок добавления товаров и зачем он нужен?

Это инструмент в разделе Магазин — Генератор ссылок, который позволяет создать одну ссылку, при клике на которую в корзину автоматически добавляется один или сразу несколько товаров. Это идеально подходит для лендингов (сайтов одного товара), рекламных рассылок или кнопок «Купить комплект», так как позволяет пользователю перейти сразу к оформлению заказа, минуя этап ручного наполнения корзины.

Какие параметры можно настроить для ссылки добавления в корзину?

Генератор позволяет гибко управлять процессом покупки через следующие настройки:

  • ID товаров и количество: можно указать список ID через запятую и задать точное количество для каждого (например, 1,1,2).
  • Разновидности: поддержка конкретных модификаций товара по их ID.
  • Очистка корзины: функция «Очищать корзину» удалит все старые товары перед добавлением новых (полезно для монобрендовых акций).
  • Проверка на повтор: защита от случайного многократного добавления одного и того же товара при повторном клике.
Можно ли сделать переадресацию сразу на страницу оформления заказа?

Да. В поле «Ссылка для переадресации» вы можете указать адрес корзины (например, /ru/page.php?p=cart&send). Также настраивается «Время до переадресации» (в миллисекундах) — рекомендуется ставить небольшую задержку (например, 2000 мс), чтобы система успела гарантированно зафиксировать добавление товаров в сессию пользователя перед переходом.

Как управлять уведомлениями при использовании таких ссылок?

В пункте «Сообщения после добавления товара» можно выбрать один из трех режимов: «Не показывать никаких сообщений» (для бесшовного перехода), «Только сообщения о добавлении» или «Показывать все». Для лендингов чаще всего используется скрытие сообщений, чтобы клиент сразу видел форму заказа.

Можно ли защитить ссылку от ботов?

Да, генератор поддерживает настройку «Защитный код». Вы можете включить обязательный ввод капчи (от 3 до 9 символов) перед тем, как товары попадут в корзину, что помогает избежать спам-заказов через прямые ссылки.

Можно ли создать прямую ссылку или кнопку для оплаты счета?

Да, в системе есть инструмент Магазин — Генератор счета на оплату. Он позволяет создать специальную URL-ссылку, при клике на которую пользователь попадает на страницу формирования счета с уже заполненными данными. Это удобно для выставления счетов в мессенджерах, соцсетях или создания кнопок быстрой оплаты на лендингах.

Какие параметры можно передать в ссылке на оплату?

Через GET-запрос вы можете полностью сформировать контекст платежа:

  • Сумма и валюта: payment_price (цена) и payment_currency (доступны USD, EUR, UAH, PLN и др.).
  • Данные плательщика: payment_email, payment_soname (имя) и payment_phone.
  • Описание заказа: payment_desc — информация, которую увидит клиент и вы в панели управления.
  • Выбор системы: shop_payment_systems (ID конкретного шлюза) и флаг hide_selector_payment_systems, чтобы запретить пользователю менять способ оплаты.
  • Аналитика: shop_cart_statistic_group — метка для группировки заказов в статистике продаж.
Как реализовать ввод данных перед оплатой (Pop-up окно)?

Поскольку в прямой ссылке данные клиента могут быть не заполнены, рекомендуется использовать JS-скрипт всплывающего окна. Платформа предоставляет готовое решение: hotengine-payment-popup-demo.js. С его помощью клиент сначала вводит свои контакты в аккуратном Pop-up окне, после чего скрипт автоматически дополняет ссылку этими данными и перенаправляет пользователя на оплату.

На что стоит обратить внимание при использовании генератора счетов?

Важно помнить два момента:

  1. Безопасность: Так как параметры передаются в открытом виде в ссылке, покупатель технически может изменить цену в строке браузера. Всегда проверяйте соответствие суммы оплаты вашим ожиданиям в админ-панели перед отгрузкой товара.
  2. Настройка шлюзов: Предварительно подключите и активируйте платежные системы в настройках магазина. Если системы не настроены, клиент получит уведомление о создании заказа, но не сможет произвести транзакцию.
Можно ли разместить товары из магазина в произвольном месте сайта?

Да, для этого используется инструмент Виджет с товарами. Он позволяет генерировать специальный короткий код (ShortCode), который можно вставить на любую страницу, в новость, статью или статический блок меню. Виджет превращает обычный список товаров в интерактивный слайдер или витрину.

Как выглядит и работает ShortCode виджета?

Типовой код выглядит так: [MENU:shop_products_slider:pers_cat_id-123:on_page-4:button-cart:sale]. Система автоматически заменит этот код на блок с товарами. Вы можете гибко настраивать содержимое с помощью параметров:

  • Фильтрация: по категориям (pers_cat_id), производителям (producer), коллекциям (collection) или типам товаров.
  • Маркетинговые метки: выводить только новинки (new-products), хиты (bestseller), товары со скидкой (discount) или по акции (sale).
  • Отображение: включить кнопку корзины (button-cart), рейтинг (rating-stars), краткое описание (description) или разновидности (variety).
  • Сортировка: по цене, дате, названию или случайный порядок (random).
Как адаптировать виджет под мобильные устройства и скорость загрузки?

Для профессиональной настройки рекомендуется использовать следующие параметры:

  • Lazy Load (:lazy-0): активирует ускоренную загрузку изображений, которые появляются только при прокрутке.
  • Авто-ширина (:auto_width): количество карточек в ряду будет подстраиваться под ширину экрана автоматически.
  • Режим Append (:append-900): на больших экранах (от 900px) товары будут подгружаться в конец списка кнопкой «Показать еще».
  • Режим Scroll (:scroll-9999x8x0): на мобильных устройствах заменяет кнопки прокрутки на удобную горизонтальную ленту (swipe), экономя пространство.
Можно ли изменить дизайн виджета товаров?

Да. Вы можете привязать уникальный ID к блоку (:id-my_block) и прописать для него свои CSS-стили. Если вам нужен полностью уникальный скрипт управления, используйте виджет без параметра :add-javascript — тогда система выдаст чистую HTML-разметку товаров, которую вы сможете интегрировать в собственный слайдер или библиотеку (например, Swiper или Slick).

Можно ли вывести дерево категорий магазина в произвольном месте сайта?

Да, для этого используется Виджет с категориями. С помощью специального короткого кода (ShortCode) вы можете вставить меню категорий в любой блок, статью или текстовую область. Система поддерживает несколько типов визуализации, от простых списков до сложных интерактивных меню.

Как настроить Мега-меню (Mega Menu)?

Mega Menu (параметр :megamenu) — это универсальное адаптивное решение. При активации появляется кнопка-бургер, при клике на которую открывается структурированное окно: слева список основных категорий, справа — динамический контент. В мобильной версии оно автоматически переходит в полноэкранный режим.

  • Расширенный режим (:multiply): позволяет выводить в правой панели не только дочерние подкатегории, но и вложенные списки второго уровня, формируя наглядную сетку разделов.
Что такое Flex-меню и вертикальное меню?

Для боковых панелей предусмотрено два основных типа:

  • Вертикальное (:vertical): классический список категорий.
  • Flex-меню (:flexmenu): компактное меню с фиксированной высотой (:height-400). Подкатегории открываются в блоке справа от родителя.
  • Дополнительные опции Flex: можно включить :with-overlay (затемнение фона), :scroll-lock (блокировка прокрутки страницы при открытом меню) и :fix-on-top для фиксации положения.
Как использовать горизонтальное и выпадающее меню?

Эти типы подходят для верхней части сайта или контентных блоков:

  • Горизонтальное (:horizontal): категории выстраиваются в ряд. Можно использовать внутри страниц, задав ID hotengine-categories-lists-horizontal для особого стиля.
  • Выпадающее (:dropdown): стандартное меню с раскрывающимися списками при наведении.
Какие еще параметры настройки категорий доступны?

Вы можете тонко настроить содержимое виджета через параметры:

  • Уровень вложенности (:treelevel-X): ограничьте глубину дерева (например, :2 покажет только основные и их прямые подкатегории).
  • Информативность: добавьте количество товаров (:products), иконки категорий (:imageattr) или SEO-разметку (:googlenav).
  • Мобильная адаптация (:scroll-9999x3): превращает список категорий в горизонтальную ленту с прокруткой и пагинацией на экранах смартфонов.
  • Карусель (:carousel): активирует эффект слайдера. Параметры скорости и автоплея задаются через двоеточие, например: :carousel-autoplay-true:carousel-autoplayTimeout-3000.
Что такое «Типы товаров» и как они связаны с фильтрами?

Типы товаров (напр., «Ноутбуки», «Обувь») позволяют группировать товары по уникальным свойствам. К каждому типу привязывается свой набор характеристик (Размер экрана, Цвет, Материал). Именно на основе этих характеристик система автоматически строит поисковый фильтр, позволяя покупателям находить товары по конкретным параметрам.

Каков порядок создания характеристик и фильтров?

Процесс настройки проходит в три этапа:

  1. Создание типа: В админ-панели создаете новый Тип продукта.
  2. Добавление характеристик: После сохранения типа добавляете к нему группы характеристик и их возможные значения (напр., для группы «Вес» значения «10 кг», «20 кг»).
  3. Привязка к товару: В карточке товара выбираете его «Тип», после чего система предложит заполнить соответствующие характеристики.
Поддерживаются ли множественные значения характеристик?

Да. Вы можете указать несколько значений для одной характеристики одного товара. Например, если модель кроссовок представлена в нескольких цветах, вы можете отметить «Серый», «Зеленый» и «Красный» одновременно. В поисковом фильтре такой товар будет отображаться при выборе любого из этих цветов.

Как разместить поисковый фильтр на сайте?

Существует два способа:

  • Функциональное меню (рекомендуется): Создайте меню типа «Поиск с Фильтром по типам продуктов». Это обеспечит лучшую совместимость с мобильной версией.
  • Короткий код (ShortCode): Вставьте в текст страницы код {HOTENGINE-SC:smart_search_widget:PARAM}, где PARAM — настройки фильтра.
Что такое параметр «autopath» и зачем он нужен?

Параметр autopath (или autopathID в тексте блока) критически важен для сохранения контекста поиска. Он позволяет выполнять фильтрацию внутри текущей открытой категории, не сбрасывая пользователя на общую страницу поиска. Например, для ноутбуков можно задать отображение фильтра только по пути /pers_shop/notebook/.

Как настроить отображение количества товаров в фильтре?

В настройках типа товара или через параметры ShortCode можно управлять счетчиками:

  • count — показывать количество товаров рядом со значением.
  • count_all — считать товары по всему сайту, игнорируя текущую категорию.
  • hideempty — автоматически скрывать характеристики, для которых не найдено товаров в текущем разделе.
Как включить функцию сравнения товаров?

Сравнение работает только для товаров, у которых задан Тип продукта. Для активации необходимо:

  1. В «Настройках магазина» (вкладка Просмотр товара) включить кнопку «Сравнить».
  2. В настройках конкретного Типа товара и в самих Характеристиках установить галочку «Сравнение».
  3. На странице сравнения (/compare.htm) отобразятся только те параметры, для которых эта галочка активна.
Где пользователь может увидеть список добавленных к сравнению товаров?

Список доступен по адресу /compare.htm. Для удобства пользователей рекомендуется добавить в шапку сайта кнопку с индикатором количества выбранных позиций, используя короткий код: {HOTENGINE-SC:shop_compare_menu}.

Можно ли стилизовать элементы сравнения?

Да. Всем элементам карточки товара, добавленным в сравнение, система автоматически присваивает атрибут data-compare="1". Вы можете использовать его в своих CSS-файлах для визуального выделения выбранных позиций.

Как работают автоматические описания на основе характеристик?

Система позволяет создавать шаблоны описаний, которые подтягиваются в карточку товара автоматически. Содержимое такой статьи будет динамически меняться в зависимости от того, какие характеристики (Тип, параметры) установлены у конкретного товара.

Как перевести значения фильтров на другие языки?

Вы можете переводить значения характеристик напрямую в их настройках. Чтобы перевод корректно отображался в выгрузках (XML/CSV/JSON), используйте ссылки с языковой приставкой (например, /ru/export_file) или указывайте нужный язык в параметрах генерации файла.

Есть ли на платформе защита от спама?

Да, в системе реализована многоуровневая защита от нежелательных сообщений и спам-заказов:

  • Капча: вы можете включить защитный код как в Конструкторе форм, так и в настройках оформления заказа (раздел Настройки — Магазин). Доступен выбор сложности (от 3 до 9 символов).
  • Глобальный фильтр: встроенная база данных автоматически блокирует запросы с известных спам-ресурсов.
  • Собственная база фраз: в разделе Настройки — Фильтр входящих сообщений вы можете создать личный список запрещенных слов и стоп-фраз. Сообщения, содержащие такие данные, будут автоматически отклоняться системой.
Какие дополнительные технические средства защиты от ботов используются в формах?

Помимо видимой капчи, платформа использует скрытые механизмы защиты. В формы встроены скрытые поля проверки ботов (honey-pots): роботы автоматически заполняют их, в то время как для реальных пользователей они невидимы. Если такое поле заполнено, система мгновенно блокирует отправку данных. Также действует защита от повторных отправок: установлен лимит (флуд-контроль), который ограничивает частоту запросов с одного IP-адреса, предотвращая автоматизированный спам и случайные дубликаты заказов.

Есть ли в системе возможность создания резервной копии сайта?

Да. В разделе Настройки — Резервная копия сайтов вы можете сформировать файл, содержащий основные данные вашего ресурса. В резервную копию включаются: все статические страницы, структура меню, новости, статьи, категории каталога статей и ваши индивидуальные CSS-стили.

Как правильно сохранить данные интернет-магазина (товары, категории)?

Поскольку каталог товаров может быть очень объемным, он выносится в отдельный экспорт. Для полной сохранности данных магазина рекомендуется регулярно выполнять экспорт следующих разделов: Товары, Категории магазина, Производители и Коллекции. Это позволит вам иметь актуальную копию всей коммерческой структуры сайта отдельно от системных настроек дизайна.

Есть ли в системе возможность массового (группового) редактирования товаров?

Да, для этого предназначен мощный инструмент «Групповое редактирование» в разделе «Магазин». Он позволяет не редактировать каждый товар по отдельности, а применять изменения сразу к сотням или тысячам позиций. Вы можете массово менять цены (используя математические формулы), переносить товары между категориями, обновлять статусы наличия, включать акции и даже управлять доступом (публикация или удаление) для всей выбранной группы товаров за один клик.

Как работает поиск и фильтрация в групповом редактировании?

Перед обновлением вы можете гибко отфильтровать нужные товары по:

  • Категории и производителю: включая возможность захватить товары из всех подкатегорий.
  • Ценовому диапазону: поиск товаров в интервале «от» и «до».
  • Наличию: выбрать только те, что есть на складе, или наоборот — отсутствующие.
  • Языку: редактирование товаров конкретной языковой версии.
  • Списку заголовков: можно вставить список названий, и система найдет только их.
Как массово изменить цены или сделать наценку?

В блоке «Обновление» доступен математический калькулятор для цен. Вы можете:

  • Установить фиксированную цену (через =).
  • Провести индексацию: прибавить или отнять сумму (+100) или процент (+15%).
  • Умножить или разделить: например, для конвертации валют (*41).
  • Работать со старой ценой: перенести текущую цену в «старую» (создав акцию) или наоборот — очистить старые цены.
  • Использовать наценку: рассчитать новую розничную цену на основе закупочной цены (Cost Price) с заданным коэффициентом или процентом.
Как массово настроить акции и таймеры распродаж?

Групповое редактирование позволяет превратить обычные товары в акционные:

  • Активация метки: установка флагов «Акция», «Новинка», «Хит продаж» или «Цена снижена».
  • Контент акции: через встроенный визуальный редактор можно задать общее описание условий акции для всех выбранных товаров.
  • Автоматизация по таймеру: вы устанавливаете дату окончания, и система сама решит, что сделать по истечении времени (например, вернуть старую цену, убрать метку акции или перезапустить таймер на новый срок).
  • Оптовые привязки: можно одним кликом установить «Цену» равной минимальной или максимальной оптовой цене товара.
Что еще можно изменить массово?

Помимо цен и акций, доступны следующие действия:

  • Перенос в другую категорию или смена производителя для всей группы.
  • Управление наличием: массово поставить статус «В наличии», «Под заказ» или полностью скрыть товары из списка.
  • Синхронизация языков: если включена опция «Товары на других языках», изменения применятся ко всем локализациям связанных товаров.
  • Управление доступом: быстрая публикация, снятие с продажи или полное удаление группы товаров.
  • Скидки: установка текстовых меток скидок (например, «-10%» или «Sale»), которые будут отображаться на иконках товаров.
Пользовательское соглашение
Администрация сайта не осуществляет торговой деятельности и не несет ответственности за качество продаваемых услуг/товаров внутри Hotlist.biz. За все размещенные товары и услуги несут ответственность пользователи, добавившие их.
Контакты: https://hotlist.biz/ru/feedback.html

Бұрын