Документация Shopkeeper 4.x

Корзина товаров

Пример формы для добавления товара в корзину:

<form id="shk-form" action="{{ path('shop_cart_add') }}" method="post">
    <input type="hidden" name="item_id" value="{{ currentPage.id }}">
    <input type="hidden" name="category_id" value="{{ currentPage.parentId }}">
    <div>
        <input type="number" class="form-control d-inline-block text-center mr-2" value="1" min="1" step="1" name="count" style="width: 100px;">
        <button type="submit" class="btn btn-primary" name="submit_button">
            {{ 'Add to cart' | trans }}
        </button>
    </div>
</form>

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

<form id="shk-form" action="{{ path('shop_cart_add') }}" method="post">
    <input type="hidden" name="item_id" value="{{ currentPage.id }}">
    <input type="hidden" name="category_id" value="{{ currentPage.parentId }}">
    <input type="hidden" name="back_url" value="{{ url('page_checkout') }}">
    <div>
        <input type="number" class="form-control d-inline-block text-center mr-2" value="1" min="1" step="1" name="count" style="width: 100px;">
        <button type="submit" class="btn btn-primary" name="submit_button">
            {{ 'Add to cart' | trans }}
        </button>
    </div>
</form>

Функция shopCart

Содержимое корзины можно вывести при помощи Twig-функции shopCart(). Пример:

{{ shopCart('shop_cart') }}

Аргументы:

  1. Название шаблона (без .html.twig) корзины с товаром в папке "catalog".
  2. Название шаблона пустой корзины в папке "catalog" (не обязательный).

Функция shopCartProductCount

Для проверки находится ли товар в корзине или вывода количества товара, который находится в корзине, можно использовать Twig-функцию shopCartProductCount(). Пример:

{% if shopCartProductCount(contentType.name, 'shop', currentPage.id) > 0 %}
    <div class="text-left p-5">
        <a class="btn btn-primary has-gradient btn-lg btn-wide" href="{{ path('page_checkout') }}">
            {{ 'Proceed to checkout' | trans }}
        </a>
    </div>
{% endif %}

Аргументы:

  1. Системное имя типа контента.
  2. Тип содержимого корзины товаров. По умолчанию: shop.
  3. ID товара (не обязательно).

Если ID товара не указано, выводится общее число товаров в корзине.