Работа с корзиной — различия между версиями
Vb (обсуждение | вклад) (→Удаление позиции) |
Vb (обсуждение | вклад) |
||
Строка 28: | Строка 28: | ||
* currency_format - формат вывода стоимости, указанный в настройках валюты. | * currency_format - формат вывода стоимости, указанный в настройках валюты. | ||
+ | =Добавление нескольких позиций= | ||
+ | |||
+ | Параметры запроса: | ||
+ | * variant_ids['''id'''] - добавляемое в корзину количество экземпляром модификации с идентификатором '''id''' | ||
+ | |||
+ | Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами: | ||
+ | * items - описание позиций; | ||
+ | * items_count - количество позиций; | ||
+ | * total_price - стоимость заказа с учетом скидок и стоимости доставки; | ||
+ | * currency - обозначение валюты, указанное в настройках валюты; | ||
+ | * currency_format - формат вывода стоимости, указанный в настройках валюты. | ||
=Удаление позиции= | =Удаление позиции= | ||
Строка 43: | Строка 54: | ||
* currency_format - формат вывода стоимости, указанный в настройках валюты. | * currency_format - формат вывода стоимости, указанный в настройках валюты. | ||
− | = | + | =Обновление состава корзины= |
+ | |||
+ | Позволяет одновременно добавлять и удалять позиции, так же позволяет менять количество заказываемых товаров. | ||
Параметры запроса: | Параметры запроса: | ||
Строка 49: | Строка 62: | ||
* cart[quantity][id модификации] - количество (если вы хотите удалить позицию, то 0) | * cart[quantity][id модификации] - количество (если вы хотите удалить позицию, то 0) | ||
+ | Если модификация, есть в корзине, а ее в запросе не упомянули, то она удаляется из корзины. | ||
+ | Если в количестве указан 0, то модификация опять же удаляется из корзины. | ||
Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами: | Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами: | ||
Строка 55: | Строка 70: | ||
* currency_format - формат вывода стоимости, указанный в настройках валюты. | * currency_format - формат вывода стоимости, указанный в настройках валюты. | ||
+ | Если | ||
Пример: | Пример: |
Версия 13:37, 5 июля 2010
Содержание
Введение
Как уже говорили в предыдущих разделах, для корзины есть отдельный шаблон. В интернет-магазине корзина находится на странице /cart_items.
Для изменения состава корзины предусмотрено три операции:
- добавление позиции,
- обновление позиции,
- групповое изменение состава корзины (с его помощью сделана кнопка пересчитать на странице корзины в стандартных шаблонах).
Все операции, меняющие состав корзины, осуществляются путем отправления POST запроса на URL /cart_items. Можно ограничиться обычными html формами, можно манипулировать корзиной при помощи ajax запросов, для этого надо использовать URL /cart_items.json. Содержание запросов не зависит от того, каким из двух способов вы работаете с корзиной.
Если вы используете html форму, то после выполнения операции покупатель будет перенаправляться на страницу корзины.
Добавление позиции
Параметры запроса:
- variant_id - id модификации
- quantity - добавляемое в корзину количество
Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами:
- items - описание позиций;
- items_count - количество позиций;
- total_price - стоимость заказа с учетом скидок и стоимости доставки;
- currency - обозначение валюты, указанное в настройках валюты;
- currency_format - формат вывода стоимости, указанный в настройках валюты.
Добавление нескольких позиций
Параметры запроса:
- variant_ids[id] - добавляемое в корзину количество экземпляром модификации с идентификатором id
Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами:
- items - описание позиций;
- items_count - количество позиций;
- total_price - стоимость заказа с учетом скидок и стоимости доставки;
- currency - обозначение валюты, указанное в настройках валюты;
- currency_format - формат вывода стоимости, указанный в настройках валюты.
Удаление позиции
URL запроса: /cart_items/id
где id - идентификатор модификации
Параметры запроса:
- _method - строка 'delete'
Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами:
- items_count - количество позиций;
- total_price - стоимость заказа с учетом скидок и стоимости доставки;
- currency - обозначение валюты, указанное в настройках валюты;
- currency_format - формат вывода стоимости, указанный в настройках валюты.
Обновление состава корзины
Позволяет одновременно добавлять и удалять позиции, так же позволяет менять количество заказываемых товаров.
Параметры запроса:
- _method - строка 'put'
- cart[quantity][id модификации] - количество (если вы хотите удалить позицию, то 0)
Если модификация, есть в корзине, а ее в запросе не упомянули, то она удаляется из корзины. Если в количестве указан 0, то модификация опять же удаляется из корзины.
Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами:
- total_price - стоимость заказа с учетом скидок и стоимости доставки;
- currency - обозначение валюты, указанное в настройках валюты;
- currency_format - формат вывода стоимости, указанный в настройках валюты.
Если
Пример:
<form action="/cart_items" id="cartform" method="post"> <input type="hidden" value="put" name="_method"> <table> {% for item in cart.items %} <tr> <td><a href="{{ item.product.url }}">{{ item.title | escape }}</a></td> <td><input type="text" value="{{ item.quantity }}" name="cart[quantity][{{ item.id }}]"/><td> </tr> {% endfor %} </table> </form>
Описание JSON ответов
items
Массив объектов, описывающих позиции заказа.
Атрибуты позиции:
- title - название позиции
- sku - артикул модификации
- variant_id - идентификатор модификации
- sale_price - цена одного экземпляра
- quantity - количество заказанных экземпляров
- total_price - суммарная стоимость позиции
- product_id - идентификатор товара
- product_url - URL страницы заказа