Балкантау 43
ТоптамаларҚоймаданТігу ХудиФутболкаларТермостарШопперлер КүнделіктерҚаламсаптарPower BankБейсболкалар ПледтерҚораптарПакеттерЛанч-бокстар

API серіктестерге

Сіздің сайтыңыз немесе есеп жүйеңіз ÖRNE каталогын сіздің бағаларыңызбен, қалдықтармен және санаттармен бірге өзі алып отырады - қолмен жүктеп алудың қажеті жоқ.

Негізгісі

Қосылуға қажеттінің бәрі - бір экранда.
API мекенжайыhttps://api.orne.kz/v1
КілтAuthorization: Bearer orn_... тақырыбында. Серіктес кабинетінде, «API-кілттер» бөлімінде шығарылады. API Silver и Gold деңгейіндегі серіктестерге қолжетімді.
ЛимитБір кілтке минутына 60 сұраныс. Лимиттен асса - 429 жауабы және кідірісті секундпен көрсететін Retry-After тақырыбы
Деректер форматыUTF-8 кодтауындағы JSON. Сомалар - теңгемен, бүтін сандармен, уақыт - Астана белдеуімен ISO 8601 форматында
Әзірлеушіге арналған сипаттамаhttps://api.orne.kz/v1/openapi.yaml OpenAPI файлы Postman-да және клиент генераторларында ашылады

Алғашқы сұраныс

curl "https://api.orne.kz/v1/products?per_page=50" \
  -H "Authorization: Bearer orn_ваш_ключ"

1Әдістер

Барлық жауаптар тек сіздің ассортиментіңіз бойынша және сіздің бағаларыңызбен беріледі: серіктесті кілт анықтайды. Басқа серіктестердің нысандары көрінбейді - 404 жауабы.

GET/products

Тауарлар: атауы, сипаттамасы, санаты, бренді, материалы, бар-жоғы мен қалдығы, ең аз таралымы, сіздің деңгейіңіз бойынша баға сатылары, логотип салу әдістері, қалдықтары мен фотосы бар түстер, ÖRNE сайтындағы карточка мекенжайы (canonical_url).

Параметрлер: page, per_page (100-ге дейін, әдепкі бойынша 50), updated_since, category - /categories ішіндегі код.

GET/products/{sku}

Артикул бойынша бір тауар - өрістері тізімдегідей.

GET/stock

Тек түстер бойынша қалдықтар: түс артикулы, бос саны (резервтерді шегергенде), бар-жоғы, түсу күні. Жиі сұрап отыруға арналған жеңіл жауап.

Параметрлер: page, per_page, updated_since.

GET/prices

Тек бағалар: сіздің деңгейіңіз бойынша таралым сатылары, жеке баға белгісі, қолданыстағы акция (баға, мерзім, квота қалдығы), прайс-лист нұсқасы.

Параметрлер: page, per_page, updated_since.

GET/categories

Ассортиментіңіздің санаттар ағашы, әр санаттағы тауар саны көрсетілген - каталогты өз жағыңызда құру үшін.

POST/orders

Тапсырысты өз жүйеңізден рәсімдеу - кілттің «Тапсырыс жасау» құқығы қажет. Позициялар: тауар немесе түс артикулы, таралым, логотип салу (prints[].method, size); жеткізу pickup, courier немесе shipping; түсініктеме және сіздің тапсырыс нөміріңіз external_ref. Бағалар - сіздікі, /prices ішіндегідей.

Idempotency-Key тақырыбы қайталанудан қорғайды: сол кілтпен қайталанған сұраныс бұрын жасалған тапсырысты қайтарады.

GET/orders/{id}

ORN-... нөмірі бойынша тапсырыс кезеңі, төлем, позициялар және кезеңдер тарихы. Тек сіздің тапсырыстарыңыз.

POST/reserves

Тауарды тапсырыссыз резервке қою - «Қойма резервтері» құқығы қажет. Позициялар: /stock ішіндегі түс артикулы және саны - бос қалдықтан көп емес. Резерв мерзімі деңгейіңізге байланысты, резерв кабинетте көрінеді және өзі алынады.

2Синхрондау

Алғаш рет /products әдісінің барлық беттерін алыңыз. Әрі қарай updated_since - өткен синхрондау уақытын жіберіңіз, сонда тек өзгергені келеді:

  • /products және /stock - деректері немесе қалдығы өзгерген тауарлар мен түстер;
  • /prices - баға сатылары, акциялары немесе жеке бағаларыңыз өзгерген тауарлар; ÖRNE жаңа прайс-листті қосса - барлық позициялар;
  • серіктестік деңгейіңіз өзгергенде (бұл туралы хат келеді), /prices толығымен алыңыз.
curl "https://api.orne.kz/v1/stock?updated_since=2026-10-07T12:00:00%2B05:00&per_page=100" \
  -H "Authorization: Bearer orn_ваш_ключ"

Тізімдердің жауабында meta бар: бет нөмірі, өлшемі және жалпы саны - осы бойынша қанша бет алу керегі көрінеді.

3Жауап мысалы

GET /api/v1/products/ORN-0026 - пример, цены розничные; у партнёра - по его уровню

