API сайта
JSON-методы, которые шаблон вызывает из браузера посетителя: корзина, каталог, поиск, сравнение, избранное, отзывы, покупатель и быстрый заказ.
Это не API бэк-офиса для интеграций. Запросы идут на домен магазина и используют сессию витрины.
Как читать примеры
У метода первая строка — глагол и путь. Сразу под ней таблица параметров: имя, обязательность, тип и смысл. Ниже два столбца: слева запрос, справа ответ со статусом. На узком экране ответ уходит под запрос.
Отдельное поведение метода — отдельный пример со своим заголовком и своей таблицей.
Запрос витрины написан на JavaScript для браузера: fetch с cookie витрины.
Общие правила
Запрос выполняется на домене магазина. credentials: "same-origin" отправляет cookie сессии: без них корзина, сравнение и избранное будут чужими или пустыми.
Токен CSRF лежит в <meta name="csrf-token">. Для POST, PATCH, PUT и DELETE его нужно передать заголовком X-CSRF-Token.
const csrfToken = document.querySelector('meta[name="csrf-token"]').content;
await fetch("/front_api/cart.json", {
method: "PATCH",
credentials: "same-origin",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
"X-CSRF-Token": csrfToken
},
body: JSON.stringify({ variant_id: 2176487200, quantity: 1 })
});
Ответ в формате JSON. У части старых адресов для этого нужен суффикс .json. У /front_api/... формат тоже лучше указывать явно: /front_api/cart.json.
Текущие методы корзины, сравнения и избранного живут в /front_api. Адреса /cart_items.json, /compares.json и /products_by_id/...json продолжают работать и описаны рядом как слой совместимости.
Разделы
| Раздел | Методы |
|---|---|
| Корзина | /front_api/cart, /cart_items |
| Товары | /front_api/products, карточка товара |
| Коллекции | список товаров, фильтры, меню |
| Поиск | /search.json, подсказки |
| Сравнение и избранное | /front_api/compares, /front_api/favorites |
| Отзывы и комментарии | товары, магазин, статьи |
| Покупатель | контакты, обратная связь, вход |
| Заказ | /fast_checkout.json |
| Доставка | расчёт доставки |