Kaynak: hafiz.dev
Laravel Cashier ile Stripe’ı entegre ettiniz ve uygulamanız ödeme alıyor. Abonelikler oluşturuluyor, webhook’lar tetikleniyor, subscriptions tablosu doluyor. Her şey çalışıyor.
Ancak bir müşteri iptal için e-posta atıyor. Ya da bu ayki MRR’ni bilmek istiyorsunuz. Ya da birinin ödemesi başarısız oldu ve kimin geciktiğini görmek istiyorsunuz.
Nereye gidiyorsunuz? Yönetim panelinize değil. Cashier burada herhangi bir bilgi sağlamıyor. Stripe dashboard’unu açıyorsunuz, ya da bir tinker komutunu yazıyorsunuz, veya her seferinde geçici bir kaynak oluşturuyorsunuz. Faturalama düzgün çalışıyor ama yönetimi, her şeyi inşa ettiğiniz aracın dışındadır.
İşte bu boşluk, Filament Billing’i inşa etmemin sebebidir. Bu, faturalamanın operatör tarafını Filament panelinize ekleyen ticari bir eklentidir: planlar, abonelikler ve mevcut MRR göstergesi, zaten sahip olduğunuz Cashier tablolarından veri alır.
Cashier’in size sağladıkları ve sağlamadıkları
Cashier’in size sağladıkları ve sağlamadıkları
Cashier gerçekten iyi bir iş çıkarıyor. Stripe API çağrılarını, abonelik yaşam döngüsünü, webhook çözümlemeyi ve proration hesaplamalarını yönetir. Daha önce bununla faturalama kurduysanız (ve eğer kurmadıysanız, Stripe entegrasyon kılavuzum adım adım tüm süreci anlatıyor), zor kısımları hallettiğini bilirsiniz.
Ancak Cashier bir kütüphanedir, bir arayüz değildir. Bir webhook geldiğinde veritabanınıza stripe_status yazar. Bu durumu görebileceğiniz bir ekran vermez. Kodda ->cancel() çağrısı yaptığınızda bir aboneliği iptal eder. Destek personelinize bunu yapmaları için bir buton sunmaz.
Bu yüzden çoğu ekip üç yerden birine düşüyor. Her şey için Stripe dashboard’u açıyorlar, bu da kendi uygulamalarından bağlam değiştirmelerine ve istemedikleri kadar fazla kişiye Stripe erişimi vermelerine neden oluyor. Atıl tinker komutları yazıyorlar, bu sabah 11’de ihtiyacınız olduğunda ve söz dizimini hatırlamadığınızda işe yarıyor. Ya da el ile özel Filament kaynakları oluşturuyorlar, bu ilk başta güzel ama beşinci seferde zorlu bir hal alıyor.
Hepsini deneyimledim. Üçüncü yol, bu eklentinin ne yaptığı; doğru bir şekilde bir kez inşa edildi, her yeni projede yarım inşa edilmek yerine.
Filament Billing’in eklediği özellikler
Filament Billing’in eklediği özellikler
Üç şey, tamamen operatöre yönelik.
Planlar kaynağı: Fatura planlarınızı panel içinde tanımlarsınız. İsim, fiyat, para birimi, arkasındaki politikalar. Bu, sattıklarınız için referans katmanınızdır.
A Subscriptions resource: Cashier abonelik tablolarınızı okur ve bunları düzgün bir Filament listesi olarak gösterir. Her satır, beklediğiniz eylemleri içerir: dönem sonu iptali, hemen iptal, devam etme, değişim. Tinker yok, Stripe dashboard’u yok. Destek personeliniz bir kod veya Stripe girişi gerektirmeden bir iptali yönetebilir.
Bir MRR widget: Gösterge tablonuz için. Aylık tekrarlayan geliri, aktif abone sayısını ve kaç kişinin deneme aşamasında olduğunu gösterir. Bu, planlardan hesaplanan bir rakam, böylece para birimi verileriniziyle eşleşir, sabit bir sembol yerine. Eğer admin panelleri kılavuzumu okuduysanız, bu, faturalama için uygulanmış ölçüm anlayışıdır.
Ayrıca, Stripe webhook durum senkronizasyonu ile abonelik durumlarınızı güncel tutar. Bu kısım, Cashier’in kendi webhook yönetimini üzerinde inşa edildiği için, uygulamanıza normal bir şekilde Stripe webhook’ları bağlı olduğu sürece çalışır.
Bu kimler içindir, kimler için değildir
Bu kimler içindir, kimler için değildir
Aldığınızda iade istemeniz yerine bilmenizi tercih ederim, bu yüzden dürüst kapsamı belirtiyorum.
Bu, operatör tarafı bir araçtır. Faturalamayı yönetmeniz için siz ve ekibiniz içindir. Müşteri tarafında bir ödeme sayfası değil. Müşterileriniz hala aboneliklerini Cashier aracılığıyla oluşturuyor. Filament Billing size bu akışları yönetmek için bir katman sağlar, bunların yerini almaz.
Bu sadece Stripe, Cashier aracılığıyla. Eğer Paddle kullanıyorsanız, şimdilik bu sizin için geçerli değil.
Planlarınızı panelde belirliyorsunuz. Kurulumda Stripe ile otomatik senkronizasyon yok. Bir kez ne sattığınızı giriyorsunuz ve oradan yönetiyorsunuz. (Doğrudan Stripe API’dan plan çekmek, eklemeyi düşündüğüm en olası özellik, ancak olmadan önce şu anki dürüst versiyonu sunmayı tercih ediyorum.)
Filament v5 ve Laravel 11 veya 12 gerektirir, Cashier ile birlikte. Filament v5, esasen Livewire v4 desteği için gönderildi, v4’den işlevsel değişiklik yoktur, bu yüzden eğer son zamanlarda v4 uygulamasındaysanız, güncellemesi hızlıdır. Ne değiştiğini tam olarak öğrenmek istiyorsanız, Filament v5 özetim bunu kapsar.
Filament üzerinde bir Laravel SaaS inşa ediyorsanız ve Cashier ile ödemeler alıyorsanız, size özel bu eklentiyi inşa ettim. Eğer hâlâ fatura sağlayıcıları arasında karar veriyorsanız, Cashier Stripe ile Paddle maliyet karşılaştırmam ilk önce okunmaya değer, çünkü bu eklenti sizi Stripe tarafına bağlı hale getiriyor.
Neden dar bir şekilde gönderdim
Neden dar bir şekilde gönderdim
Daha önce kullanılmayan büyük ve akıllı bir şey inşa etme hatasını yaptım. O yüzden bu, kasıtlı olarak biraz dar. Sadece operatör tarafı. Sadece Stripe. Müşteri ödemesi yok, dunning akışları yok, müşteri kaybı analizleri yok, Paddle yok. Sadece akışları görme, onlara müdahale etme ve MRR’nizi bilme gibi güncel acıları çözen üç parça.
Bu dar olma durumu bir özelliktir. Eklentinin ne söylediğini yapmasını, temiz bir şekilde yüklemesini sağlar ve yarım bitirilmiş işlevselliğin uygulamanıza girmesini engeller. İnsanlar plan senkronizasyonu veya Paddle ya da müşteri portalı isterse, bunlar daha sonra ortaya çıkacak ve alıcıların gerçekten ne istediğini yönlendirecek.
Fiyatlandırma ve edinebilme yönteminiz
Fiyatlandırma ve edinebilme yönteminiz
İki adet bir kerelik seviye: Tek bir proje için €69, sınırsız projeler için €149. Eklentinin kendisi için abonelik veya tekrarlayan ücret yok. Onu satın alıyorsunuz, özel Composer reposuna erişim alıyorsunuz, lisans anahtarınız ile kuruyorsunuz. Anystack üzerinde buradan edinebilirsiniz.
Kurulum, standart Anystack akışıdır: reposunu yapılandırın, lisans bilgilerinizi ekleyin, composer require hafizdev/filament-billing komutunu çalıştırıp kurulum komutunu çalıştırın. Mevcut Cashier kurulumunuzu okur ve panelinize kaynakları ve widget’ı ekler.
Sıkça Sorulan Sorular
Sıkça Sorulan Sorular
Bu, Laravel Cashier’i mi değiştiriyor?
Hayır. Cashier’ın üstünde durur ve tablolarını okur. Stripe için Cashier’in kurulu ve yapılandırılmış olması gerekiyor. Bunu, Cashier’ın hiç sunmadığı yönetici arayüzü olarak düşünün.
Müşterilerim bunu abone olmak veya kendi planlarını yönetmek için kullanabilir mi?
Bu sürümde değil. Sadece operatör tarafı. Müşterileriniz aboneliklerini mevcut Cashier akışları vasıtasıyla oluşturur; bu sizin ve ekibiniz için onları panelden yönetmek içindir.
Paddle ile çalışır mı?
Hayır, şimdilik sadece Stripe. Paddle desteği talebe bağlı, bu yüzden bu sizin için bir engelse, lütfen bana bildirin.
Filament v5’e geçmem gerekiyor mu?
Evet, v5 ile Laravel 11 veya 12. V5, esasen Livewire v4 desteği için var ve v4’den işlevsel bir değişiklik yok, bu yüzden son zamanlarda bir v4 uygulamanız varsa, güncellemek hızlıdır.
Planlarımı Stripe’dan otomatik alacak mı?
Henüz değil. Tek seferlik panelde kimlik bilgilerinizi tanımlıyorsunuz. Stripe API’dan otomatik senkronizasyon, en muhtemel ekleme.
Elde edin veya bana sorun
Elde edin veya bana sorun
Eğer Cashier’ı Filament panelinde çalıştırıyorsanız ve bir aboneliği iptal etmek için Stripe’ı açmaktan sıkıldıysanız, bu eklenti tam da bunu çözüyor. Şu anda Anystack’ta mevcuttur.
Filament ve Stripe ile bir şey inşa ediyor ve bu eklentinin size uyup uymadığını veya neyin eksik olduğunu tartışmak istiyorsanız, benimle iletişime geçin. Her mesajı okuyorum ve alıcı soruları, buranın nereye gideceğini şekillendirmek için önemlidir.
Kaynak: Orijinal Makale


