Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/iyzico/iyzipay-kolai-for-woocommerce/archive/refs/heads/master.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
Kolai Plugin
Kolai API entegrasyonu icin WordPress plugin'i.
API Genel
Base URL: https://your-site.com/wp-json/kolai/v1
Tumu JSON request/response kullanir.
Base Response
Tum endpoint'ler asagidaki formatta doner:
{
"status": "success",
"systemTime": "2026-02-04T10:15:30+00:00",
"errorCode": null,
"errorMessage": null,
"woocommerceVersion": "9.1.0",
"wordpressVersion": "6.5.3",
"phpVersion": "8.1.20",
"data": {}
}
status degeri:
success: HTTP status < 400failure: HTTP status >= 400
Error Codes
1xxx - Kolai Plugin Errors
1000Internal error1001Bad request1002Not found1003Service unavailable1004WooCommerce inactive1005Unauthorized
2xxx - Product Errors
2000Invalid product id2001Product not found2002Product not visible2003Variation parent not found2004Invalid product list
3xxx - Shipping Errors
3000Invalid address3001No shipping options
4xxx - Order Errors
4000Invalid order request4001Invalid shipment option4002Insufficient stock4003Discount exceeds total
5xxx - Contract Errors
5000Invalid contract type5001Invalid contract request5002Contract not found
6xxx - Review Errors
6000Invalid review request6001Review not found6003Invalid rating6004Reviews disabled
Endpoints
Detayli istek/yanit ornekleri ve aciklamalar icin ilgili dokümana gidin:
| Alan | Doküman | Özet |
|---|---|---|
| Kimlik Dogrulama | AUTH.md | HMAC-SHA256 imza dogrulamasi, scope eslemesi |
| Ürün | PRODUCT.md | GET /products (sayfalama + ID/modified_after filtresi, pagination response body içinde), GET /products/{id}, GET /products-with-variants/{id} |
| Kargo | SHIPPING.md | POST /shipment-options (alias: POST /shipping-options) |
| Sipariş | ORDER.md | GET /order-types, POST /orders, GET /orders/{orderId}, PATCH /orders/{orderId} |
| Sözleşme | CONTRACT.md | POST /contracts ve GET /contracts/clarification-text |
| Yorum | REVIEW.md | GET /products/{id}/reviews (sayfalama + status/rating/modified_after filtresi), GET /reviews/{id} |
| İade / İptal | REFUND.md | WooCommerce iade/iptal işlemlerinin iyzico'ya otomatik iletilmesi (iyzipay-php) |
| Loglama | LOGS.md | Yönetici panelinden açılıp kapatılabilen, DB tabanlı yapısal log altyapısı |
Yönetim Sayfaları
| Sayfa | Yol | İçerik |
|---|---|---|
| Ayarlar | WP Admin → Kolai | API Key / Secret Key, Aydinlatma Metni sayfası, iyzico iade/iptal API bilgileri (key/secret/ortam) |
| Sözleşmeler | WP Admin → Kolai → Sozlesmeler | Satıcı bilgileri, mesafeli satış / ön bilgilendirme metinleri |
| Loglar | WP Admin → Kolai → Loglar | Log tutma anahtarı, seviye, retention; canlı log tablosu (filtre + temizle) — bkz. LOGS.md |
Uyumlu Eklentiler
| Eklenti | Destek |
|---|---|
| Product Bundles for WooCommerce | POST /orders ile bir paket (productType: "bundle") ürünü sipariş edildiğinde, paketteki ürünler (örn. bedelsiz hediye ürünler) mağazadaki sepetle aynı şekilde siparişe ayrı satırlar olarak eklenir. Detay ORDER.md. |
Yapı
kolai/
├── admin/
│ ├── class-kolai-admin.php
│ ├── class-kolai-settings.php
│ ├── css/
│ │ └── kolai-admin.css
│ ├── js/
│ │ ├── kolai-admin.js
│ │ └── kolai-logs.js
│ └── views/
│ ├── contracts-page.php
│ ├── logs-page.php
│ └── settings-page.php
├── includes/
│ ├── class-kolai-activator.php
│ ├── class-kolai-address.php
│ ├── class-kolai-api.php
│ ├── class-kolai-auth.php
│ ├── class-kolai-constants.php
│ ├── class-kolai-core.php
│ ├── class-kolai-deactivator.php
│ ├── class-kolai-exceptions.php
│ ├── class-kolai-loader.php
│ ├── class-kolai-logger.php
│ ├── class-kolai-response.php
│ ├── class-kolai-route-base.php
│ ├── contract/
│ │ ├── contract-routes.php
│ │ └── contract-service.php
│ ├── product/
│ │ ├── product-mapper.php
│ │ ├── product-routes.php
│ │ └── product-service.php
│ ├── order/
│ │ ├── order-routes.php
│ │ └── order-service.php
│ ├── payment/
│ │ ├── class-kolai-iyzico-client.php
│ │ ├── class-kolai-iyzico-gateway.php
│ │ └── class-kolai-refund-service.php
│ ├── shipping/
│ │ ├── shipping-routes.php
│ │ └── shipping-service.php
│ ├── review/
│ │ ├── review-mapper.php
│ │ ├── review-routes.php
│ │ └── review-service.php
│ └── vendor/
│ └── iyzipay-php/ # bundled iyzico PHP SDK
├── iyzipay-kolai-for-woocommerce.php
├── README.md
├── AUTH.md
├── PRODUCT.md
├── SHIPPING.md
├── ORDER.md
├── CONTRACT.md
├── REVIEW.md
├── REFUND.md
└── LOGS.md
Sürüm Notları
1.7.0
- Güvenlik ve güvenilirlik sıkılaştırması (inceleme sonrası remediation).
- İade: Çok kalemli iadeler artık atomik ve kurtarılabilir — sipariş bazlı kilit eşzamanlı çift iadeyi önler, her denemenin benzersiz idempotency kimliği vardır, kalıcı işlem defteri tutulur, başarılı uzak iadeden sonra yerel kayıt yazılamazsa işlem durdurulup mutabakat için işaretlenir, kısmi başarı yerel WooCommerce iade kaydı olarak korunur.
- Kimlik doğrulama: API key veya secret boşsa istekler reddedilir (fail-closed), client id sabit zamanlı karşılaştırılır, tekrar (replay) saldırıları tek kullanımlık salt + opsiyonel imzalı
timestampile engellenir (bkz. AUTH.md). - Sipariş: Başarılı ödeme artık WooCommerce
payment_complete()yaşam döngüsünden geçer; başarısız sipariş oluşturma artık öksüz (orphan) sipariş bırakmaz. - Ürün:
salePriceyalnızca indirim gerçekten aktifken (is_on_sale()) döner; varyasyon kırpılmasıvariationsTruncated/variationsMaxile açıkça bildirilir;?ids=listesi sınırlandırıldı. - Kargo: Teklif ve sipariş kargosu gerçek ürün adetlerini (ve varyasyonları) dikkate alır;
/shipment-optionsopsiyonelquantitykabul eder (geriye dönük uyumlu). - Gizlilik & log: İstek logları kişisel/iletişim/vergi/ödeme alanlarını maskeler ve boyutu sınırlar; doğrudan
error_log()çağrıları WooCommerce yapısal loglayıcısına taşındı. - Yönetim: Erişilebilirlik (etiketler/ARIA/canlı durum), responsive/RTL CSS ve maskeli gizli anahtar alanları (boş bırakılırsa mevcut değer korunur).
- Uyumluluk: Product Block Editor uyumluluğu bildirildi; WooCommerce 10.9.x / WordPress 6.9 ile test edildi.
1.6.0
- Vergi (KDV): Ürün endpoint'leri artık vergi dahil
price/salePriceile birlikteincludedTax/taxPrice/taxPercentagedökümünü döner; siparişdiscountAmountdeğeri, vergi dahil toplamları tutarlı tutmak için vergiye duyarlı negatif fee olarak uygulanır.
1.5.0
- iyzico İade / İptal entegrasyonu: WooCommerce yönetici panelinden yapılan iade ve iptal işlemleri otomatik olarak iyzico'ya iletilir. Detay REFUND.md.
- iyzipay-php SDK
includes/vendor/iyzipay-php/altında bundle edildi. - İade,
kolai-appödeme geçidi üzerinden native "İade et" butonu ile çalışır (process_refund); tutar kayıtlıitemTransactionskalemlerine dağıtılır. İptal,woocommerce_order_status_cancelledhook'u ilepaymentIdüzerinden yapılır. - Ayarlara iyzico API Key / Secret Key / Ortam (sandbox-production) alanları eklendi.
1.3.0
- PATCH /orders/{orderId} artık opsiyonel
paymentIdveitemTransactionsalanlarını sipariş meta'sı olarak kaydeder (kolai_payment_id,kolai_item_transactions). Detay ORDER.md.
1.2.0
- Yorumlar / Değerlendirmeler:
GET /products/{id}/reviews(sayfalama + status/rating/modified_after filtresi) veGET /reviews/{id}endpoint'leri eklendi. Defaultapprovedyorumlar döner. Detay REVIEW.md. - Yeni scope'lar:
RETRIEVE_REVIEWS,RETRIEVE_REVIEW. - Yeni hata kodları:
6000-6004(review). - PII alanları (author email/IP/agent) yanıttan kasıtlı olarak çıkarıldı.
1.1.1
- HTTP/2 fix:
/productslistesindeki pagination metadatası özelX-Kolai-*response header'larından response body'ye (paginationalanı) taşındı. Bazı proxy yığınları (Cloudflare strict, HTTP/2) custom header'ları "Header field must only have a single value" protocol error'u ile reddediyordu. - DB migration: Plugin sürümü değiştiğinde (FTP/Git ile dosya güncelleme dahil) log tablosu otomatik oluşur — eklenti deaktive + tekrar aktive edilmesi gerekmez.
- Logger guard: Tablo yoksa
Kolai_Logger::is_enabled()false döner; yazım denemeleri sessizce skip edilir.
1.1.0
- Logging: DB tabanlı yapısal log altyapısı eklendi. Yönetim sayfası, seviye/retention ayarları, günlük cleanup cron — detay LOGS.md.
- Product list optimizasyonu:
/productsendpoint'i artık zorunlu olarak sayfalanır (page,per_page, max 200). Liste yanıtı hafifletildi (variations/gallery/attributes detay endpoint'inde döner). Bulk cache priming + batch term fetch ile N+1 sorguları kaldırıldı.?ids=ve?modified_after=filtreleri eklendi. Detay PRODUCT.md. - Variations için tek üründe
MAX_VARIATIONS_PER_PRODUCT = 100tavanı. - Auth, request ve servis katmanlarına structured log noktaları eklendi.
1.0.3
- Önceki kararlı sürüm.