• 03-07-2026, 18:26:14
    #1
    Shopier PHP SDK | Composer ile Dinamik Shopier Ödeme Entegrasyonu

    Herkese Merhaba,
    Shopier Sanal Pos Kullanımını kaldırdığı için böyle bir proje geliştirdim. Aktif olarak 6 farklı işletmenin web sitesinde sorunsuz çalışıyor.
    Projeyi sizlere ücretsiz olarak sunmak istedim umarım işinize yarar. Canlıya almadan önce mutlaka test etmelisiniz.
    Shopier ile herhangi bir ortaklık veya yasal iş birliği bulunmamaktadır. Legal Shopier API'ı ile karıştırılmamalı, Özel entegrasyon olduğunun farkında olarak kullanılmalıdır.
    PHP projelerinde Shopier API entegrasyonunu daha düzenli, güvenli ve tekrar kullanılabilir hâle getirmek için geliştirdiğim açık kaynak Composer kütüphanesini paylaşıyorum:

    Mebularts Shopier PHP SDK
    GitHub Repository:
    https://github.com/mebularts-dev/shopier

    Bu paket; Shopier API işlemlerini düz PHP, Laravel, Symfony veya özel altyapılara bağlanmadan kullanabilmek için tasarlanmış framework bağımsız bir PHP SDK’sıdır.
    Not: Paket alpha aşamasındadır. Canlı ödeme ve webhook akışlarında kullanmadan önce kendi Shopier hesabınızda test etmeniz önerilir.
    Neler Sağlıyor?
    • Composer ile kolay kurulum
    • PHP 8.1+ desteği
    • Framework bağımsız yapı
    • Shopier ürün, sipariş, bakiye, iade ve webhook API işlemleri
    • PAT ile API erişimi
    • Webhook doğrulama ve API recheck desteği
    • Typed DTO yapısı
    • Merkezi exception ve hata yönetimi
    • CLI ile temel sağlık ve listeleme komutları
    • Dinamik Shopier ürün oluşturma
    • Tek ürünlü veya çok ürünlü sepetten ödeme URL’si alma
    • Mevcut e-ticaret projelerine minimum müdahale ile entegrasyon
    Dinamik Shopier Ödeme Akışı

    Paketin öne çıkan tarafı, mevcut e-ticaret sitenizdeki sepet bilgilerini kullanarak Shopier tarafında dinamik ürün oluşturabilmesidir.
    Akış genel olarak şu şekilde ilerler:

    Alıntı
    Müşteri checkout başlatır

    Sitenizde pending sipariş oluşur

    Sepet toplamına göre Shopier’de dinamik ürün oluşturulur

    Shopier ürün ID ve ödeme URL’si local payment session kaydına alınır

    Müşteri Shopier ödeme sayfasına yönlendirilir

    Webhook veya API recheck ile ödeme doğrulanır

    Kendi merkezi paid handler akışınız çalışır
    Bu yapı sayesinde:
    • Sepette tek ürün varsa ürün adıyla ödeme ürünü oluşturabilirsiniz.
    • Birden fazla ürün varsa sepet özetiyle tek bir ödeme ürünü oluşturabilirsiniz.
    • Ürün, tutar, referans ve ödeme URL’sini kendi payment session yapınızda saklayabilirsiniz.
    • Ödeme gerçekten doğrulanmadan siparişinizi paid durumuna almazsınız.
    • Stok, e-posta, sepet temizleme, kargo ve ERP tetiklerini kendi mevcut akışınızda güvenle yönetirsiniz.
    Kurulum

    composer require mebularts/shopier
    Temel kullanım:
    <?php
    
    require __DIR__ . '/vendor/autoload.php';
    
    use Mebularts\Shopier\Shopier;
    
    $shopier = Shopier::fromEnv();
    
    $balance = $shopier->balance()->get();
    
    foreach ($balance->items as $item) {
    echo $item->currency . ': ' . $item->amount . PHP_EOL;
    }
    Dinamik Checkout Örneği

    use Mebularts\Shopier\Checkout\CartItemData;
    use Mebularts\Shopier\Checkout\DynamicProductCheckoutRequest;
    use Mebularts\Shopier\Support\Money;
    
    $result = $shopier->checkout()->createDynamicProduct(
    new DynamicProductCheckoutRequest(
    reference: 'ORD-EXAMPLE-1001',
    total: Money::from('1299.90', 'TRY'),
    items: [
    new CartItemData(
    title: 'Sample T-Shirt',
    quantity: 1,
    unitPrice: Money::from('1299.90', 'TRY'),
    variant: 'Black / XL',
    imageUrl: 'https://example.com/products/sample-tshirt.jpg'
    ),
    ],
    defaultImageUrl: 'https://example.com/assets/default-product.jpg'
    )
    );
    
    // Bu bilgileri kendi payment session yapınızda saklayabilirsiniz:
    // $result->productId
    // $result->redirectUrl
    // $result->expectedAmount
    // $result->expectedCurrency
    
    header('Location: ' . $result->redirectUrl, true, 303);
    exit;
    Dinamik ürünün oluşturulması ödeme alındığı anlamına gelmez. Ödeme sonucu webhook veya API recheck üzerinden doğrulanmalıdır.
    Webhook ve Ödeme Doğrulama

    Webhook geldiğinde paket; uygun yapılandırmada imza doğrulaması veya Shopier API recheck üzerinden güvenli bir sonuç üretir.
    $result = $shopier->webhooks()->receive(
    rawBody: file_get_contents('php://input') ?: '',
    headers: function_exists('getallheaders') ? getallheaders() : [],
    );
    
    if ($result->isVerified() && $result->isPaid()) {
    // Tutar, currency, ürün ID ve sipariş referansını kontrol edin.
    // Ardından kendi merkezi paid handler akışınızı çalıştırın.
    }
    
    http_response_code(200);
    Paket kendi başına sizin veritabanınıza yazmaz, stok düşmez veya e-posta göndermez. Bu akış kurulumunu kendi projenize uygun şekilde uyarlamalısınız.

    Kimler İçin Uygun?
    • Düz PHP ile çalışan e-ticaret projeleri
    • Laravel / Symfony projeleri
    • Hazır e-ticaret scriptleri
    • Özel checkout veya ödeme akışı kullanan siteler
    • Legacy Shopier form/callback yapısından daha düzenli bir API katmanına geçmek isteyen geliştiriciler
    • Shopier ödeme akışını kendi sipariş sistemine bağlamak isteyen ajanslar ve yazılımcılar
    Güvenlik Yaklaşımı
    • Return URL tek başına ödeme kanıtı kabul edilmez.
    • Webhook veya API doğrulaması olmadan local sipariş paid yapılmaz.
    • Token, webhook secret ve müşteri verileri loglara yazdırılmamalıdır.
    • Aynı ödeme bildiriminin stok, mail veya kargo işlemlerini ikinci kez tetiklemesi engellenmelidir.
    • Ödeme doğrulamasında tutar, para birimi, ürün ID ve sipariş referansı eşleştirilmelidir.
    Açık Kaynak ve Bağımsız Proje

    Bu paket ücretsiz ve açık kaynak olarak geliştirilmektedir.
    Mebularts Shopier PHP SDK, Shopier ile resmi ortaklık veya temsilcilik iddiası taşımaz. Bağımsız bir topluluk kütüphanesi olarak geliştirilmiştir.
    GitHub:
    https://github.com/mebularts-dev/shopier
    Yıldız vermeniz, issue açmanız, geri bildirim paylaşmanız ve katkı sağlamanız projenin gelişmesine yardımcı olur.

    Ücretli Kurulum ve Entegrasyon Desteği

    Paket ücretsizdir; ancak mevcut projeye özel kurulum, legacy geçişi, dinamik checkout akışı, webhook kurulumu, ödeme session yapısı, sipariş eşleştirme veya özel ödeme senaryoları için ücretli teknik destek alabilirsiniz.
    İletişim:Teşekkürler.
  • 03-07-2026, 19:08:54
    #2
    Güzel proje, elinize sağlık
  • 03-07-2026, 19:41:22
    #3
    Elinize sağlık