{
  "info": {
    "_postman_id": "cae52e9a-06dd-4ced-bebe-e6ce9ffd6d2b",
    "name": "Vents Hungary — Reseller API v1",
    "description": "Vents Hungary Reseller API v1 — read-only API viszonteladó partnerek számára.\n\nÉles rendszer: https://webshop.vents.hu\n\nA teljes dokumentáció: https://webshop.vents.hu/api\n\nBeállítás: a Variables fülön töltsd ki a base_url, public_key és private_key változókat. A HMAC fejléceket a pre-request script automatikusan generálja.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "15755175",
    "_collection_link": "https://go.postman.co/collection/15755175-cae52e9a-06dd-4ced-bebe-e6ce9ffd6d2b?source=collection_link"
  },
  "item": [
    {
      "name": "Me",
      "item": [
        {
          "name": "Partner adatok",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/me",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "me"
              ]
            },
            "description": "Az autentikált partner felhasználó adatai: név, email, partner_code, currency, payment_day."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Products",
      "item": [
        {
          "name": "Termék lista",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/products",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "products"
              ],
              "query": [
                {
                  "key": "per_page",
                  "value": "100",
                  "description": "Elemek száma oldalanként (alapértelmezett: 100)",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "Oldalszám",
                  "disabled": true
                }
              ]
            },
            "description": "Aktív termékek paginált listája név szerint rendezve. Alapértelmezetten 100 termék/oldal."
          },
          "response": []
        },
        {
          "name": "Árak és készlet (SKU-k alapján)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/prices?skus=SKU-001,SKU-002,SKU-003",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "prices"
              ],
              "query": [
                {
                  "key": "skus",
                  "value": "SKU-001,SKU-002,SKU-003",
                  "description": "Vesszővel elválasztott cikkszámok"
                }
              ]
            },
            "description": "Ár- és készletlekérdezés cikkszámok alapján. Visszaadja az egyes termékek listaárát, akciós árát, kedvezményes árát, készletmennyiségét és készleten lévő státuszát. Nem létező vagy inaktív SKU-kat kihagyja."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Categories",
      "item": [
        {
          "name": "Kategória fa",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/categories",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "categories"
              ]
            },
            "description": "Aktív gyökér kategóriák listája az aktív gyerek kategóriákkal és terméklétszámmal."
          },
          "response": []
        }
      ]
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "requests": {},
        "exec": [
          "// ── HMAC-SHA256 signature generálás ──────────────────────",
          "",
          "const privateKey = pm.collectionVariables.get('private_key');",
          "const publicKey = pm.collectionVariables.get('public_key');",
          "",
          "if (!privateKey || !publicKey) {",
          "    console.warn('⚠️  public_key és private_key változók nincsenek kitöltve!');",
          "}",
          "",
          "const timestamp = Math.floor(Date.now() / 1000).toString();",
          "const method = pm.request.method.toUpperCase();",
          "const rawPath = pm.request.url.getPath();",
          "const path = rawPath.startsWith('/') ? rawPath : '/' + rawPath;",
          "",
          "const payload = method + '\\n' + path + '\\n' + timestamp;",
          "",
          "async function sign() {",
          "    const enc = new TextEncoder();",
          "    const key = await crypto.subtle.importKey('raw', enc.encode(privateKey), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);",
          "    const sig = await crypto.subtle.sign('HMAC', key, enc.encode(payload));",
          "    return Array.from(new Uint8Array(sig)).map(b => b.toString(16).padStart(2, '0')).join('');",
          "}",
          "",
          "const signature = await sign();",
          "",
          "pm.request.headers.upsert({ key: 'X-Api-Key', value: publicKey });",
          "pm.request.headers.upsert({ key: 'X-Api-Timestamp', value: timestamp });",
          "pm.request.headers.upsert({ key: 'X-Api-Signature', value: signature });",
          "",
          "console.log('🔑 HMAC Signature generated');",
          "console.log('   Method:', method);",
          "console.log('   Path:', path);",
          "console.log('   Timestamp:', timestamp);"
        ]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "requests": {},
        "exec": [
          ""
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "base_url",
      "value": "https://webshop.vents.hu"
    },
    {
      "key": "public_key",
      "value": ""
    },
    {
      "key": "private_key",
      "value": ""
    }
  ]
}
