Ключи выпускаются в кабинете партнёра, раздел «API-ключи»: название, права - и ключ готов. Он показывается один раз, сохраните его. Храните ключ на сервере, а не в коде страницы или мобильного приложения: по нему видны ваши цены.
curl "https://api.orne.kz/v1/categories" \ -H "Authorization: Bearer orn_ваш_ключ"
Ответ 200 со списком категорий - всё в порядке. 401 - ключ не передан или отозван, 403 - у ключа нет права «Каталог, цены и остатки» или ваш уровень пока без API: причина написана в ответе.
// JavaScript, Node 18+: все страницы каталога const base = 'https://api.orne.kz/v1', key = process.env.ORNE_KEY; let page = 1, items = []; while (true) { const res = await fetch(`${base}/products?per_page=100&page=${page}`, { headers: { Authorization: `Bearer ${key}` } }); const { data, meta } = await res.json(); items.push(...data); if (page * meta.per_page >= meta.total) break; page++; }
В каждом товаре - ступени цен по вашему уровню, остаток, цвета с фото и адрес карточки на сайте ÖRNE.
Сохраните время синхронизации и в следующий раз передайте его в updated_since. Остатки удобно обновлять каждые 5-15 минут, товары и цены - раз в час.
// PHP: изменения остатков с прошлой синхронизации $since = urlencode($lastSync->format(DATE_ATOM)); $ch = curl_init("https://api.orne.kz/v1/stock?per_page=100&updated_since=$since"); curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer '.$key]]); $stock = json_decode(curl_exec($ch), true)['data']; foreach ($stock as $row) { // $row['sku'] - артикул цвета, $row['stock'] - свободный остаток }
Если в ответе 429 - лимит запросов исчерпан: подождите столько секунд, сколько указано в заголовке Retry-After.
Ещё проще - подписаться на вебхуки stock.updated и price.updated в кабинете: ÖRNE сам пришлёт изменения.
curl -X POST "https://api.orne.kz/v1/orders" \
-H "Authorization: Bearer orn_ваш_ключ" -H "Content-Type: application/json" \
-H "Idempotency-Key: ZK-1042" \
-d '{"items":[{"sku":"ORN-0026","qty":100,"prints":[{"method":"dtf","zone":"chest","size":"до 15 см"}]}],
"delivery":{"type":"courier","city":"Астана","address":"ул. Примерная, 1"},"external_ref":"ZK-1042"}'В ответе - номер заказа ORN-... и этап. Дальше следите за ним через /orders/{id} или вебхук order.status. Нужно право ключа «Создание заказов».
Если публикуете карточки ÖRNE без переработки описания, укажите на странице <link rel="canonical" href="..."> с адресом из поля canonical_url - поисковики не посчитают страницы дублями. Фото берите по ссылкам из images.
Напишите - посмотрим журнал запросов по вашему ключу и скажем, где именно ломается. Журнал виден и вам, в разделе «API-ключи» кабинета.
Написать в WhatsApp
Опишите задачу - подберём продукцию под бюджет и срок, посчитаем стоимость с нанесением.