Магазин на своём сайте
Витрина, карточка товара и оформление заказа на вашей странице — без ключа.
Строка кода
Вставьте в страницу, где должен появиться магазин, и подставьте адрес своего магазина:
<div id="shop"></div>
<script src="https://myshop.okeysait.ru/embed.js" data-target="#shop" async></script>Показать один раздел — добавьте в тег data-category="12" (номер раздела). Шрифт магазин берёт у вашей страницы, размеры — по ширине блока. Корзина хранится в браузере покупателя.
Сколько колонок
Число колонок карточек задаётся переменной 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 с текстом для покупателя:
{"error": "phone", "message": "Укажите телефон: не меньше 10 цифр."}| Код | HTTP | Когда |
|---|---|---|
name, phone, email | 422 | Поле не заполнено или неверно |
empty | 422 | В заказе нет доступных товаров |
bad_request | 400 | Тело — не JSON |
too_many | 429 | Больше 5 заказов за 10 минут с одного IP-адреса |
failed | 500 | Не удалось оформить заказ, повторите |
Своя программа
Товары, остатки и заказы с вашего сервера — через REST API с ключом.