{
  "data": {
    "sku": "ORN-0026",
    "name": "Худи Oversize 340 г/м²",
    "category": "Одежда / Худи и свитшоты",
    "brand": null,
    "availability": "in_stock",
    "stock": 340,
    "min_qty": 10,
    "negotiable_from": 200,
    "tiers": [
      { "min": 10,  "max": 30,   "price": 17200 },
      { "min": 31,  "max": 99,   "price": 14620 },
      { "min": 100, "max": null, "price": 12900 }
    ],
    "print_methods": ["dtf", "emb", "silk"],
    "variants": [
      { "sku": "ORN-0026-01", "color_name": "Чёрный", "color_hex": "#231F20", "stock": 340, "images": [...] }
    ],
    "images": ["https://orne.kz/storage/..."],
    "canonical_url": "https://orne.kz/product/hudi-oversize-340-gm2",
    "updated_at": "2026-10-07T12:00:00+05:00"
  }
}

4Бағалар қалай есептеледі

Саты бағасы - логотип салусыз бір данаға, сатының төменгі шегінде. Оны сайттағы, кабинетіңіздегі және КҰ-дағы бағаларды шығаратын сол есептеу шығарады: деңгейіңіз, санат бойынша жеңілдік, жеке бағалар мен акциялар, тауардың ең төменгі бағасы. Логотип салу әдіске, өлшемге және таралымға байланысты - оның құнын себет пен КҰ көрсетеді.

Бағасы «сұрау бойынша» тауарлар бос tiers тізімімен келеді - бағаны менеджер нақтылайды.

5Қателер мен лимиттер

КодМағынасыНе істеу керек
200Сәтті-
401Кілт берілмеген, қате немесе қайтарып алынғанТақырыпты және кабинеттегі кілт мәртебесін тексеріңіз
403Кілтте құқық жоқ немесе деңгейде API-ға қолжетімділік жоқСебебінің мәтіні - жауапта
404Тауар табылмады немесе сіздің ассортиментіңізге кірмейдіАртикулды тексеріңіз
422Сұраныс параметрлері қатеӨрістер мен себептер - error.fields ішінде
429Сұраныстар лимиті асып кеттіRetry-After секундтан кейін қайталаңыз

Қате әрқашан бір форматта:

{
  "error": {
    "code": "validation_failed",
    "message": "Проверьте поля запроса",
    "fields": { "per_page": "Не больше 100 на страницу" }
  }
}

Әр сұраныс журналға жазылады - ол кабинеттің «API-кілттер» бөлімінде көрінеді: уақыты, әдісі, жауабы және жауап уақыты. Бір нәрсе сәйкес келмесе, журнал бойынша себебін тез табамыз.

6Вебхуктар

Жиі сұрап отырудың орнына кабинеттің «Вебхуктар» бөлімінде өз мекенжайыңызды оқиғаларға жазыңыз. Қолжетімді деңгейлер: Silver и Gold.

ОқиғаҚашан келедіdata ішінде не бар
order.statusТапсырысыңыз жаңа кезеңге өттітапсырыс нөмірі, «бұрынғы» және «жаңа» кезең
stock.updatedТүс қалдығы өзгерді/stock жолы сияқты
price.updatedТауарға арналған бағаларыңыз өзгерді: сатылар, акция, жеке баға, жаңа прайс-лист немесе деңгей/prices жолы сияқты
catalog.changedТауар пайда болды, өзгерді немесе алынып тасталдыартикул және created, updated немесе removed

Оқиға {id, event, occurred_at, data} денесі және X-ORNE-Signature, X-ORNE-Event, X-ORNE-Delivery тақырыптары бар POST сұранысымен келеді. 2xx кодымен жауап беріңіз - әйтпесе 1, 5, 30 және 120 минуттан кейін қайталаймыз. Оқиғалар тек сіздің тапсырыстарыңыз және ассортиментіңіздегі тауарлар бойынша келеді. Қолтаңбаны тексеру:

// PHP: подпись - HMAC-SHA256 тела секретом подписки, hex
$body = file_get_contents('php://input');
if (!hash_equals(hash_hmac('sha256', $body, $secret), $_SERVER['HTTP_X_ORNE_SIGNATURE'] ?? '')) {
    http_response_code(401); exit;
}
$event = json_decode($body, true);   // $event['id'] - для защиты от повторной обработки
http_response_code(200);

7Файлмен экспорт

Егер жүйеңізге файл алу ыңғайлырақ болса: кабинеттің «Экспорттар» бөлімінде бағаларыңыз бен қалдықтарыңыз бар каталогқа тұрақты сілтеме жасаңыз - Excel мен 1С үшін CSV, XML немесе JSON. Файл әр жүктеп алған сайын жиналады немесе, ыңғайлы болса, әр 15 минут сайын, сағатына бір рет не тәулігіне бір рет жаңарады. Gold деңгейіндегі серіктестер бағандарды және олардың ретін таңдайды. Сілтеме кілтсіз жұмыс істейді - оны жарияламаңыз; ол тарап кетсе, «Жаңа сілтеме» батырмасын басыңыз.

https://api.orne.kz/v1/feeds/ваш_токен.csv
Қосылуға дайынсыз ба?

Кілт серіктес кабинетінде бір минутта шығарылады. Интеграцияда бір нәрсе сәйкес келмесе - жазыңыз, кілтіңіз бойынша сұраныстар журналын қараймыз.

Кілт алу