Работа с корзиной — различия между версиями
Vb (обсуждение | вклад) |
Vb (обсуждение | вклад) (→items) |
||
Строка 98: | Строка 98: | ||
# sale_price - цена одного экземпляра | # sale_price - цена одного экземпляра | ||
# quantity - количество заказанных экземпляров | # quantity - количество заказанных экземпляров | ||
+ | # weight - суммарный вес | ||
# total_price - суммарная стоимость позиции | # total_price - суммарная стоимость позиции | ||
# product_id - идентификатор товара | # product_id - идентификатор товара | ||
# product_url - URL страницы заказа | # product_url - URL страницы заказа |
Текущая версия на 09:07, 8 июля 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 - количество заказанных экземпляров
- weight - суммарный вес
- total_price - суммарная стоимость позиции
- product_id - идентификатор товара
- product_url - URL страницы заказа