API

Прайсыңызды ADAM-ға жіберіңіз

Бір HTTP сұрауы кестені ауыстырады. Жүйеңіз фидті жібереді, біз жол-жолымен нені оқығанымызды және нені оқи алмағанымызды айтамыз.

Payload-ты ештеңе жасамай тексеруді Параметрлер → Интеграциялар → Сынақ алаңы бөлімінде жасауға болады. OpenAPI құжаты

Кілт алу

Параметрлер → Интеграциялар → Қосу. Құпия сөз жасалғанда бір рет көрсетіледі және тек хеш ретінде сақталады — оны ERP оқитын жерде ұстаңыз. Authorization: Bearer … ретінде жіберіңіз.

curl -X POST https://168-119-161-237.sslip.io/v1/products \
  -H "Authorization: Bearer adam_live_…" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"sku":"KRB-46","name":"Карбамід 46% гранульований","brand":"Sumykhimprom","category":"Добрива","unit":"кг","price":12.5,"stock":1000,"warehouse":"Київський склад","moq":100,"updated_at":"2026-08-24T14:02:31Z"}]}'

Позиция, өріс-өріспен

ӨрісТүріЕреже
namestring · ≤300
міндетті
Тауардың сіздің жүйеңіздегі атауы. Қиылады, бос болмайды.
brandstring · ≤120
міндетті
Санат ішінде матчер арқылы анықталады.
categorystring · ≤120
міндетті
Адами түрде. Төмендегі тізім бойынша анықталады.
unitstring · ≤40
міндетті
Адами түрде: «шт», «шт.», «кг», «т», «канистр» — барлығы анықталады.
pricenumber
міндетті
0-ден жоғары. Сан, жол емес; ондық бөлгіш — «.».
stocknumber
міндетті
0 немесе одан көп. Нөл «қоймада жоқ» дегенді білдіреді, «белгісіз» емес.
skustring · ≤100
міндетті емес
Сіздің артикулыңыз. Схема бойынша міндетті емес, бірақ онсыз кейінгі PATCH-қа сүйенер нәрсе жоқ.
warehousestring · ≤200
міндетті емес
Сіздің мекенжайларыңызбен салыстырылады. Екіұштылық — ескерту, қабылдамау емес.
moqnumber
міндетті емес
0-ден жоғары. Әдепкі мәні 1.
descriptionstring · ≤500
міндетті емес
Еркін мәтін. Жол каталогқа жаңа тауар сұрауына айналғанда қолданылады.
updated_atrfc3339
міндетті емес
Позиция сіздің жүйеңізде соңғы рет қашан өзгерді. PATCH үшін тәртіп ережесін береді.

Біз оқымайтын өріс үнсіз тасталмай, бүкіл сұранысты құлатады. Үнсіз тастау — сіз қоймаған валютаны қойдым деп сенуіңіздің жолы.

Жауап

202, себебі жолдар өңдеуге қабылданды, сәйкестендіру мен тексеру әлі алда. Қабылданбағандар сіздің өз позиция индексіңізді атайды, сондықтан кезең-кезеңімен түзетілетін фид жинақталады.

{
  "request_id": "8f14e45f-ceea-467a-9c4c-1b0f0e5c9e2a",
  "job_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "accepted": 1198,
  "rejected": [
    {
      "index": 42,
      "sku": "XYZ-1",
      "reason": "category_unresolved",
      "detail": "«Хімія» matches no category"
    },
    {
      "index": 87,
      "sku": "KRB-99",
      "reason": "required_field_missing",
      "field": "brand"
    }
  ],
  "rejected_total": 2
}

Себеп кодтары

КодАймақМағынасы
invalid_envelopeбүкіл сұраныс

Сұраныс денесі — items массиві бар объект емес.

unknown_fieldбүкіл сұраныс

Біз оқымайтын өріс. Үнсіз тастамай, қатені қайтарамыз — қоймағаныңызды қойдым деп ойламауыңыз үшін.

idempotency_key_reusedбүкіл сұраныс

Бұл Idempotency-Key басқа денелі сұраныс үшін қолданылған. Жаңа кілт алыңыз — сақталған нәтиже осы сұранысқа емес, алдыңғысына тиесілі.

no_itemsбүкіл сұраныс

items бос.

too_many_itemsбүкіл сұраныс

Позициялар сұраныс шегінен көп. Кішірек бөліктермен жіберіңіз.

required_field_missingбір жол

field көрсетіледі — жоқ немесе бос міндетті өріс. PATCH /v1/offers-та бұл әрқашан sku.

field_too_longбір жол

field көрсетіледі. Әр өрістің шегі жоғарыдағы кестеде.

price_invalidбір жол

