Работа с корзиной — различия между версиями

Материал из Insales Wiki
Перейти к: навигация, поиск
(Введение)
(Удаление позиции)
Строка 30: Строка 30:
  
 
=Удаление позиции=
 
=Удаление позиции=
 +
URL запроса: ''/cart_items/'''id'''''
 +
 +
где '''id''' - идентификатор модификации
  
 
Параметры запроса:
 
Параметры запроса:
 
* _method - строка 'delete'
 
* _method - строка 'delete'
* id - идентификатор модификации
 
 
  
 
Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами:
 
Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами:

Версия 13:28, 5 июля 2010

Введение

Как уже говорили в предыдущих разделах, для корзины есть отдельный шаблон. В интернет-магазине корзина находится на странице /cart_items.

Для изменения состава корзины предусмотрено три операции:

  1. добавление позиции,
  2. обновление позиции,
  3. групповое изменение состава корзины (с его помощью сделана кнопка пересчитать на странице корзины в стандартных шаблонах).

Все операции, меняющие состав корзины, осуществляются путем отправления 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 - формат вывода стоимости, указанный в настройках валюты.


Удаление позиции

URL запроса: /cart_items/id

где id - идентификатор модификации

Параметры запроса:

  • _method - строка 'delete'

Если вы используете ajax запрос, то вам вернут объект в JSON формате с атрибутами:

  • items_count - количество позиций;
  • total_price - стоимость заказа с учетом скидок и стоимости доставки;
  • currency - обозначение валюты, указанное в настройках валюты;
  • currency_format - формат вывода стоимости, указанный в настройках валюты.

Групповое изменение корзины

Параметры запроса:

  • _method - строка 'put'
  • cart[quantity][id модификации] - количество (если вы хотите удалить позицию, то 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

Массив объектов, описывающих позиции заказа.

Атрибуты позиции:

  1. title - название позиции
  2. sku - артикул модификации
  3. variant_id - идентификатор модификации
  4. sale_price - цена одного экземпляра
  5. quantity - количество заказанных экземпляров
  6. total_price - суммарная стоимость позиции
  7. product_id - идентификатор товара
  8. product_url - URL страницы заказа