Hawe-mi

Pazaryeri API · v1

Pazaryeri Entegrasyon API'si

Entegra, Sentos, Ticimax ve benzeri entegratörler için ürün, stok, fiyat, sipariş ve iade uçları.

Base URL: https://admin.hawe-mi.com/api/v1/integration Format: JSON (REST) Limit: 300 istek / dakika / anahtar Sürüm: v1

Kimlik doğrulama

Her istekte satıcının API anahtarı X-API-Key başlığında gönderilir.

X-API-Key: hwm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Anahtar bir satıcıya aittir; tüm istekler otomatik olarak o mağazanın verisiyle sınırlıdır. Anahtar satıcı panelinden veya Hawe-mi süperadmin panelinden iptal edilebilir.

Yanıt formatı

{
  "success": true,
  "message": "Ürünler getirildi.",
  "data": { }
}
HTTPAnlam
200 / 201Başarılı
401API anahtarı yok, geçersiz veya iptal edilmiş
403Satıcı hesabı onaylı değil
404Kayıt bulunamadı
422Doğrulama hatası
429İstek limiti aşıldı (retry_after)

Önemli notlar

  1. Ürünler stok kodu (sku) ile eşlenir. SKU satıcı bazında tekildir ve ürün oluşturulduktan sonra değişmez.
  2. Varyant desteği yoktur. Renk/beden/gramaj gibi her varyant ayrı ürün olarak gönderilmelidir.
  3. Yeni ürünler admin onayı bekler. Oluşturulan ürün approved: false ile kaydedilir.
  4. Kargo Hawe-mi tarafından oluşturulur. Entegratör takip numarasını okur, göndermez.
  5. Kategori sabit listedendir. Önce /categories ucundan alınmalıdır.
  6. Mevcut ürünler: Panelden daha önce eklenmiş ürünlerin SKU'su boş olabilir; entegrasyona dahil edilmesi için panelden SKU atanmalıdır. Listelemek için GET /products?sku_missing=1.
  7. Silinen ürün + aynı SKU: DELETE soft delete yapar. Aynı SKU ile tekrar POST /products gelirse ürün geri yüklenir (restored: true, yeniden admin onayı bekler).

Mağaza

GET/me

Bağlantı testi ve mağaza durumu.

{
  "success": true,
  "data": {
    "store": {
      "id": "9ed0880e-...",
      "store_name": "Örnek Mağaza",
      "status": "approved",
      "vacation_mode": false,
      "open_for_sale": true,
      "return_address_defined": true,
      "cargo_provider": "YURTICI_STANDART"
    }
  }
}
return_address_defined: false ise satıcı iade adresi tanımlamadan ürün ekleyemez.

GET/categories

{
  "success": true,
  "data": {
    "animal_categories": ["Kedi","Köpek","Kanatlılar","Su Hayvanları","Sürüngen","Böcek","Çiftlik Hayvanları","Diğer"],
    "product_categories": ["Mama","Oyuncak","Kap","Temizlik","Sağlık"]
  }
}

Ürün

GET/products

Sayfalı ürün listesi. per_page en fazla 100 (varsayılan 50). SKU'suz ürünler: ?sku_missing=1.

{
  "success": true,
  "data": {
    "products": [{
      "sku": "KM-1000",
      "barcode": "8690000000001",
      "id": "a2600e3d-...",
      "name": "Kedi Maması 1kg",
      "description": "...",
      "price": 149.9,
      "tax_rate": 20,
      "stock_quantity": 25,
      "desi": 2,
      "weight": 1000,
      "animal_category": "Kedi",
      "product_category": "Mama",
      "approved": true,
      "listed": true,
      "on_sale": true,
      "images": ["https://admin.hawe-mi.com/storage/products/..."],
      "created_at": "2026-07-29T14:13:14+00:00",
      "updated_at": "2026-07-29T14:13:14+00:00"
    }],
    "current_page": 1,
    "last_page": 4,
    "per_page": 50,
    "total": 180
  }
}
AlanAnlam
approvedAdmin onayı verildi mi
listedSatıcı vitrinde göstermeyi seçti mi
on_saleŞu anda gerçekten satışta mı

GET/products/{sku}

Tek ürün getirir. Yanıt formatı liste kalemi ile aynıdır (data.product).

POST/products