Сан емес немесе 0-ден жоғары емес.

stock_invalidбір жол

Сан емес немесе теріс. Нөл жарамды.

moq_invalidбір жол

Сан емес немесе 0-ден жоғары емес.

sku_duplicate_in_payloadбір жол

Дәл осы артикул осы сұраныста бұрын кездеседі. Бірінші кездесуі жеңеді.

updated_at_invalidбір жол

RFC 3339 емес, мысалы 2026-08-24T14:02:31Z.

review_backlogбүкіл сұраныс

Тексерілмеген жолдарыңыз шекке жетті. Жаңасын жібермей тұрып тексеруді бітіріңіз.

category_unresolvedбір жол

Мән slug-пен де, бүркеншік атпен де сәйкес келмейді.

unit_unresolvedбір жол

Мән ешбір өлшем бірлігімен сәйкес келмейді.

wrong_endpointбір жол

Сіз мұнда discontinued жібердіңіз. Сатудан алу және қайтару — PATCH /v1/offers.

Жабық жиын — интеграцияңыз оларға қарай тармақталады. Қабылданбаған жолға бір код: бірнеше тексеруден өтпеген жол жоғарыдағы тәртіп бойынша бірінші кодты береді.

Бағаны мен қалдықты жаңарту

Позиция байланысқаннан кейін PATCH /v1/offers оның бағасы мен қалдығын тексерусіз және адамның қатысуынсыз өзгертеді. Сіз тауар фидіне жіберген артикулды жібересіз, біз оның артындағы ұсынысты өзгертеміз. Бұл — ERP жүйеңіз кесте бойынша орындайтын шақыру.

curl -X PATCH https://168-119-161-237.sslip.io/v1/offers \
  -H "Authorization: Bearer adam_live_…" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"sku":"KRB-46","price":12.9,"stock":840,"updated_at":"2026-08-25T09:00:00Z"},{"sku":"KAS-32","stock":0},{"sku":"OLD-01","discontinued":true}]}'
ӨрісТүріЕреже
skustring · ≤100
міндетті
Сіздің артикулыңыз, POST /v1/products-қа жіберілгенмен бірдей. Позицияны атаудың жалғыз жолы.
pricenumber
міндетті емес
0-ден жоғары. Жібермесеңіз — баға өзгермейді.
stocknumber
міндетті емес
0 немесе одан көп. Нөл «қоймада жоқ» деп қояды және ұсынысты каталогта қалдырады.
moqnumber
міндетті емес
0-ден жоғары. Ең аз тапсырыс көлемі; өлшем бірлігі мұнда өзгермейді.
discontinuedboolean
міндетті емес
true ұсынысты сатудан алады, false қайтарады. Алу әрқашан өтеді; қайтару қабылданбауы мүмкін.
updated_atrfc3339
міндетті емес
Позиция сіздің жүйеңізде соңғы рет қашан өзгерді. Жіберсеңіз — кешіккен қайталау жаңа бағаны басып жаза алмайды; жібермесеңіз — соңғы келген сұраныс жеңеді. Сол уақыт және сол мәндер — no-op; сол уақыт басқа мәндермен — equal_timestamp_conflict.

Позицияға sku және price, stock, moq, discontinued ішінен кемінде біреуі керек. Жібермегеніңіз сол күйінде қалады — сондықтан тек қалдық бойынша өту бағаға тимейді. Жалғыз sku қолданылған деп саналмай, қабылданбайды.

updated_at жіберсеңіз, қайталаулар қауіпті болуын қояды: уақыты соңғы қолданылғаннан ескі позиция ештеңе өзгертпейді және stale_update болып қайтады. Жібермесеңіз — соңғы келген сұраныс жеңеді: бір жоспарлы тапсырма үшін бұл қалыпты, екеуі үшін — жоқ.

unchanged — ұсынысы жіберілген мәндерді әлдеқашан ұстап отырған позициялар. Ештеңе жазылмады және ештеңе бұзылмады: барлығын жіберетін түнгі фид өзгергені үшін applied, қалғаны үшін unchanged алады, мыңдаған қате емес. Сол updated_at сол мәндермен де осында түседі; басқа мәндермен бұл equal_timestamp_conflict, себебі бірдей уақыт қай нұсқа ағымдағы екенін айта алмайды.

Сатудан алу мен қайтару симметриялы емес, және неге екенін білу практикада байқағаннан жақсы. discontinued: true әрқашан өтеді — өз ұсынысыңызды алуға ешкімнің рұқсаты керек емес. discontinued: false оны тек ұсыныс толық болса және аккаунтыңыз жариялауға құқылы болса қайтарады; әйтпесе жол relist_blocked болып, себебі detail-да қайтады.

