Ana sayfaya dön

Infumar Store API

ikas, Shopify, IdeaSoft veya WooCommerce kullanmıyorsanız — kendi e-ticaret yazılımınızı bu API ile bağlarsınız. Hazır entegrasyonlarımızın kullandığı API'nin aynısı.

Nasıl başlanır

1. Mağazanızı bağlayın

Infumar panelinde Markalarım → entegrasyonlar → “Özel Yazılım”. Mağazanızın adresini girin; size bir API anahtarı verilir. Anahtar bir paroladır: yalnız sunucunuzda saklayın.

2. Takip kodunu ekleyin

Bu tek satır her sayfada çalışır. Ziyaretçinin hangi influencer'dan geldiğini birinci-taraf çereze yazar ve mağazanıza ulaştığını doğrular (influencer'ın tıklama kazancı buna bağlıdır). Ayar gerektirmez.

<script src="https://api.infumar.com/api/v1/integrations/track.js" async></script>

3. Ürünlerinizi gönderin

Reklam verenin kampanyada seçeceği ve influencer'ın paylaşacağı ürünler budur. Fiyat veya stok değiştikçe listeyi yeniden gönderin. Gönderdiğiniz liste kataloğun TAMAMIDIR: listede olmayan ürün mağazadan kaldırılmış sayılır ve influencer'a gösterilmeyi bırakır.

curl -X POST https://api.infumar.com/api/v1/integrations/sync-products \
  -H "X-API-Key: inf_..." \
  -H "Content-Type: application/json" \
  -d '{
    "products": [
      {
        "id": "SKU-1001",
        "name": "Kaşmir Kazak",
        "price": 1450,
        "image": "https://www.magazaniz.com/img/1001.jpg",
        "purchaseLink": "https://www.magazaniz.com/kasmir-kazak",
        "stock": 12,
        "isActive": true,
        "categories": [{ "id": "12", "name": "Kazak" }]
      }
    ]
  }'

4. Siparişleri bildirin

Sipariş tamamlandığında sunucunuzdan bildirirsiniz. Çerezdeki kısa kodu gönderirsiniz; influencer'ı ve projeyi biz çözeriz.

Kimlik doğrulama

Her istek `X-API-Key` başlığıyla gelir. Anahtar mağazanızı temsil eder — hangi influencer'ın kazanacağını istekte belirtmezsiniz, belirleyemezsiniz de. Bağlantıyı panelden kapatırsanız anahtar aynı anda geçersizleşir.

X-API-Key: inf_a1b2c3d4e5f6…

Atıf nasıl çalışır

marketing.developers.attribution

Uçlar

POST/integrations/sync-productsÜrün kataloğunuzu gönderir (tam liste — gönderdiğiniz liste kataloğun yerine geçer).
POST/integrations/track-saleBir siparişi affiliate satışı olarak bildirir.
POST/integrations/track-refundİade bildirir; komisyon geri alınır (kısmi iade oranlı).
POST/integrations/track-cancellationİptal bildirir; komisyon geri alınır.
GET/integrations/statusBağlantının güncel durumunu döner.
POST/integrations/verifyAnahtarın çalıştığını doğrular ve bağlantıyı aktif işaretler.

Uçtan uca örnek

Sipariş tamamlandığında sunucunuzdan çalışacak kod. Çerezi tarayıcıdan okuyup kendi sipariş kaydınıza yazın, sonra bildirin.

// On your server, once the order is paid.
// `shortCode` is the value you stored from the infumar_aff cookie.
await fetch("https://api.infumar.com/api/v1/integrations/track-sale", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.INFUMAR_API_KEY,   // never in the browser
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    shortCode,                  // e.g. "a1b2c3d4"
    orderId: order.id,          // your own id — retries are idempotent on it
    orderTotal: order.paidTotal, // what the customer actually paid
    currency: "TRY",
    products: order.lines.map((l) => ({
      productId: l.sku,         // same id you sent to sync-products
      name: l.name,
      price: l.unitPrice,
      quantity: l.quantity,
    })),
  }),
});

// → { success: true, attributed: true, duplicate: false }
// → { success: true, attributed: false, reason: "unknown_short_code" }
// Full refund — omit refundAmount.
await fetch("https://api.infumar.com/api/v1/integrations/track-refund", {
  method: "POST",
  headers: { "X-API-Key": process.env.INFUMAR_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({ orderId: order.id }),
});

// Partial refund — the commission is clawed back pro rata.
await fetch("https://api.infumar.com/api/v1/integrations/track-refund", {
  method: "POST",
  headers: { "X-API-Key": process.env.INFUMAR_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({ orderId: order.id, refundAmount: 250, isFullRefund: false }),
});

Bilmeniz gerekenler

  • Aynı siparişi tekrar bildirmek zararsızdır — ikinci bildirim `duplicate` döner, komisyon iki kez yazılmaz. Zaman aşımı sonrası çekinmeden tekrar deneyin.
  • Komisyon `orderTotal` üzerinden hesaplanır: müşterinin indirim ve kupon sonrası fiilen ödediği tutar.
  • Kısa kodu çözülemeyen sipariş hata değildir — `attributed: false` döner ve hiçbir şey kaydedilmez.
  • Satış komisyonu 14 gün iade penceresinde bekler, sonra influencer'a ödenir. Bu yüzden iadeleri bildirmeniz önemlidir.
  • Anahtarı tarayıcıya koymayın. Sayfa kodundaki bir anahtarı herkes okur ve sahte sipariş bildirebilir. Bildirim her zaman sunucunuzdan.

Takıldığınız yerde

Entegrasyon sırasında sorunuz olursa panelden destek başlatın; hangi mağaza olduğunu bildiğimiz için isteklerinizi loglardan birlikte izleyebiliriz.

Panelden mağazamı bağla