AlanZorunluAçıklama
skuEvetStok kodu, max 64 karakter, satıcıda tekil
nameEvetÜrün adı
priceEvetKDV dahil satış fiyatı (TL)
stock_quantityEvetStok adedi
desiEvetKargo desi
weightEvetGram
animal_categoryEvet/categories listesinden
product_categoryEvet/categories listesinden
barcodeHayırSatıcıda tekil
descriptionHayırAçıklama
tax_rateHayırVarsayılan 20
imagesHayırEn fazla 5 görsel URL'si
curl -X POST https://admin.hawe-mi.com/api/v1/integration/products \
  -H "X-API-Key: hwm_..." \
  -H "Content-Type: application/json" \
  -d '{
    "sku":"KM-1000",
    "name":"Kedi Maması 1kg",
    "price":149.90,
    "stock_quantity":25,
    "desi":2,
    "weight":1000,
    "animal_category":"Kedi",
    "product_category":"Mama",
    "images":["https://cdn.ornek.com/1.jpg"]
  }'

PUT/products/{sku}

Sadece gönderilen alanlar güncellenir. sku değiştirilemez.

DELETE/products/{sku}

Ürünü yayından kaldırır (soft delete). Aynı SKU ile yeniden POST /products gönderilirse ürün geri yüklenir.

Stok ve fiyat (toplu)

Tek istekte en fazla 500 kalem. Bulunamayan SKU'lar failed listesinde döner, diğerleri güncellenir.

POST/stock

{
  "items": [
    { "sku": "KM-1000", "quantity": 12 },
    { "sku": "KM-2000", "quantity": 0 }
  ]
}

POST/price

{
  "items": [
    { "sku": "KM-1000", "price": 159.90, "tax_rate": 20 }
  ]
}

Sipariş

GET/orders

ParametreAçıklama
statusDurum koduna göre filtre
updated_afterBu tarihten sonra güncellenenler (ISO 8601)
per_pageSayfa boyutu, en fazla 100
Düzenli senkron için son çekim zamanını saklayıp updated_after ile sorgulayın.
Durum koduAnlam
createdSipariş alındı
ready_to_shipKargo etiketi oluştu
shippedKargoya verildi
out_for_deliveryDağıtımda
deliveredTeslim edildi
cancelledİptal edildi
returnedİade / para iadesi

GET/orders/{id}

id yerine sipariş numarası da kullanılabilir. Alıcı, adres, kalemler, tutarlar, kargo ve iade bilgisi döner.

{
  "success": true,
  "data": {
    "order": {
      "id": "a25d8c89-...",
      "order_number": "2242493476",
      "status": "created",
      "status_text": "Sipariş Alındı",
      "payment_status": "success",
      "delivery_type": "standard",
      "total": 496,
      "buyer": { "name": "Ad Soyad", "phone": "5xxxxxxxxx", "email": "...", "is_guest": false },
      "shipping_address": {
        "contact_name": "...", "phone": "...", "full_address": "...",
        "city": "Bursa", "district": "Nilüfer", "neighborhood": "...", "postal_code": null
      },
      "items": [{
        "sku": "KM-1000", "barcode": "869...", "product_id": "...",
        "name": "Kedi Maması 1kg", "quantity": 3,
        "unit_price": 248, "total_price": 744, "tax_rate": 20
      }],
      "amounts": {
        "promotion_discount": 248, "coupon_discount": 0,
        "shipping_fee": 0, "shipping_paid_by": "seller", "total": 496
      },
      "cargo": {
        "tracking_number": "...", "provider_code": "YURTICI",
        "tracking_url": "https://...", "label_url": "https://...", "status_code": "delivered"
      },
      "refund": null,
      "can_be_cancelled": true
    }
  }
}

amounts.total müşterinin ödediği net tutardır (indirimler düşülmüş).

POST/orders/{id}/cancel

{ "reason": "Ürün stokta kalmadı" }

reason zorunludur. Sadece kargo yola çıkmadan önce iptal edilebilir.

POST/orders/{id}/cargo

Etiket oluşmamışsa yeniden denemek için. Normal akışta gerekmez. id yerine sipariş numarası da kabul edilir.

İade

GET/refunds

GET/refunds/{id}

POST/refunds/{id}/approve

POST/refunds/{id}/reject

{ "seller_reason": "Ürün kullanılmış olarak geldi" }
DurumAnlam
waiting_returnİade kargosu yolda
pending_seller_decisionSatıcı kararı bekleniyor
approvedOnaylandı, para iade edildi
rejectedReddedildi
auto_refundedSüre doldu, otomatik iade
expiredSüre doldu