Магазин на своём сайте

Витрина, карточка товара и оформление заказа на вашей странице — без ключа.

Строка кода

Вставьте в страницу, где должен появиться магазин, и подставьте адрес своего магазина:

HTML
<div id="shop"></div>
<script src="https://myshop.okeysait.ru/embed.js" data-target="#shop" async></script>

Показать один раздел — добавьте в тег data-category="12" (номер раздела). Шрифт магазин берёт у вашей страницы, размеры — по ширине блока. Корзина хранится в браузере покупателя.

Сколько колонок

Число колонок карточек задаётся переменной CSS у блока:

CSS
#shop { --okeano-grid: repeat(4, minmax(0, 1fr)); }

Storefront API

Тот же интерфейс в JSON — для своей витрины. Работает из браузера (CORS включён), ключ не нужен. Адрес — ваш магазин, например https://myshop.okeysait.ru.

Каталог

GET /ajax/embed.php?action=catalog — по 24 товара на странице.

ПараметрЧто делает
category_idТолько товары этого раздела и его подразделов
keywordПоиск по названию, до 80 знаков
pageНомер страницы, с 1

В ответе: shop, categories, products, page, pages, total.

Товар

GET /ajax/embed.php?action=product&id=101 — описание, варианты и фото. Нет такого или он скрыт — 404 not_found.

Заказ

POST /ajax/embed.php?action=order, тело — JSON:

ПолеЧто передать
nameИмя, обязательно
phoneТелефон, обязательно, не меньше 10 цифр
emailПочта, по желанию
itemsПозиции, обязательно: [{"variant_id": 77, "amount": 1}], не больше 50, количество от 1 до 999
commentКомментарий, до 1000 знаков
websiteЛовушка для роботов: оставьте пустым, при любом тексте заказ не создаётся

Успех: {"ok": true, "order_id": 518, "order_url": "…"}. Заказ с чужого сайта помечается «Заказ с сайта <адрес>». С одного IP-адреса — не больше 5 заказов за 10 минут.

Ошибки

Ошибка — это error с кодом и message с текстом для покупателя:

JSON
{"error": "phone", "message": "Укажите телефон: не меньше 10 цифр."}
КодHTTPКогда
name, phone, email422Поле не заполнено или неверно
empty422В заказе нет доступных товаров
bad_request400Тело — не JSON
too_many429Больше 5 заказов за 10 минут с одного IP-адреса
failed500Не удалось оформить заказ, повторите

Своя программа

Товары, остатки и заказы с вашего сервера — через REST API с ключом.

Выбор города
Ваш город можно выбрать через корзину или в комментариях к заказу