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

Материал из Insales Wiki
Перейти к: навигация, поиск
(Введение)
(Введение)
Строка 8: Строка 8:
 
# групповое изменение состава корзины (с его помощью сделана кнопка пересчитать на странице корзины в стандартных шаблонах).
 
# групповое изменение состава корзины (с его помощью сделана кнопка пересчитать на странице корзины в стандартных шаблонах).
  
Все операции меняющие состав корзины осуществляются путем отправления POST запроса на URL ''/cart_items''.  
+
Все операции, меняющие состав корзины, осуществляются путем отправления POST запроса на URL ''/cart_items''.  
 
Можно ограничится обычными html формами, можно манипулировать корзиной при помощи ajax запросов, для этого надо использовать URL ''/cart_items.json''.  
 
Можно ограничится обычными html формами, можно манипулировать корзиной при помощи ajax запросов, для этого надо использовать URL ''/cart_items.json''.  
 
Содержание запросов не зависит от того, как им из двух способов вы работаете с корзиной.
 
Содержание запросов не зависит от того, как им из двух способов вы работаете с корзиной.

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


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

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

  • _method - строка 'delete'
  • id - идентификатор модификации


Если вы используете 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 страницы заказа