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.
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,809 @@
|
||||
{
|
||||
"info": {
|
||||
"name": "Descrybe v2 — Platform Demo (all public /api/v1)",
|
||||
"description": "Full public API-key surface for local **Platform Demo** sandbox (NOT A1 Slovenija).\n\nAuth: Authorization Bearer {{apiKey}} (or X-API-Key)\nBase: {{baseUrl}} (live: http://127.0.0.1:28471)\n\nSafe credentials (docs/demo-user.md, docs/safe-test-fixtures.md):\n- API key: dk_demo_local_descrybe_test_key_v1 → company **Platform Demo** (seed-demo)\n- Web: demo@descrybe.local / DemoPass123! → Platform Demo only\n\nCatalog vars (feedId, productId, categoryId, attributeId, exportFeedId, processId, publicToken, eans) ship as RESOLVE_FROM_PLATFORM_DEMO — never paste A1/Elkotex UUIDs here. Resolve after seed-demo via GET /api/v1/feeds, /products, /categories, /attributes, /export-feeds before any PATCH/DELETE/process mutate.\n\nA1 customer flows: use Descrybe-v2-A1-two-EANs with an A1-scoped key (a1-primary), never the demo key.\n\nAfter Process by EANs, set collection var processId from data.process_id.",
|
||||
"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": "dk_demo_local_descrybe_test_key_v1"
|
||||
},
|
||||
{
|
||||
"key": "feedId",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "feedName",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "ean1",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "ean2",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "processId",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "productId",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "categoryId",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "attributeId",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "exportFeedId",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "publicToken",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
},
|
||||
{
|
||||
"key": "companyId",
|
||||
"value": "RESOLVE_FROM_PLATFORM_DEMO"
|
||||
}
|
||||
],
|
||||
"item": [
|
||||
{
|
||||
"name": "00 Meta",
|
||||
"item": [
|
||||
{
|
||||
"name": "Health",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/health",
|
||||
"auth": {
|
||||
"type": "noauth"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "OpenAPI YAML",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/openapi.yaml",
|
||||
"auth": {
|
||||
"type": "noauth"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "01 Products",
|
||||
"item": [
|
||||
{
|
||||
"name": "List products",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/products?limit=5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "List products by feed",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/products?limit=10&feed_id={{feedId}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Search by EAN",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/products?search={{ean1}}&limit=5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Product quality",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/products/quality?limit=5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Get product",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/products/{{productId}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Patch product",
|
||||
"request": {
|
||||
"method": "PATCH",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/products/{{productId}}",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"name\":\"Postman test rename (safe)\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Process by EANs (legacy)",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/products/process",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"items\":[{\"ean\":\"{{ean1}}\",\"title\":\"Platform Demo sample product 1\"},{\"ean\":\"{{ean2}}\",\"title\":\"Platform Demo sample product 2\"}],\"processing_type\":\"full\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Get process (legacy)",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/products/process/{{processId}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Reset products (CAREFUL)",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/products/reset",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"product_ids\":[\"{{productId}}\"]}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "02 Process jobs",
|
||||
"item": [
|
||||
{
|
||||
"name": "List process jobs",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/process?limit=10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Start process by raw_product_ids",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/process",
|
||||
"description": "Fill raw_product_ids with UUIDs from unprocessed products; empty body will 400",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"processing_type\":\"full\",\"raw_product_ids\":[]}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Get process job",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/process/{{processId}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Cancel process job",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/process/{{processId}}/cancel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Terminate process job",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/process/{{processId}}/terminate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Retry process job",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/process/{{processId}}/retry"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "03 Categories",
|
||||
"item": [
|
||||
{
|
||||
"name": "List categories",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/categories?limit=10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Get category",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/categories/{{categoryId}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Create category",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/categories",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"unique_id\":\"postman-test-cat-474092119\",\"name\":\"Postman Test Category\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Create category (legacy /create)",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/categories/create",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"unique_id\":\"postman-test-cat-legacy-1860305750\",\"name\":\"Postman Test Category Legacy\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Patch category",
|
||||
"request": {
|
||||
"method": "PATCH",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/categories/{{categoryId}}",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"name\":\"Agregati\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Delete category (CAREFUL)",
|
||||
"request": {
|
||||
"method": "DELETE",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/categories/{{categoryId}}"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "04 Attributes",
|
||||
"item": [
|
||||
{
|
||||
"name": "List attributes",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/attributes?limit=10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Create attribute",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/attributes",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"key\":\"postman_test_attr_1084152558\",\"name\":\"Postman Test Attr\",\"type\":\"string\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Create attribute (legacy /create)",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/attributes/create",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"key\":\"postman_test_attr_legacy_1506795540\",\"name\":\"Postman Test Attr Legacy\",\"type\":\"string\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Patch attribute",
|
||||
"request": {
|
||||
"method": "PATCH",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/attributes/{{attributeId}}",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"name\":\"/\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Delete attribute (CAREFUL)",
|
||||
"request": {
|
||||
"method": "DELETE",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/attributes/{{attributeId}}"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "05 Feeds",
|
||||
"item": [
|
||||
{
|
||||
"name": "List feeds",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/feeds"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Get feed",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/feeds/{{feedId}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Create feed",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/feeds",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"url\":\"https://example.com/feed.xml\",\"name\":\"Postman Test Feed\",\"is_active\":false,\"feed_type\":\"xml\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Patch feed",
|
||||
"request": {
|
||||
"method": "PATCH",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/feeds/{{feedId}}",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"name\":\"Postman Test Feed Rename\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Get feed mappings",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/feeds/{{feedId}}/mappings"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Put feed mappings",
|
||||
"request": {
|
||||
"method": "PUT",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/feeds/{{feedId}}/mappings",
|
||||
"description": "Example mapping shape — adjust to real feed schema before saving",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"mappings\":{\"title\":\"g:title\",\"description\":\"g:description\",\"gtin\":\"g:gtin\"}}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Extract schema",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/feeds/{{feedId}}/extract-schema"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Sync feed",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/feeds/{{feedId}}/sync"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Sync + process sample",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/feeds/{{feedId}}/sync-process-sample"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Delete feed (CAREFUL)",
|
||||
"request": {
|
||||
"method": "DELETE",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/feeds/{{feedId}}"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "06 Export feeds",
|
||||
"item": [
|
||||
{
|
||||
"name": "List export feeds",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/export-feeds"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Get export feed",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/export-feeds/{{exportFeedId}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Create export feed",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/export-feeds",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"format\":\"csv\",\"name\":\"Postman Export\",\"source_feed_id\":\"{{feedId}}\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Patch export feed",
|
||||
"request": {
|
||||
"method": "PATCH",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/export-feeds/{{exportFeedId}}",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"name\":\"CSV - Example\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Put export template",
|
||||
"request": {
|
||||
"method": "PUT",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/export-feeds/{{exportFeedId}}/template",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"mappings\":{\"gtin\":\"product_id\",\"title\":\"name\"}}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Generate export",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/export-feeds/{{exportFeedId}}/generate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Export selected products",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/export-feeds/{{exportFeedId}}/export-products",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"product_ids\":[\"{{productId}}\"]}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Delete export feed (CAREFUL)",
|
||||
"request": {
|
||||
"method": "DELETE",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/export-feeds/{{exportFeedId}}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Public CSV (no key)",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/public/export-feeds/{{publicToken}}.csv",
|
||||
"auth": {
|
||||
"type": "noauth"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Public XML (no key)",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/public/export-feeds/{{publicToken}}.xml",
|
||||
"auth": {
|
||||
"type": "noauth"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "07 Campaigns / marketing",
|
||||
"item": [
|
||||
{
|
||||
"name": "List campaigns (legacy)",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/campaigns"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Prepare campaign (legacy)",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/campaigns/prepare",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"name\":\"Postman Campaign\"}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Get marketing calendar",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"url": "{{baseUrl}}/api/v1/marketing/calendar"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Prepare marketing calendar",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
}
|
||||
],
|
||||
"url": "{{baseUrl}}/api/v1/marketing/calendar/prepare",
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "{\"year\":2026}",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user