not_published — фермер көрмейтін ұсыныстардағы қолданылған жолдар саны: жоба, тоқтатылған ұсыныс. Баға шынымен өзгерді, бірақ оны ешкім көрмейді. Патч сіздің орнына жарияламайды, сондықтан бұл сан — «неге ештеңе өзгермеді» деп ойламай, білу жолы.

{
  "request_id": "1c9d4b7e-3f60-4a21-8de5-7a2b6c0f9e11",
  "applied": 1198,
  "unchanged": 613,
  "not_published": 42,
  "rejected": [
    {
      "index": 17,
      "sku": "ZIR-20",
      "reason": "sku_ambiguous",
      "detail": "7 of your offers carry this code: Зірочка Z-20, Зірочка Z-22, …"
    },
    {
      "index": 63,
      "sku": "KRB-46",
      "reason": "stale_update",
      "detail": "last applied 2026-08-25T09:00:00+00"
    }
  ],
  "rejected_total": 2
}
КодАймақМағынасы
no_change_requestedбір жол

Тек sku, өзгертілетін өріссіз. Жалғыз timestamp — өзгеріс емес: price, stock, moq немесе discontinued жіберіңіз.

discontinued_invalidбір жол

Бар, бірақ логикалық емес. "yes" — true емес.

sku_unknownбір жол

Бұл код үшін белсенді байланыс жоқ. Позицияны POST /v1/products арқылы бір рет жіберіңіз — расталғаннан кейін PATCH әрқашан жұмыс істейді.

sku_ambiguousбір жол

Бұл кодты сіздің бірнеше ұсынысыңыз алып жүр, сондықтан қай бағаны өзгертетіні белгісіз. detail тауарларды атайды. Оларға өз жүйеңізде әртүрлі код беріңіз.

offer_missingбір жол

Байланыс бар, бірақ оның ұсынысы жоғалған. Позицияны POST /v1/products арқылы қайта жіберіңіз.

stale_updateбір жол

Сіздің updated_at соңғы қолданылғаннан ескі, сондықтан ештеңе өзгермеді. detail бізде сақталған уақытты береді.

equal_timestamp_conflictбір жол

Сіздің updated_at қолданылғанмен бірдей, бірақ мәндер өзге — қайсысы ағымдағы екенін анықтай алмаймыз және болжамай, қабылдамаймыз. updated_at-ты жылжытыңыз. Мәндер бірдей болса, позиция unchanged-ке кетеді және қате болмайды.

relist_blockedбір жол

discontinued: false жариялау тексерісімен қабылданбады. Сатудан алу әрқашан өтеді; қайтару толық ұсынысты және жариялау құқығын талап етеді. detail себебін береді.

price_tieredбір жол

Бұл ұсыныста көлемге қарай баға сатылары бар, оларды бір тұрақты баға алмастырмайды. Сатыларды кабинетте алып тастаңыз — әрі қарай позицияны API басқарады.

Тек осы эндпоинт қайтаратын кодтар. Жоғарыдағы кестедегі сұраныс деңгейіндегі барлық кодтар мен мән тексерулері мұнда да қолданылады, ал field тауар фиді ондаған өрісті атайтын жерде sku атайды.

Біз танитын санаттар

