Советы по редактированию шаблонов InSales

Документация InSales /
Советы по редактированию шаблонов InSales

Верстка шаблонов: советы


  1. При необходимости использования в шаблоне интернет-магазина нового загруженного файла стилей, не стоит указывать к нему прямой путь, так как его месторасположение может измениться. Правильно было бы указать путь к нему в виде liquid-конструкции: {{“имя_файла | asset_url”}}.
  2. Переопределять значения переменных шаблонов, в которых они уже определены не стоит. В качестве примера можно привести переменную “product”, которая обозначена в шаблоне “Товар” или же переменную “collection”, уже имеющую значение в шаблоне “Категория”.
  3. Если вы при переносе шаблона решили удалить некоторые из его скриптов, относящихся к сравнению товаров, их добавлению в корзину и другим подобным действиям, не удаляйте стандартные скрипты InSales.
  4. В настройках шаблона оформления заказанных товаров не удаляйте те скрипты, которые являются стандартными (они задаются следующим образом: {{‘checkout’ | global_stylesheet_tag}}).
  5. При присваивании стандартным html элементам (p, b, i, span и другим) глобальных стилей, не забывайте возвращать свойственные им стили (b – жирный шрифт, I – курсивный шрифт, ul – список маркированного типа).
  6. При создании или редактировании тяжелых циклов на страницах интернет-магазина (например, они могут использоваться в категориях) стремитесь минимизировать размер их кода.
  7. При настройке окна для предпросмотра товара, выборе модификаций товара и других “тяжелых” фукнций не делайте их ликвидными. Так вы снизите скорость загрузки страниц. Лучше подгружать такие функции посредством ajax’а в тот момент, когда в них появляется необходимость.
    В качестве примера правильного варианта подгрузки тяжелых функций можно привести загрузку окна предпросмотра товара, вызываемого после нажатия соответствующей ссылки или кнопки. Обратившись к стандартной функции “load” или к json конкретного товара, можно успешно увеличить скорость загрузки страницы без потери удобства использования интерфейса.
  8. Для снижения времени загрузки страниц также следует отказаться от использования {{product | json}} при редактировании или создании циклов в товарах. Дело в том, что данный объект может содержать очень много информации (описания, модификации товара, его цены и параметры), которая вызовет замедление работы цикла. Если у вас есть необходимость использования параметров товаров в каких-либо циклах, то лучше использовать метод их получения посредством *.json тогда, когда это нужно.

Использование полезных JSON’ов


