{
    "info": {
        "name": "Etibas API v2",
        "description": "Etibas API v2 — ürün, stok, fiyat, kategori, marka, sipariş ve webhook uçları.\nBelge: https://api.etibas.com/dokumantasyon.php\n\nDeğişkenler: taban, token (Authorization: Bearer {{token}} koleksiyon düzeyinde tanımlı).",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
    },
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "token",
                "value": "{{token}}",
                "type": "string"
            }
        ]
    },
    "variable": [
        {
            "key": "taban",
            "value": "https://api.etibas.com/v2"
        },
        {
            "key": "token",
            "value": "TOKEN"
        }
    ],
    "item": [
        {
            "name": "👤 Hesap",
            "description": "Token'ın bağlı olduğu hesap, kapsam ve yetkiler.",
            "item": [
                {
                    "name": "GET /ben — Token'ın hesabı ve yetkileri",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/ben",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "ben"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Token'ın hangi hesaba bağlı olduğunu, sipariş görünürlüğünü, özel fiyatın açık olup olmadığını ve yazma yetkilerini döner.\n\nEntegrasyonun ilk çağrısı bu olmalı: token doğruysa `200`, değilse `401`. `yetkiler` dizisi hangi uçları kullanabileceğinizi söyler; `sandbox: true` ise demo hesabındasınız (yazdıklarınız günlük temizlenir)."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "📦 Ürünler",
            "description": "Katalog okuma; ürün açma, güncelleme, pasife alma, görseller.",
            "item": [
                {
                    "name": "GET /urunler — Ürün listesi",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/urunler?size=1000&sadece_stok=0&tanitim=0",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "urunler"
                            ],
                            "query": [
                                {
                                    "key": "size",
                                    "value": "1000",
                                    "description": "Sayfa boyu (en çok 1000).",
                                    "disabled": false
                                },
                                {
                                    "key": "imlec",
                                    "value": "",
                                    "description": "Önceki yanıttaki `sonraki_imlec`; `null` gelince liste bitmiştir.",
                                    "disabled": true
                                },
                                {
                                    "key": "ids",
                                    "value": "",
                                    "description": "Virgülle ürün kimlikleri (en çok 1000). Verilirse sayfalama yok.",
                                    "disabled": true
                                },
                                {
                                    "key": "barkod",
                                    "value": "",
                                    "description": "Virgülle barkodlar (en çok 1000) — birebir eşleşme.",
                                    "disabled": true
                                },
                                {
                                    "key": "kod",
                                    "value": "",
                                    "description": "Virgülle stok kodları (en çok 1000) — birebir eşleşme.",
                                    "disabled": true
                                },
                                {
                                    "key": "ara",
                                    "value": "",
                                    "description": "Serbest metin: ad, barkod, kod içinde kelime kelime (büyük/küçük ve Türkçe harf farkı yok).",
                                    "disabled": true
                                },
                                {
                                    "key": "sadece_stok",
                                    "value": "0",
                                    "description": "`1` → yalnız stoğu olanlar.",
                                    "disabled": false
                                },
                                {
                                    "key": "tanitim",
                                    "value": "0",
                                    "description": "`1` → her satıra açıklama HTML'i (`tanitim`) eklenir. Yanıt büyür; ilk aktarımda kullanın.",
                                    "disabled": false
                                }
                            ],
                            "variable": []
                        },
                        "description": "API hesabına açık ürünler, imleçli sayfalama ile. Barkod, kod ya da serbest metinle süzülebilir.\n\nHer satırda liste fiyatı `psf` (KDV dahil TL) gelir. Tedarikçi bu hesaba özel fiyat tanımladıysa `alis` de gelir; yoksa kendi iskontonuzu `psf` üzerinden uygularsınız.\n\n`stok`, API hesabının stok kuralına göre hesaplanır (satışa kapalı tedarikçiler ve kapalı firmalar sayılmaz, depo kuralı uygulanır). Pasif ürünler listede yer almaz.\n\nTam eşitleme için `size=1000` ile `sonraki_imlec` null olana dek dolaşın; dakikalık eşitleme için `/stoklar`, anlık bildirim için webhook kullanın."
                    },
                    "response": []
                },
                {
                    "name": "GET /urunler/{id} — Tek ürün",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/urunler/{id}?tanitim=0",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "urunler",
                                ":id"
                            ],
                            "query": [
                                {
                                    "key": "tanitim",
                                    "value": "0",
                                    "description": "`1` → açıklama HTML'i eklenir.",
                                    "disabled": false
                                }
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Ürün kimliği"
                                }
                            ]
                        },
                        "description": "Kimliği verilen ürünün tüm alanları (`?tanitim=1` ile açıklama HTML'i).\n\n"
                    },
                    "response": []
                },
                {
                    "name": "POST /urunler — Ürün aç",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/urunler",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "urunler"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Kataloğa yeni ürün açar: ad, barkod, marka, kategori, fiyat, görseller, açıklama, özellikler ve isteğe bağlı ilk stok tek istekte.\n\nPanelin **Ürün Ekle** penceresiyle birebir aynı kurallar işler: barkod katalogda tekildir (aynı barkod → `409 BARKOD_VAR`), aynı `kod` ile açılan ürünler varyant ailesi kurar (kategori varyant grubu tanımlıysa `varyant_secim` zorunlu olur), web sitesi ve B2B kataloğuna kendiliğinden eklenir, görseller o anda indirilir.\n\nMarka ve kategori **adla** verilebilir: katalogda yoksa `marka_ac` / `kategori_ac` (varsayılan `true`) ile açılır. Kategori yolu `\"Saat / Erkek Kol Saati\"` biçiminde verilirse zincir üstten alta kurulur.\n\n`ozellikler` ad çiftleriyle verilir ve **var olan** özellik grubu/değerine eşlenir (`GET /ozellikler`); eşleşmeyenler `uyarilar` dizisine düşer, ürün yine açılır.\n\n`stok` verilirse ürün açılır açılmaz kendi deponuza o adet yazılır (bkz. `PUT /urunler/{id}/stok`).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"isim\": \"Casio G-Shock GA-2100-1A1ER Erkek Kol Saati\",\n    \"barkod\": \"4549526241383\",\n    \"kod\": \"GA-2100-1A1ER\",\n    \"marka\": \"Casio\",\n    \"kategoriler\": [\n        \"Saat / Erkek Kol Saati\"\n    ],\n    \"psf\": 4299,\n    \"kdv\": 20,\n    \"desi\": 1,\n    \"resimler\": [\n        \"https://ornek.com/r/ga2100-1.jpg\",\n        \"https://ornek.com/r/ga2100-2.jpg\"\n    ],\n    \"tanitim\": \"<p>Karbon korumalı kasa, 200 m su geçirmezlik.</p>\",\n    \"ozellikler\": [\n        {\n            \"suzgec\": \"Kasa Çapı\",\n            \"filtre\": \"45 mm\"\n        },\n        {\n            \"suzgec\": \"Kordon\",\n            \"filtre\": \"Reçine\"\n        }\n    ],\n    \"stok\": 12\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "PUT /urunler/{id} — Ürün güncelle (kısmi)",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/urunler/{id}",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "urunler",
                                ":id"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Ürün kimliği"
                                }
                            ]
                        },
                        "description": "Yalnız gönderdiğiniz alanlar değişir; gönderilmeyen alanlara dokunulmaz. Panelin Genel sekmesiyle aynı kurallar.\n\nAlanlar `POST /urunler` ile aynıdır; ek olarak `is_pasif` ile ürün pasife alınır / geri açılır. `resimler` varsayılan olarak **ekler**; `resimler_degistir: true` listeyi verilenle değiştirir (olmayanlar silinir).\n\nFiyat değişimi kanal fiyatlarını stratejiye göre yeniden hesaplatır; marka/kategori değişimi e-ticaret sitesi eşleşmelerini güncelleme kuyruğuna alır (panelle aynı).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"psf\": 4499,\n    \"tanitim\": \"<p>Yeni sezon.</p>\",\n    \"stok\": 20\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "DELETE /urunler/{id} — Ürünü pasife al",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/urunler/{id}",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "urunler",
                                ":id"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Ürün kimliği"
                                }
                            ]
                        },
                        "description": "Ürün silinmez, pasife alınır: listelerden düşer, kanallara stok 0 gider. `PUT {\"is_pasif\": false}` geri açar.\n\n"
                    },
                    "response": []
                },
                {
                    "name": "POST /urunler/{id}/resimler — Görsel ekle / listeyi değiştir",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/urunler/{id}/resimler",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "urunler",
                                ":id",
                                "resimler"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Ürün kimliği"
                                }
                            ]
                        },
                        "description": "`POST` adresleri mevcut görsellere ekler; `PUT` listeyi verilenle değiştirir. Görseller o anda indirilir.\n\nAynı adres ikinci kez eklenmez. `PUT` ile gönderilmeyen görseller üründen çıkar; ana görsel listedeki ilk indirilmiş görsel olur.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"resimler\": [\n        \"https://ornek.com/r/ga2100-3.jpg\"\n    ]\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "PUT /urunler/{id}/resimler — Görsel ekle / listeyi değiştir",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/urunler/{id}/resimler",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "urunler",
                                ":id",
                                "resimler"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Ürün kimliği"
                                }
                            ]
                        },
                        "description": "`POST` adresleri mevcut görsellere ekler; `PUT` listeyi verilenle değiştirir. Görseller o anda indirilir.\n\nAynı adres ikinci kez eklenmez. `PUT` ile gönderilmeyen görseller üründen çıkar; ana görsel listedeki ilk indirilmiş görsel olur.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"resimler\": [\n        \"https://ornek.com/r/ga2100-3.jpg\"\n    ]\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "📊 Stok & Fiyat",
            "description": "Hafif stok/fiyat listesi; tekil ve toplu stok/fiyat yazma.",
            "item": [
                {
                    "name": "GET /stoklar — Hafif stok / fiyat listesi",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/stoklar?size=5000",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "stoklar"
                            ],
                            "query": [
                                {
                                    "key": "size",
                                    "value": "5000",
                                    "description": "Sayfa boyu (en çok 5000).",
                                    "disabled": false
                                },
                                {
                                    "key": "imlec",
                                    "value": "",
                                    "description": "Önceki yanıttaki `sonraki_imlec`; `null` gelince liste bitmiştir.",
                                    "disabled": true
                                },
                                {
                                    "key": "ids",
                                    "value": "",
                                    "description": "Virgülle ürün kimlikleri (en çok 1000).",
                                    "disabled": true
                                },
                                {
                                    "key": "barkod",
                                    "value": "",
                                    "description": "Virgülle barkodlar (en çok 1000).",
                                    "disabled": true
                                }
                            ],
                            "variable": []
                        },
                        "description": "Yalnız `id, barkod, stok, psf, alis` — sayfa başına 5000. Dakikalık eşitleme bu uçla yapılır.\n\nÜrün listesiyle aynı kapsam ve stok kuralı; görsel/özellik taşımadığı için 10 kat hızlıdır. `ids` ya da `barkod` ile belirli ürünler sorgulanır (webhook `urun.degisti` yükündeki kimliklerle)."
                    },
                    "response": []
                },
                {
                    "name": "PUT /urunler/{id}/stok — Stok yaz (hedef adet)",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/urunler/{id}/stok",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "urunler",
                                ":id",
                                "stok"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Ürün kimliği"
                                }
                            ]
                        },
                        "description": "Kendi deponuzdaki stoğu verilen adede getirir. Fark kadar giriş/çıkış hareketi yazılır; ürün ve satış kanalları saniyeler içinde güncellenir.\n\nAdet **mutlak** değerdir (artış/azalış değil): depoda 7 varken `adet: 10` gönderirseniz 3 giriş yazılır. Depo belirtilmezse varsayılan (yoksa ilk) kendi deponuz kullanılır; `GET /depolar` hangi depoların API ile yazılabildiğini söyler.\n\nStok Hareketleri ekranında \"API ile stok güncellendi\" açıklamasıyla görünür. Stoğu bir ERP/tedarikçi dosyasından gelen depolara API ile yazılamaz (`409 DEPO_YOK`).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"adet\": 10\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST /stoklar — Toplu stok yaz",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/stoklar",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "stoklar"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Bir istekte en çok 500 ürünün stoğunu hedef adede getirir; ürün kimlik ya da barkodla tanınır.\n\nHer satır bağımsız işlenir; yanıttaki `sonuclar` satır satır sonucu verir. Bir satır başarısızsa ötekiler yine yazılır (`ok: false` olan satırları düzeltip yeniden gönderin).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"stoklar\": [\n        {\n            \"barkod\": \"4549526241383\",\n            \"adet\": 10\n        },\n        {\n            \"id\": \"URN002\",\n            \"adet\": 0\n        }\n    ]\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "PUT /urunler/{id}/fiyat — Fiyat yaz",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/urunler/{id}/fiyat",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "urunler",
                                ":id",
                                "fiyat"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Ürün kimliği"
                                }
                            ]
                        },
                        "description": "Liste fiyatını (`psf`) ve isteğe bağlı sabit satış fiyatını yazar; Fiyat Geçmişi'ne \"api\" kaynağıyla düşer.\n\nKanal satış fiyatları fiyat stratejisine göre dakikalar içinde yeniden hesaplanır ve pazaryerlerine gönderilir. `sabit_satis_fiyati: 0` sabit fiyatı kaldırır.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"psf\": 4499\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST /fiyatlar — Toplu fiyat yaz",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/fiyatlar",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "fiyatlar"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Bir istekte en çok 500 ürünün liste fiyatı; kimlik ya da barkodla.\n\n",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"fiyatlar\": [\n        {\n            \"barkod\": \"4549526241383\",\n            \"psf\": 4499\n        },\n        {\n            \"id\": \"URN002\",\n            \"psf\": 1299.9\n        }\n    ]\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "🗂️ Kategori · Marka · Özellik",
            "description": "Referans listeleri ve yoksa açma.",
            "item": [
                {
                    "name": "GET /kategoriler — Kategoriler",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/kategoriler?size=1000",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "kategoriler"
                            ],
                            "query": [
                                {
                                    "key": "size",
                                    "value": "1000",
                                    "description": "Sayfa boyu (en çok 1000).",
                                    "disabled": false
                                },
                                {
                                    "key": "imlec",
                                    "value": "",
                                    "description": "Önceki yanıttaki `sonraki_imlec`; `null` gelince liste bitmiştir.",
                                    "disabled": true
                                },
                                {
                                    "key": "ara",
                                    "value": "",
                                    "description": "Ad ya da yolda kelime araması.",
                                    "disabled": true
                                },
                                {
                                    "key": "ust_id",
                                    "value": "",
                                    "description": "Yalnız bu kategorinin altındakiler (`\"\"` → kök kategoriler).",
                                    "disabled": true
                                }
                            ],
                            "variable": []
                        },
                        "description": "Kategori ağacı: `ust_id` ile üst kategori, `yol` ile tam yol (\"Saat / Erkek Kol Saati\").\n\n"
                    },
                    "response": []
                },
                {
                    "name": "POST /kategoriler — Kategori aç",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/kategoriler",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "kategoriler"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Verilen üstün altında kategori açar; aynı ad zaten varsa var olanı döner (`yeni: false`). `yol` ile zincir açılır.\n\nPanelin Kategori Ekle ucuyla aynı: yol metni, adres (slug) ve pazaryeri kategori eşlemesi (ada göre) kendiliğinden kurulur.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"isim\": \"Erkek Kol Saati\",\n    \"ust_id\": \"KAT01\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "GET /markalar — Markalar",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/markalar?size=1000",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "markalar"
                            ],
                            "query": [
                                {
                                    "key": "size",
                                    "value": "1000",
                                    "description": "Sayfa boyu (en çok 1000).",
                                    "disabled": false
                                },
                                {
                                    "key": "imlec",
                                    "value": "",
                                    "description": "Önceki yanıttaki `sonraki_imlec`; `null` gelince liste bitmiştir.",
                                    "disabled": true
                                },
                                {
                                    "key": "ara",
                                    "value": "",
                                    "description": "Adda kelime araması.",
                                    "disabled": true
                                }
                            ],
                            "variable": []
                        },
                        "description": "API hesabına açık markalar (marka kısıtı varsa yalnız onlar).\n\n"
                    },
                    "response": []
                },
                {
                    "name": "POST /markalar — Marka aç",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/markalar",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "markalar"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Marka açar; aynı ad (büyük/küçük, Türkçe harf farkı gözetilmez) varsa var olanı döner.\n\n",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"isim\": \"Casio\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "GET /ozellikler — Özellik grupları ve değerleri",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/ozellikler",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "ozellikler"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Hesabın özellik sözlüğü: grup (süzgeç) → değerler (filtre). Ürün eklerken `ozellikler` buradaki adlarla eşlenir.\n\n"
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "🧾 Siparişler",
            "description": "Sipariş açma, listeleme, iptal, kargo, durum, not, adres.",
            "item": [
                {
                    "name": "GET /siparisler — Sipariş listesi",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/siparisler?size=100&sort=eklenme_tarihi&order=desc",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "siparisler"
                            ],
                            "query": [
                                {
                                    "key": "size",
                                    "value": "100",
                                    "description": "Sayfa boyu (en çok 100).",
                                    "disabled": false
                                },
                                {
                                    "key": "imlec",
                                    "value": "",
                                    "description": "Önceki yanıttaki `sonraki_imlec`; `null` gelince liste bitmiştir.",
                                    "disabled": true
                                },
                                {
                                    "key": "siparis_kodu",
                                    "value": "",
                                    "description": "Birebir sipariş kodu (sizin numaranız).",
                                    "disabled": true
                                },
                                {
                                    "key": "durum",
                                    "value": "",
                                    "description": "`GET /durumlar` kodları: onayda, onaylandi, kargoda, teslim-edildi, iptal, iade…",
                                    "disabled": true
                                },
                                {
                                    "key": "platform",
                                    "value": "",
                                    "description": "Satış kanalı kodu (`GET /platformlar`): ty, hb, n11, eb, api…",
                                    "disabled": true
                                },
                                {
                                    "key": "baslangic_tarihi",
                                    "value": "",
                                    "description": "`yyyy-MM-dd HH:mm:ss` — sipariş tarihi ≥.",
                                    "disabled": true
                                },
                                {
                                    "key": "bitis_tarihi",
                                    "value": "",
                                    "description": "Sipariş tarihi ≤.",
                                    "disabled": true
                                },
                                {
                                    "key": "guncellenme_gte",
                                    "value": "",
                                    "description": "Bu andan sonra değişen siparişler (artımlı).",
                                    "disabled": true
                                },
                                {
                                    "key": "ara",
                                    "value": "",
                                    "description": "Sipariş kodu / paket kodu / müşteri adı.",
                                    "disabled": true
                                },
                                {
                                    "key": "is_pasifler",
                                    "value": "",
                                    "description": "`true` → iptal/pasif siparişler de gelsin.",
                                    "disabled": true
                                },
                                {
                                    "key": "sort",
                                    "value": "eklenme_tarihi",
                                    "description": "eklenme_tarihi · gunceleme_tarihi · siparis_kodu",
                                    "disabled": false
                                },
                                {
                                    "key": "order",
                                    "value": "desc",
                                    "description": "asc · desc",
                                    "disabled": false
                                }
                            ],
                            "variable": []
                        },
                        "description": "Sipariş listesi; artımlı çekim için `guncellenme_gte`. Görünürlük API hesabının ayarına bağlı.\n\n**Sipariş görünürlüğü:** API hesabı \"yalnız bu hesabın açtığı siparişler\" (bayi) ise sadece sizin açtıklarınız; \"tüm siparişlerim\" (muhasebe programı / kendi yazılımınız) ise hesabın tüm kanallardaki siparişleri gelir.\n\nArtımlı eşitleme: her turda son turun başlangıç zamanını `guncellenme_gte` olarak gönderin; durumu/kargosu değişen siparişler gelir."
                    },
                    "response": []
                },
                {
                    "name": "POST /siparisler — Sipariş aç",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/siparisler",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "siparisler"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Tedarikçinin panelinde \"Onay Bekliyor\" durumunda sipariş açar; ürünler o anda rezerve edilir, stok kanallara yansır.\n\n`siparis_kodu` sizin numaranızdır ve tekildir: aynı kodla ikinci istek `409 SIPARIS_VAR` döner (ağ hatasında güvenle yeniden deneyebilirsiniz).\n\nFatura ve teslimat adresleri ayrıdır: dropship'te fatura size, teslimat müşterinize kesilir. `kargo.barkod` verilirse tedarikçi hazır etiketi (pazaryeri etiketi) basar. `kanal` siparişin satıldığı pazaryerini taşır; tedarikçinin etiketinde görünür.\n\nÜrün kimlikleri `/urunler` listesindeki `id`. Kapsam dışı ya da pasif ürün → `422 URUN_YOK`.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"siparis_kodu\": \"WEB-10234\",\n    \"isim\": \"Ayşe Yılmaz\",\n    \"mail\": \"ayse@ornek.com\",\n    \"telefon\": \"5321112233\",\n    \"kanal\": \"Trendyol\",\n    \"not\": \"Kapıda zil çalışmıyor, arayın.\",\n    \"bilgiler\": {\n        \"fatura_isim\": \"Ayşe Yılmaz\",\n        \"fatura_adres\": \"Örnek Mah. 1. Sk. No:3\",\n        \"fatura_il_isim\": \"İstanbul\",\n        \"fatura_ilce_isim\": \"Kadıköy\",\n        \"fatura_vn\": \"\",\n        \"fatura_vd\": \"\",\n        \"teslimat_isim\": \"Ayşe Yılmaz\",\n        \"teslimat_adres\": \"Örnek Mah. 1. Sk. No:3\",\n        \"teslimat_il_isim\": \"İstanbul\",\n        \"teslimat_ilce_isim\": \"Kadıköy\",\n        \"teslimat_telefon\": \"5321112233\"\n    },\n    \"kargo\": {\n        \"_id\": \"yurtici\",\n        \"isim\": \"Yurtiçi Kargo\",\n        \"barkod\": \"\"\n    },\n    \"urunler\": [\n        {\n            \"_id\": \"URN001\",\n            \"fiyat\": 3009.3,\n            \"adet\": 1\n        }\n    ]\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "GET /siparisler/{id} — Tek sipariş",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/siparisler/{id}",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "siparisler",
                                ":id"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Sipariş kimliği"
                                }
                            ]
                        },
                        "description": "Sipariş ayrıntısı (kalemler, adresler, kargo, durum).\n\n"
                    },
                    "response": []
                },
                {
                    "name": "POST /siparisler/{id}/iptal — Siparişi iptal et",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/siparisler/{id}/iptal",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "siparisler",
                                ":id",
                                "iptal"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Sipariş kimliği"
                                }
                            ]
                        },
                        "description": "API ile açılmış, henüz kargoya verilmemiş siparişi iptal eder (pasife alır); rezerve stok geri döner.\n\nKargolanmış sipariş iptal edilemez (`409 KARGOLANDI`); tedarikçiyle görüşün. \"Tüm siparişler\" görünürlüğündeki token yalnız API kanalındaki siparişleri iptal edebilir; öteki kanallar için `POST …/durum {\"durum\": \"iptal\"}` (sipariş yönetimi yetkisi)."
                    },
                    "response": []
                },
                {
                    "name": "POST /siparisler/{id}/kargo — Kargo bildir",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/siparisler/{id}/kargo",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "siparisler",
                                ":id",
                                "kargo"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Sipariş kimliği"
                                }
                            ]
                        },
                        "description": "Kendi deponuzdan gönderdiğiniz siparişe kargo firması ve takip numarası yazar; durum \"Kargoda\" olur.\n\n",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"kargo_firma\": \"Yurtiçi Kargo\",\n    \"takip_no\": \"1234567890123\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST /siparisler/{id}/durum — Sipariş durumunu değiştir",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/siparisler/{id}/durum",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "siparisler",
                                ":id",
                                "durum"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Sipariş kimliği"
                                }
                            ]
                        },
                        "description": "Siparişi verilen duruma alır (onayla, faturalandı, kargo hazır, teslim edildi, iptal, iade…). Panelin durum kutusuyla aynı kurallar.\n\nİptal'e geçişte rezerve stok rafa döner, iptalden çıkışta yeniden düşülür; kargoya hazır/kargoda durumlarında kargo firmasına otomatik gönderim (açıksa) tetiklenir. Pazaryerine durum **gönderilmez** (pazaryeri siparişlerinin durumu pazaryerinden okunur).\n\nGeçerli kodlar: `GET /durumlar`.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"durum\": \"onaylandi\",\n    \"not\": \"ERP onayı #4411\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST /siparisler/{id}/not — Siparişe not ekle",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/siparisler/{id}/not",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "siparisler",
                                ":id",
                                "not"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Sipariş kimliği"
                                }
                            ]
                        },
                        "description": "Siparişin Notlar sekmesine satır ekler (panelde kim/ne zaman ile görünür).\n\n",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"metin\": \"Müşteri teslimatı cumartesiye istedi.\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "PUT /siparisler/{id}/fatura-bilgisi — Fatura bilgisini güncelle",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/siparisler/{id}/fatura-bilgisi",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "siparisler",
                                ":id",
                                "fatura-bilgisi"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Sipariş kimliği"
                                }
                            ]
                        },
                        "description": "Fatura adı/adresi/il/ilçe/telefon/vergi bilgilerini günceller; gönderilmeyen alanlar korunur.\n\nKendi açtığınız siparişte serbest; \"tüm siparişler\" görünürlüğündeki token için sipariş yönetimi yetkisi gerekir.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"fatura_isim\": \"Örnek Saat Ltd. Şti.\",\n    \"fatura_vn\": \"1234567890\",\n    \"fatura_vd\": \"Kadıköy\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "PUT /siparisler/{id}/teslimat — Teslimat adresini güncelle",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/siparisler/{id}/teslimat",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "siparisler",
                                ":id",
                                "teslimat"
                            ],
                            "query": [],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "Sipariş kimliği"
                                }
                            ]
                        },
                        "description": "Kargolanmamış siparişin teslimat adını/adresini/il-ilçesini/telefonunu günceller.\n\n",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"teslimat_adres\": \"Yeni Mah. 5. Cd. No:12 D:3\",\n    \"teslimat_ilce_isim\": \"Üsküdar\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "📋 Referans Listeleri",
            "description": "Kargo firmaları, sipariş durumları, satış kanalları, depolar.",
            "item": [
                {
                    "name": "GET /kargolar — Kargo firmaları",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/kargolar",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "kargolar"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "`POST /siparisler` gövdesindeki `kargo._id` / `kargo.isim` için tanımlı firmalar.\n\n"
                    },
                    "response": []
                },
                {
                    "name": "GET /durumlar — Sipariş durumları",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/durumlar",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "durumlar"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Sipariş durum kodları ve adları (`durum` süzgeci ve `POST …/durum` için).\n\n"
                    },
                    "response": []
                },
                {
                    "name": "GET /platformlar — Satış kanalları",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/platformlar",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "platformlar"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Hesabın bağlı satış kanalları ve mağazaları; `GET /siparisler?platform=` kodları.\n\n"
                    },
                    "response": []
                },
                {
                    "name": "GET /depolar — Depolar",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/depolar",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "depolar"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Hesabın depoları; `api_ile_yazilabilir` olanlara stok yazılır.\n\n"
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "🔔 Webhook & Olaylar",
            "description": "Anında bildirim adresi, imza, deneme, gönderim günlüğü.",
            "item": [
                {
                    "name": "GET /webhook — Webhook ayarı",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/webhook",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "webhook"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Tanımlı adres, abone olunan olaylar ve gizli anahtarın var olup olmadığı.\n\n"
                    },
                    "response": []
                },
                {
                    "name": "PUT /webhook — Webhook kaydet",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/webhook",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "webhook"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Bildirim adresini ve olayları kaydeder; yanıtta gizli anahtar **yalnız bu kez** tam gösterilir.\n\nAdres `https://` olmalı. Her gönderimde `X-Etibas-Imza` = HMAC-SHA256(gövde, gizli) hex gelir; doğrulayın. `gizli_yenile: true` yeni anahtar üretir.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"url\": \"https://ornek.com/etibas-webhook\",\n    \"olaylar\": [\n        \"urun.degisti\",\n        \"siparis.durum\"\n    ],\n    \"aktif\": true\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    },
                    "response": []
                },
                {
                    "name": "DELETE /webhook — Webhook'u kaldır",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/webhook",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "webhook"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Bildirimleri kapatır, adresi ve gizli anahtarı siler.\n\n"
                    },
                    "response": []
                },
                {
                    "name": "POST /webhook/test — Deneme olayı gönder",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/webhook/test",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "webhook",
                                "test"
                            ],
                            "query": [],
                            "variable": []
                        },
                        "description": "Adresinize gerçek imzalı bir `webhook.test` olayı kuyruğa alınır (en geç 1 dk içinde POST edilir).\n\nSonucu `GET /olaylar?tur=webhook.test` ile izleyin: `gonderildi` ya da `basarisiz` + HTTP kodu."
                    },
                    "response": []
                },
                {
                    "name": "GET /olaylar — Olay günlüğü",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{taban}}/olaylar?size=100",
                            "host": [
                                "{{taban}}"
                            ],
                            "path": [
                                "olaylar"
                            ],
                            "query": [
                                {
                                    "key": "size",
                                    "value": "100",
                                    "description": "En çok 500.",
                                    "disabled": false
                                },
                                {
                                    "key": "tur",
                                    "value": "",
                                    "description": "Olay türü süzgeci.",
                                    "disabled": true
                                },
                                {
                                    "key": "durum",
                                    "value": "",
                                    "description": "bekliyor · gonderildi · basarisiz · bilgi",
                                    "disabled": true
                                }
                            ],
                            "variable": []
                        },
                        "description": "Son olaylar ve webhook gönderim sonuçları (30 gün saklanır).\n\n`durum`: bekliyor · gonderildi · basarisiz · bilgi (yalnız günlük). `deneme` ve `http_kod` karşı tarafın yanıtını gösterir."
                    },
                    "response": []
                }
            ]
        }
    ]
}