Каталогтан тікелей оқылады, сондықтан бұл тізім резолвер қабылдайтыннан ажырай алмайды. Регистр мен соңғы тыныс белгісі маңызды емес.

  • seedsСемена

    Hybrids · Seed · seeds · Sowing material · Гибриды · Гібриди · Кукурудза · Кукуруза · Насіннєвий матеріал · Насіння · Насіння кукурудзи · Насіння рапсу · Насіння сої · Насіння соняшника · Посевной материал · Посівний матеріал · Пшеница · Пшениця · Рапс · Семена · Семена кукурузы · Семена подсолнечника · Семена подсолнуха · Семена рапса · Семена сои · Семенной материал · Соняшник · Соя · Ячмень · Ячмінь

  • fertilizersУдобрения

    Fertiliser · Fertilizer · fertilizers · Growth stimulants · Micro fertilizers · Агрохимия · Агрохімія · Добрива · Микроудобрения · Микроудобрения и стимуляторы роста · Минеральные удобрения · Мікродобрива · Мікродобрива та стимулятори росту · Мінеральні добрива · Органические удобрения · Органічні добрива · Стимулятори росту · Стимуляторы роста · Удобрения

  • pesticidesСредства защиты растений

    Agrochemicals · CPP · Crop Protection · Fungicide · Fungicides · Herbicide · Herbicides · Insecticide · Insecticides · Pesticide · pesticides · Plant protection · Агрохимикаты · Агрохімікати · Адъюванты · Адьюванти · Акарициди · Акарициды · Гербицид · Гербициды · Гербіцид · Гербіциди · Десиканти · Десиканты · Засоби захисту · Засоби захисту рослин · ЗЗР · Инсектицид · Инсектициды · Інсектицид · Інсектициди · Пестициди · Пестициди та агрохімікати · Пестициды · Пестициды и агрохимикаты · Прилипатели · Прилипачі · Прилипачі (пав) · Протравители · Протруйник · Протруйники · Родентициди · Родентициды · СЗР · Средства защиты · Средства защиты растений · Фунгицид · Фунгициды · Фунгіцид · Фунгіциди

  • fuel-lubricantsГорюче-смазочные материалы

    Diesel · Fuel · fuel-lubricants · Grease · Lubricants · Oils · Антифриз · Бензин · Горюче-смазочные материалы · ГСМ · Дизельне пальне · Дизельное топливо · ДТ · Масла · Мастила · Пальне · Пально-мастильні матеріали · ПММ · Смазки · Топливо

  • machineryТехника

    Combines · Equipment · Implements · machinery · Tractors · Комбайни · Комбайны · Обладнання · Оборудование · Прицепы · Причепи · Сельхозтехника · Сільгосптехніка · Техника · Техніка · Трактори · Тракторы

  • spare-partsЗапчасти

    Bearings · Belts · Filters · Parts · spare-parts · Детали · Деталі · Запчасти · Запчастини · Ножи · Ножі · Підшипники · Подшипники · Ремені · Ремни · Фильтры · Фільтри

  • tires-wheelsШины и диски

    Rims · Tires · tires-wheels · Tyres · Wheels · Диски · Колеса · Колёса · Покришки · Покрышки · Шини · Шини та диски · Шины · Шины и диски

  • suppliesРасходные материалы

    supplies · Витратні матеріали · Расходные материалы · Спецодежда · Спецодяг · Тара · Упаковка

  • servicesУслуги

    services · Послуги · Сервис · Сервіс · Услуги

  • livestockЖивотноводство

    livestock · Ветпрепарати · Ветпрепараты · Животноводство · Корма · Корми · Тваринництво

  • energy-systemsЭнергосистемы

    energy-systems · Генератори · Генераторы · Енергосистеми · Солнечные панели · Сонячні панелі · Энергосистемы

Біз танитын өлшем бірліктері

  • piece

    шт · штука · штук · штуки · од · одиниця · pcs · pc · piece · unit

  • kg

    кг · кілограм · килограмм · кілограмів · kg

  • ton

    т · t · тонна · тонн · тонни · ton · tonne

  • liter

    л · l · літр · литр · літрів · liter · litre

  • bag

    мішок · мешок · мішків · bag

  • pack

    уп · пак · пачка · упаковка · паковання · pack

  • canister

    каністра · канистра · кан · canister

  • bottle

    пляшка · бутылка · флакон · bottle

  • set

    набір · набор · set

  • hectare

    га · гектар · гектарів · ha · hectare

Шектеулер мен идемпотенттілік

  • POST /v1/products 5000 × 10 min · 30 req / 10 min
  • PATCH /v1/offers 5000 × 60 s · 30 req / 60 s
  • 20000 unresolved rows · 10 open jobs

Әр нақты шақыруда Idempotency-Key жіберіңіз. Дәл сол кілтпен қайталау сақталған нәтижені қайтарады — сол тапсырма, сол қабылданбағандар — және ештеңе жасамайды, сондықтан сіздегі таймаут екінші прайсқа айналмайды. Қайталау алғашқы 20 қабылданбағанды және rejected_total-ды әкеледі; қалғанын қабылданбағандар эндпоинтінен алыңыз.

Әрі қарай не болады

Қабылданған жолдар каталогымызбен салыстырылып, тексеру экранына түседі. Танылған позицияны сіз сол жерде растайсыз; танылмағаны каталогқа жаңа тауар сұрауына айналады. Тексеру — адамның қадамы және ол лезде болмайды: алғашқы фидті осыны ескеріп жоспарлаңыз. Бұл сонымен қатар бір жолғы: позиция байланысқаннан кейін оның бағасы мен қалдығы PATCH /v1/offers арқылы жүреді және енді тексеру кезегіне тұрмайды.

Әзірге қолдау көрсетілмейді

currency, vat_rate және lead_time_days екі эндпоинтте де оқылмайды, сондықтан оларды жіберу — үнсіз тастау емес, қате. Көлемге қарай баға сатылары да API арқылы өңделмейді: сатылары бар ұсыныс тұрақты price-ты price_tiered деп қабылдамайды. Фидті сіздің URL-ыңыздан кесте бойынша алу — келесі кезең.

+380 (67) 419-07-94