Вся работа с Javascript при разработке темы под InSales выполняется через бибилиотеку newcommon.js
Для работы с библиотекой необходимо прописать настройку в settings_data.json и создать config сниппет.
В settings_data.json нужно добавить свойство: "common_js_version": "v2";
Файл settings_data.json не доступен через бэк-офис, поэтому новое свойство нужно добавлять вручную через скачивание темы и последующей установке с новыми параметрами.
В качестве имени сниппета следует использовать имя «insales_config.liquid»
В нем будет содержаться:
Любую работу и настройку с библиотекой рекомендуется производить в данном сниппете.
Содержимое сниппета:
<!-- Объявление базовых переменных с данными взятыми из liquid -->
<script>
Shop.money.set('{{ money_with_currency_format }}');
Site.client_group = {
id: '{{ client_group.id }}',
title: '{{ client_group.title }}',
discount: '{{ client_group.discount }}',
discount_description: '{{ client_group.discount_description }}',
};
Site.template = '{{ template }}';
Site.locale = '{{ language.locale }}';
Site.language = {
locale: '{{ language.locale }}',
not_default: {{ language.not_default? }},
};
Site.account = {
id: '{{ account.id }}',
hide_items: '{{ account.hide_items_out_of_stock }}',
email: '{{ account.email }}',
};
</script>
Она предназначена для простого взаимодействия базового функционала с остальными скриптами, не привязываясь при этом к верстке и вспомогательным объектам.
Работает по принципу Pub/Sub (Издатель/Подписчик) и построена на Deferred, что позволяет:
Работа с шиной производится через объект EventBus.