Покупателю не нужно входить, чтобы собрать корзину и оформить заказ. Гость опознаётся парой заголовков: идентификатором и его подписью, выданной платформой. Подпись проверяется, поэтому чужую корзину подобрать нельзя.
Когда гость входит в учётную запись, его корзина сливается с той, что была у него раньше.
В каталоге витрины поле остатка у размера — это доступный остаток: физический минус то, что уже зарезервировано под чужие неоплаченные заказы. Поэтому покупатель не увидит вещь, которая вот-вот уедет к другому.
Публичная часть платформы: каталог, корзина, оформление заказа. Пригодится, если вы делаете свою витрину, мобильное приложение или киоск вместо стандартного сайта. Авторизация покупателя почти нигде не нужна — гость проходит весь путь до оплаты.
Гостевая корзина живёт по паре заголовков — идентификатору гостя и его подписи. Подпись выдаёт платформа, подделать её нельзя. Когда гость входит в учётную запись, его корзина сливается с пользовательской.
Заголовки
Параметр
Тип
Обязателен
Описание
X-Site-Source
string
да
Код магазина: корзина у каждого магазина своя.
X-Guest-ID
string
нет
Идентификатор гостя. Для гостевой корзины обязателен.
Превращает корзину в заказ и ставит товар в резерв.
Доступ:Гостевая сессияСессия сотрудника
Собирает заказ из корзины того магазина, с витрины которого пришёл запрос. Итог считается как товары плюс доставка минус промокод. Сразу после создания товар встаёт в резерв на ограниченное время — чтобы его не купил кто-то другой, пока покупатель платит.
Тело запроса
Параметр
Тип
Обязателен
Описание
lastName
string
да
Фамилия получателя.
firstName
string
да
Имя получателя.
phone
string
да
Телефон.
email
string
нет
Почта для писем о заказе.
city
string
да
Город доставки. Для международной — страна.
deliveryMethod
string
нетпо умолчанию cdek_pvz
Способ доставки.cdek_pvz · cdek_courier · international
pvzCode
string
нет
Код пункта выдачи. Обязателен при доставке в пункт выдачи.
street
string
нет
Улица. Обязательна при курьерской доставке.
house
string
нет
Дом. Обязателен при курьерской доставке.
promoCode
string
нет
Промокод. Неподходящий код не роняет заказ — скидка просто не применится.
agreedToTerms
boolean
нет
Согласие с условиями.
agreedToPrivacy
boolean
нет
Согласие на обработку данных.
Ошибки
Код
Ответ сервера
Когда возникает
Что делать
400
{"error":"Корзина пуста"}
В корзине магазина ничего нет.
—
400
{"error":"Выберите пункт выдачи СДЭК"}
Доставка в пункт выдачи без указания пункта.
—
400
{"error":"Укажите улицу и дом для курьерской доставки"}
Регистрация, вход и восстановление пароля живут по адресам, начинающимся с /auth. Учётная запись покупателя привязана к магазину: одна и та же почта в двух магазинах — это два разных покупателя, и войти учётной записью соседнего магазина нельзя.
Чтобы не искать: в платформе отсутствуют как сущности
отзывы и оценки товаров — их негде хранить и нечем отдавать;
подписка на поступление и подписка на снижение цены как отдельная функция.
Уведомление о поступлении всё же работает, но иначе: письмо уходит тем, у кого товар в избранном и подтверждена почта, когда сотрудник снимает пометку «продано». То есть роль подписки играет избранное.