Files
descrybe/docs/postman/Descrybe-v2-A1-two-EANs.postman_collection.json
T
greeneclipse 8580c996c3 Initial commit of Descrybe v2 without local scratch artifacts.
Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
2026-08-09 22:47:43 +02:00

179 lines
5.7 KiB
JSON

{
"info": {
"name": "Descrybe v2 — A1 Slovenija (2 EANs)",
"description": "A1 Slovenija only — do NOT use dk_demo_local_descrybe_test_key_v1 (that key is seed-demo → Platform Demo).\n\nAuth: set {{apiKey}} to an API key created while acting as company-admin on A1 Slovenija (604f23a8-…). Local path: login as demo@descrybe.local → Admin switch/impersonate a1-primary@descrybe.local → Settings → API keys (a1-primary alone is not company-admin). Web: a1-primary@descrybe.local / DemoPass123! (docs/demo-user.md + docs/safe-test-fixtures.md).\n\nResolve IDs from live API before mutate calls:\n1. GET {{baseUrl}}/api/v1/feeds — copy Elkotex id → {{feedId}}\n2. GET /api/v1/products?search={{ean1}} (and ean2) — copy product UUID → {{productId}}\n3. POST /api/v1/products/process — copy data.process_id → {{processId}}\n4. GET /api/v1/export-feeds — copy CSV feed id/token → {{exportFeedId}} / {{publicToken}}\nCollection vars below match a local DB snapshot after A1 catalog load; re-resolve if your seed differs.\n\nseed:a1: only needed for empty A1 tenant / restored historical processing_jobs. Skip if A1 already has Elkotex + EANs (do NOT merge into Platform Demo).\n\nEANs: {{ean1}}, {{ean2}} (Adler / Roborock).\nSupport ticket categories (elsewhere): billing|billing_credits|bug|account|integrations|processing|export|other — not `general`.\n\nSafe mock-llm / i18n / general API smoke: use Platform Demo collection + demo@descrybe.local — never this flow.",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"type": "string",
"value": "{{apiKey}}"
}
]
},
"variable": [
{
"key": "baseUrl",
"value": "http://127.0.0.1:28471"
},
{
"key": "apiKey",
"value": "REPLACE_WITH_A1_SCOPED_API_KEY"
},
{
"key": "feedId",
"value": "031ecdbd-aa3b-40a3-947d-21c1953947e6"
},
{
"key": "feedName",
"value": "Elkotex"
},
{
"key": "ean1",
"value": "5905575903198"
},
{
"key": "ean2",
"value": "6970995789942"
},
{
"key": "processId",
"value": "7553d339-af8d-48b3-958a-3a510f9e70ca"
},
{
"key": "productId",
"value": "a292889c-990a-49e3-9fc7-0c6c611be377"
},
{
"key": "categoryId",
"value": "faca7a03-7c11-4c05-ba78-5527bd205846"
},
{
"key": "attributeId",
"value": "76c17ea8-72ea-4dc1-9ce8-002e556cbdb6"
},
{
"key": "exportFeedId",
"value": "39f70301-0d79-4f99-b43b-dfc2f6d52567"
},
{
"key": "publicToken",
"value": "523e72fef3e2c158d870655fd497f09d"
},
{
"key": "companyId",
"value": "604f23a8-b66e-4b21-8b45-0d72b68f4790"
}
],
"item": [
{
"name": "0. Health",
"request": {
"method": "GET",
"header": [],
"url": "{{baseUrl}}/api/v1/health",
"description": "No API key needed",
"auth": {
"type": "noauth"
}
}
},
{
"name": "1. List feeds (find Elkotex)",
"request": {
"method": "GET",
"header": [],
"url": "{{baseUrl}}/api/v1/feeds",
"description": "Copy Elkotex id into collection var feedId before other feed-scoped calls."
}
},
{
"name": "2. List products on Elkotex feed",
"request": {
"method": "GET",
"header": [],
"url": "{{baseUrl}}/api/v1/products?limit=10&feed_id={{feedId}}"
}
},
{
"name": "3. Process TWO EANs (Adler + Roborock)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": "{{baseUrl}}/api/v1/products/process",
"description": "Copy data.process_id into collection var processId. Requires worker (+ mock-llm if using local stub).",
"body": {
"mode": "raw",
"raw": "{\"items\":[{\"ean\":\"{{ean1}}\",\"title\":\"Elektricni radiator Adler AD7824\"},{\"ean\":\"{{ean2}}\",\"title\":\"Roborock robotski sesalnik Qrevo Curv\"}],\"processing_type\":\"full\"}",
"options": {
"raw": {
"language": "json"
}
}
}
}
},
{
"name": "4. Poll process status",
"request": {
"method": "GET",
"header": [],
"url": "{{baseUrl}}/api/v1/products/process/{{processId}}"
}
},
{
"name": "5. Result EAN1",
"request": {
"method": "GET",
"header": [],
"url": "{{baseUrl}}/api/v1/products?search={{ean1}}&limit=5",
"description": "Search by EAN/GTIN. Processed catalog rows may have feed_id null — do not require feed_id here."
}
},
{
"name": "6. Result EAN2",
"request": {
"method": "GET",
"header": [],
"url": "{{baseUrl}}/api/v1/products?search={{ean2}}&limit=5",
"description": "Search by EAN/GTIN. Processed catalog rows may have feed_id null — do not require feed_id here."
}
},
{
"name": "7. Get product by UUID",
"request": {
"method": "GET",
"header": [],
"url": "{{baseUrl}}/api/v1/products/{{productId}}"
}
},
{
"name": "8. List export feeds",
"request": {
"method": "GET",
"header": [],
"url": "{{baseUrl}}/api/v1/export-feeds"
}
},
{
"name": "9. Public CSV (no key)",
"request": {
"method": "GET",
"header": [],
"url": "{{baseUrl}}/api/public/export-feeds/{{publicToken}}.csv",
"auth": {
"type": "noauth"
}
}
}
]
}