Статьи

Работа с продуктами Shopify: корзина Ajax

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

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

То, что вы будете создавать - представление коллекции с кнопками добавления в корзину ajax

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

Это достигается с помощью вызова AJAX, написанного на JavaScript, который отправляет запрос в API-интерфейс Shopify. По сути, браузер может отправлять форму с помощью фонового запроса и держать пользователя на странице.

Для этого нам нужно изменить тему Shopify, поэтому войдите в систему своего администратора и зайдите в Интернет-магазин, а затем в раздел « Темы » (или для быстрого доступа нажмите G W T ).

Нажмите на для редактирования HTMLCSS

Теперь нажмите на кнопку ... в вашей теме и выберите Изменить HTML / CSS . Внутри этого раздела посмотрите слева и нажмите на папку с фрагментами, а затем добавьте новый фрагмент.

Создайте свой сниппет ajaxify-cart

Назовите ваш фрагмент ajaxify-cart и нажмите Создать фрагмент .

Теперь откройте этот файл , выберите все и скопируйте и вставьте содержимое в только что созданный фрагмент ajaxify-cart.liquid .

Добавление корзины Ajaxify

Убедитесь, что вы сохранили свои изменения перед выходом. Если вы хотите изменить текст корзины ajaxify, вы можете посмотреть на изменение строк в этом файле, таких как addToCartBtnLabel . Для получения дополнительной информации о конфигурации прочитайте файл readme для корзины ajaxify.

Теперь внутри вашей папки раскладок нажмите на файл theme.liquid. Найдите </body> в редакторе и убедитесь, что перед ним добавлено следующее:

1
{% include ‘ajaxify-cart’ %}

Это будет включать фрагмент ajaxify-cart вы только что добавили на все страницы, чтобы код был доступен, когда мы вызовем его на следующем шаге.

Пример того, как добавить тег ajaxify-cart

Вы можете включить ajaxify-cart и другие фрагменты также в <body> </body> как показано выше.

Убедитесь, что вы сохранили файл theme.liquid перед выходом из окна.

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

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

1
2
3
4
5
6
<form method=»post» action=»/cart/add»>
    <input type=»hidden» name=»id» value=»{{ product.variants.first.id }}» />
    <label for=»quantity»>Qty: </label>
    <input min=»1″ type=»number» id=»quantity» name=»quantity» value=»1″ />
    <input type=»submit» value=»Add to cart» class=»btn» />
</form>

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

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

Добавление товара в корзину без обновления страницы

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

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

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
.product-list-item-title {
    font-size: 16px;
    line-height: 22px;
    margin: 5px 0 0;
    float:left;
    width: 50%;
 .product-list-item-price {
     float:left;
     width: 10%;
     margin-top:5px}
 .product-list-item-details form {
     float:left;
     width: 30%;
     }

Чтобы это работало на мобильных и настольных компьютерах, вам нужно использовать медиа-запросы, такие как следующие, чтобы очистить плавающее поле:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
@media (min-width: 1020px) {
  .product-list-item-title-list { font-size: 16px;
  line-height: 22px;
  margin: 5px 0 0;
  .product-list-item-price-list {float:left;
  .product-list-item-details-list form { float:left;
}
 
@media only screen
  and (min-device-width: 320px)
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2) {
    .product-list-item-title-list { font-size: 16px;
  line-height: 22px;
  margin: 20px 0 0;
    .product-list-item { }
    .product-list-item-price-list { float: none;}
    .product-list-item-details-list form { float:none;
}

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

Откройте свой шаблон и добавьте следующее условие, где вы хотели бы, чтобы кнопка «Добавить в корзину» появлялась, например, в макете списка продуктов, где мы добавили количество. Добавьте условное выражение {% if collection.title %} как показано в следующем коде:

1
2
3
4
5
6
7
8
{% if collection.title %}
    <form method=»post» action=»/cart/add»>
        <input type=»hidden» name=»id» value=»{{ product.variants.first.id }}» />
        <label for=»quantity»>Qty: </label>
        <input min=»1″ type=»number» id=»quantity»name=»quantity» value=»1″ />
        <input type=»submit» value=»Add to cart» class=»btn» />
    </form>
{% endif %}

Вы можете указать любые критерии, которые вам нравятся, вместо {% if collection.title %} если вы хотите проверить другое значение, например, есть ли товар в наличии или к какой категории или тегам он применен.

Вы можете изменить CSS своей темы, чтобы изменить отображение корзины ajax и настроить его так, как вам хочется. Некоторые полезные классы для изменения: .cart-count и #cart-count a:first .

Чтобы указать добавленную стоимость в корзину, вы также можете изменить ссылку для просмотра корзины с классами #gocart pa , #cart и .checkout em .

Чтобы изменить общее количество предметов, посмотрите на .item-count .

Кроме того, в конце фрагмента ajaxify-cart.liquid вы можете редактировать следующие цвета.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
.ajaxified-cart-feedback {
  display: block;
  line-height: 36px;
  font-size: 90%;
  vertical-align: middle;
}
.ajaxified-cart-feedback.success {
  color: #3D9970;
}
.ajaxified-cart-feedback.error {
  color: #FF4136;
}
.ajaxified-cart-feedback a {
  border-bottom: 1px solid;
}

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

Не забудьте проверить мобильное разрешение, чтобы увидеть, как работает корзина ajax. Возможно, вам придется добавить несколько медиа-запросов, чтобы они хорошо отображались на всех экранах.

Как упоминалось ранее, вы можете использовать следующие условные носители, чтобы проверить это:

01
02
03
04
05
06
07
08
09
10
@media (min-width: 1020px) {
 /* Classes go here for wide screen */
}
 
@media only screen
  and (min-device-width: 320px)
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2) {
    /* Classes go here for mobile devices */
}

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

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

В дальнейшем вы можете захотеть добавить больше элементов ajax на ваш сайт. Если это так, то вашей первой точкой отсчета будет API-интерфейс Shopify — и он разберет источник, предоставленный для корзины покупок ( ajaxify-cart.liquid ), чтобы более внимательно изучить, как выполняются вызовы.

Для этого потребуется базовое понимание JavaScript и AJAX, но не волнуйтесь, если вы новичок — это действительно очень простые вещи.

Всю обработку вызова AJAX можно найти в разделе файла $.ajax , а дополнительную информацию о том, как это работает, можно найти на веб-сайте jQuery .

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