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

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

Версия 07: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 страницы заказа