В системе InSales можно использовать много полезных JSON’ов. В этой статье мы поговорим о некоторых из них.

  1. /client_account/feedback.json

    Этот JSON предназначен для отправки сообщений с использованием формы обратной связи. В нем предусмотрены переменные, позволяющие получать следующую информацию:
    • feedback[name] — для получения имени покупателя;
    • feedback[from] – хранит адрес отправителя сообщения;
    • feedback[phone] – сообщает телефонный номер покупателя;
    • feedback[subject] – содержит тему сообщения;
    • feedback[content] – передает само сообщение.
  2.  
  3. /fast_checkout.json

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

    fast_checkout.json может обрабатывать все те поля, которые наличествуют и при обычном оформлении заказа. Чтобы создать заказ, надо ввести минимум один товар, а также способ оплаты, доставки и другие данные полей, обязательных для заполнения. В системе InSales такими полями являются имя клиента и его телефон.
  4.  
  5. /client_account/contacts.json

    После отправки этому JSON’у GET-запроса он выдает следующую информацию о зарегистрированном клиенте:
    • id – идентификатор клиента;
    • fields_values – дополнительные поля, информирующие о клиенте;
    • name – имя клиента;
    • surname – его фамилия;
    • middlename – отчество клиента;
    • email – почта, указанная клиентом в качестве контактной;
    • phone – телефонный номер;
    • registered – возвращает значение “true”, если клиент зарегистрирован и – ошибку, если такого клиента нет в базе данных;
    • subscribe – информация о наличии или отсутствии подписки на новости интернет-магазина;
    • created_at – дата регистрации;
    • updated_at – дата внесения последних изменений;
    • bonus_points – набранное количество бонусов (если в системе InSales у вас подключен тариф Бизнес или выше);
    • client_group_id – номер id группы, к которой относится покупатель;
    • ip_addr – адрес IP клиента;
    • default_address – желаемый адрес доставки;
    • orders_count – количество заказов, оформленных клиентом.

    Пример получения данных из JSON’а:
    $(document).ready(function(){
    	$.getJSON("/client_account/contacts.json",
    		function(data){
    			var myname = data.client.name;
    			$('#myname').html(myname);
    		});
    });

     
    /products_by_id/{id через запятую}.json

    С помощью этого JSON’а можно получить информацию о каких-либо товарах, указав их ID. Также его можно использовать, чтобы получить список товаров, просмотренных последними (если их ID были ранее записаны в cookie).
     
    /collection/{пермалинк категории}.json

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

    Данный JSON будет полезен тогда, когда появляется необходимость в получении информации большого количества товаров. При одновременной загрузке всех товаров на одну страницу она становится очень “тяжелой”. Облегчить ее вес можно воспользовавшись, например, подгрузкой товаров, которая будет происходить только при прокрутке конкретной страницы.
     
    /cart_items.json

    Обращаться к этому JSON’у можно через POST- или GET-запрос. В ответ он передает данные о текущем состоянии корзины или же добавляет в нее новые товары.

    При необходимости получения содержимого корзины, не стоит отправлять запросы типа POST, так как ответ может иметь некоторые отличия с GET-запросом. Еще одна особенность этого JSON’а – возможность появления сложно диагностируемых проблем при отправке двух подряд запросов к корзине. Связано это с тем, что на такой запрос JSON вместе с ответом отправляет set-cookie, который может изменить содержание cookie покупательской сессии.
     
    /cart_items/update_all.json

    Воспользовавшись этим JSON’ом, вы можете дать указание пересчитать скидки и сумму всех заказанных товаров. Он полезен при добавлении к заказу нового товара или купона для динамического расчета актуальной стоимости товаров в корзине.
  6. Сортировки и фильтры категорий

    Отфильтровать товары какой-либо категории можно по их свойствам, параметрам, цене или же наличию в интернет-магазине. Кроме этого, в системе InSales есть возможность изменять порядок сортировки и устанавливать количество товаров, выводимых на страницу.Чтобы передать значения параметров в функцию сортировки и фильтрации, нужно послать запрос на адрес соответствующей категории.
    Фильтрация по параметрам
    Для указания параметра сортировки следует воспользоваться шаблоном выражения: characters[]=1212121&characteristics[]=1212121, где цифровые значения – это ID параметра.Значения параметра можно передать и в виде диапазона. Если диапазон содержит числовые значения, то товары будут фильтроваться по числовому значению данного параметра. Если же в качестве минимального и максимального значения диапазона указаны нечисловые символы, то его значения будут восприниматься как строчные данные. Формат ввода диапазона значений параметра:
    • минимальное значение: properties_gt[id_параметра]=значение
    • максимальное значение: properties_lt[id_параметра]=значение
    Пример такого запроса:?properties_gt[121212]=3&properties_lt[121212]=110, где
    121212 – ID какого-либо параметра, а числа “3” и “110” – минимальное и максимальное его значение соответственно.
  7. Фильтрация по свойствам
    Формат использования:
    options[id_свойства][]=id_значения_свойства
    Например:
    ?options[111111][]=2222222, где 111111 – ID свойства, 2222222 – ID его значения.

    Фильтрация по наличию товаров
    Формат использования:
    only_available=значение, где в качестве значения можно использовать “true” или же “false”.
    Например:
    ?only_available=false

    Фильтрация по ценам товаров
    Формат использования:
    Для указания минимальной цены используется выражение price_min=значение, а для максимальной – price_max=значение.
    Например:
    ?price_min=1000&price_max=2000, где 1000 – минимальная цена, а 2000 – максимальная.

    Сортировка
    Формат использования:
    order=значение
    В качестве значения может быть использовано:
    price: сортировка по возрастанию стоимости товаров;
    descending_price: сортировка по убыванию стоимости товаров;
    title: в алфавитном порядке названий товаров, начиная с “А”;
    descending_title: сортировка названий товаров от последней к первой букве алфавита;
    age: вывод от самых новых до более поздних добавленных товаров;
    descending_age: вывод товаров, начиная с самых поздних до и заканчивая новыми;
    discount: сортировка по величине скидки, начиная с самой высокой. Скидка высчитывается как соотношение старой и новой цен;
    descending_discount: сортировка по величине скидки, начиная с меньшей.

    Пример использования сортировки:
    ?order=discount

    Выбор количества товаров на странице
    Формат использования:
    page_size=значение
    Например:
    ?page_size=20

    Поиск названий товаров в категории
    Формат использования:
    q=значение
    Например:
    ?q=Шторы.

    Геотаргетинг в InSales


    На любом из тарифом InSales у владельца интернет-магазина есть возможность автоматически определять географические регионы своих покупателей по их IP-адресу. Применяется геотаргетинг при оформлении покупателем заказа для автоматического заполнения полей “Регион” и “Город”.

    Кроме стандартного использования геотаргетинг может пригодиться для вывода на сайт информации, предназначенной пользователям из определенного региона, или для другого использования.

    Чтобы получить информацию о регионе покупателя, необходимо обратиться к JSON’у, расположенному по пути: kladr.insales.ru/current_location.json

    JSON выдает данные в следующем формате:
    Данные JSON'а

    Если этому JSON’у отправить GET-запрос, то полученные от него данные можно будет обрабатывать любым образом посредством javascript, например:
    <script>
    $.ajax({
    	url: 'http://kladr.insales.ru/current_location.json',
    	type: 'get',
    	dataType: 'jsonp',
    	success: function(data){
    		$('.hello').text('Ваш регион: ' + data.region)
    	}
    });
    </script>

0 комментариев

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