Printiturk Özel API Entegrasyonu
Kendi yazılım altyapınız veya e-ticaret siteniz (WooCommerce harici özel siteler, Shopify, özel sistemler) üzerinden aldığınız siparişleri tam otomatik olarak Printiturk üretim bandına yönlendirebilirsiniz. API'miz tasarım kaydetme, sipariş oluşturma ve anlık kargo/durum takibi yapma yeteneklerine sahiptir.
https://www.printiturk.com/api/v1
Yetkilendirme (Authentication)
Printiturk API isteklerinizi doğrulayabilmek için her istekte HTTP başlığına (Header) API Erişim Anahtarınızı (Token) Bearer biçiminde eklemelisiniz.
Authorization: Bearer YOUR_API_TOKENContent-Type: application/json
API Token bilginizi asla istemci taraflı (frontend / javascript) kodlarınızda paylaşmayın. Bu anahtar satıcı hesabınızın bakiyesini ve siparişlerini yönettiğinden tamamen güvenli sunucu kodlarınızda saklanmalıdır.
Tasarım Kaydet (PT-DSG Kodu Üretme)
/designs.php
Binlerce hazır tasarımınızı veya dinamik olarak ürettiğiniz görselleri tek tek panele yüklemek yerine API üzerinden toplu halde kaydedebilirsiniz. Yanıt olarak alacağınız PT-DSG-XXXX kodunu sipariş gönderirken doğrudan product_sku alanında kullanabilirsiniz.
İstek Parametreleri (JSON Payload)
| Alan | Tip | Zorunlu mu? | Açıklama |
|---|---|---|---|
| image_url | String | Evet* | Yüksek çözünürlüklü baskı görselinin URL adresi (*veya image_base64) |
| title | String | Hayır | Tasarımın başlığı / adı (Örn: "Özel Kedi Baskısı #1") |
| user_sku | String | Hayır | Kendi sisteminizdeki özel SKU kodunuz (Örn: "DSG-CAT-001") |
| side | String | Hayır (Dflt: front) | Baskı yüzü: front (Ön Yüz) veya back (Arka Yüz) |
| width_cm | Float | Hayır (Dflt: 30) | Baskı alanındaki fiziki genişlik (cm cinsinden) |
Tasarım Kaydet (POST)
{
"title": "Siyah Kedi Tasarımı",
"user_sku": "MY-CAT-001",
"image_url": "https://siteniz.com/uploads/kedi.png",
"side": "front",
"width_cm": 25
}
Başarılı Yanıt (Response)
{
"success": true,
"message": "Tasarım başarıyla kaydedildi.",
"design_id": "PT-DSG-1945",
"id": 1945,
"user_sku": "MY-CAT-001",
"title": "Siyah Kedi Tasarımı",
"side": "front"
}
Sipariş Gönder (Sipariş Oluşturma)
/orders.php
Dış sisteminizde oluşan siparişi Printiturk'e göndermek için bu uç noktayı kullanın. Sistem, göndereceğiniz SKU kodlarını otomatik olarak eşleştirir, dinamik baskı maliyetlerini hesaplar ve siparişi "Ödeme Bekliyor" (awaiting_payment) durumunda kuyruğa alır.
İstek Parametreleri (JSON Payload)
| Alan | Tip | Zorunlu mu? | Açıklama |
|---|---|---|---|
| external_order_id | String | Evet | Sizin sisteminizdeki benzersiz sipariş numarası (Örn: "WEB-9872") |
| cargo_label_url | String | Hayır | Pazaryeri kargo etiketi URL'si (Trendyol / Hepsiburada kargo fişi PDF/görsel adresi) |
| customer | Object | Evet | Müşteri detayları objesi (first_name, last_name, address, city, district) |
| items | Array | Evet | Sipariş verilecek ürünlerin listesi |
| items[].product_sku | String | Evet | Eşleştirilmiş SKU kodu veya Printiturk özel tasarım kodu (Örn: PT-DSG-1945) |
| items[].quantity | Integer | Hayır (Dflt: 1) | Adet bilgisi |
| items[].size / color | String | Hayır | Beden (Örn: "L") ve Renk (Örn: "Siyah") bilgisi |
| items[].design_url | String | Hayır | Dinamik baskı dosyası linki. Sunucunuza otomatik bağlanıp Printiturk üzerine indirilir. |
| items[].side | String | Hayır (Dflt: front) | Baskı yüzü: front (Ön), back (Arka) veya both (İki Yüz) |
| items[].design_url_front / design_url_back | String | Hayır | Tek üründe ön ve arka için ayrı tasarım linkleri göndermek için kullanılır. |
| items[].mockup_url | String | Hayır | Bitmiş ürün referans görseli linki. Baskıyı etkilemez, yalnızca üretim ve paketleme ekipleriniz için referans visual olarak gösterilir. |
| items[].mockup_url_front / mockup_url_back | String | Hayır | Çift taraflı siparişlerde ön ve arka referans mockup görsel linklerini ayrı tanımlamak için kullanılır. |
| brand_label | Boolean | Hayır (Dflt: false) | Marka etiketi dikilsin mi? (true / false) |
| hangtag | Boolean | Hayır (Dflt: false) | Karton sallama etiketi takılsın mı? (true / false) |
| gift_package | Boolean | Hayır (Dflt: false) | Hediye paketi yapılsın mı? (true / false) |
| order_note | String | Hayır | Sipariş / üretim özel notu (Örn: "Paket içine tebrik kartı ekleyin") |
| items[].width_cm | Float | Hayır | Ürünün fiziki baskı alanındaki genişliği (cm cinsinden). Belirtilmezse o ürünün varsayılan tam baskı genişliği baz alınır. |
POST Payload (JSON)
{
"external_order_id": "WEB-9872",
"cargo_label_url": "https://siteniz.com/labels/kargo_label_9872.pdf",
"customer": {
"first_name": "Can",
"last_name": "Kaya",
"email": "cankaya@example.com",
"phone": "5320000000",
"address": "Moda Cad. Huzur Apt. No:12 D:4",
"city": "İstanbul",
"district": "Kadıköy"
},
"items": [
{
"product_sku": "ESP-BSC-ERK-TSH",
"quantity": 1,
"size": "L",
"color": "Siyah",
"side": "front",
"width_cm": 30,
"design_url": "https://siteniz.com/uploads/baski_dosyasi.png",
"mockup_url": "https://siteniz.com/uploads/bitmis_urun_mockup.jpg"
}
]
}
Başarılı Yanıt (Response)
{
"success": true,
"message": "1 adet ürün başarıyla sipariş olarak alındı.",
"order_numbers": [
"#ORD-34986"
],
"status": "awaiting_payment"
}
Sipariş Sorgula (Durum & Kargo Takibi)
/orders.php?order_id=SIPARIS_NO
Printiturk'e göndermiş olduğunuz bir siparişin güncel üretim durumunu ve kargoya verildiyse kargo takip bilgilerini almak için bu endpoint'i kullanın.
Query Parametreleri
%23 kullanabilirsiniz). Örn: ?order_id=%23ORD-34986 veya ?order_id=ORD-34986
Örnek İstek (GET)
GET /orders.php?order_id=%23ORD-34986 HTTP/1.1
Host: www.printiturk.comAuthorization: Bearer YOUR_API_TOKEN
Sorgu Yanıtı (JSON)
{
"success": true,
"order_id": "#ORD-34986",
"status": "shipped",
"status_description": "Kargoya Verildi",
"cargo_label_url": "https://siteniz.com/labels/kargo_label_9872.pdf",
"tracking": {
"number": "33485029192",
"url": "https://geliver.io/takip/33485029192"
}
}
Hatalar ve Yanıt Kodları
İsteklerin başarısız olması durumunda API standart HTTP durum kodları ile birlikte hatanın sebebini açıklayan bir JSON yanıtı döner.
| HTTP Kodu | Durum | Muhtemel Sebepler |
|---|---|---|
| 400 Bad Request | Geçersiz Parametreler | JSON formatı bozuk, sipariş numarası mükerrer, SKU tanımsız veya zorunlu alanlar (customer, items) eksik gönderildi. |
| 401 Unauthorized | Yetkilendirme Hatası | Authorization başlığı gönderilmedi, Bearer formatı yanlış ya da geçersiz bir API Token kullanıldı. |
| 404 Not Found | Bulunamadı | Sorgulanmak istenen sipariş veya tasarım sistemde mevcut değil ya da size ait değil. |
| 405 Method Not Allowed | Geçersiz Method | GET veya POST dışında geçersiz bir HTTP metodu (PUT, DELETE vb.) kullanıldı. |
| 500 Server Error | Sunucu Hatası | Printiturk sunucu tarafında geçici bir veritabanı veya kodlama hatası oluştu. |
SKU Eşleştirme Kuralları
Dış sisteminizden sipariş atarken ürün tanımlamalarını yapabilmek için iki seçeneğiniz vardır:
-
API İle Tasarım Kaydedip PT-DSG Kodu Kullanma (En Hızlı Yöntem):
POST /api/v1/designs.phpservisini kullanarak tasarımlarınızı kaydedebilir ve dönenPT-DSG-XXXXkodlarını sipariş verirken doğrudanproduct_skualanında kullanabilirsiniz. -
Manuel SKU Eşleştirme:
Printiturk kullanıcı panelinizdeki "Ürün Eşleştirme" sayfasından kendi sitenizdeki SKU'ları (Örn:KUPA-BEYAZ-001), Printiturk ana ürünü ve yüklü olan ön/arka tasarımlarınızla önceden eşleştirirsiniz. Sipariş gönderirken sadece bu SKU kodunu iletmeniz yeterlidir. -
Dinamik Sipariş Gönderme (Tasarım Linki İle):
Eşleştirme yapmadan doğrudan sipariş oluşturmak isterseniz, sipariştedesign_url(veyadesign_url_front/design_url_back) parametresiyle tasarımın dosya linkini doğrudan gönderebilirsiniz.