/laravel-parasut-api

Laravel için yazılmış Paraşüt V4 paketi

Primary LanguagePHPMIT LicenseMIT

Contributors Forks Stargazers Issues MIT License LinkedIn


İstanbul Web Tasarım

Paraşüt API Laravel Package

Laravel Packagist Downloads (custom server)

Laravel için yazılmış Paraşüt V4 API paketi.
Dökümantasyon »

Demo · Buglar · İstekler

Laravel Paraşüt API

Bu proje, Laravel için oluşturulmuş kolayca Paraşüt V4 API ile bağlantı kurmanızı sağlayacak bir paket. Paraşüt API bilgilerinizi .env dosyasına girdikten sonra tekrar tekrar Auth işlemleri ile uğraşmadan kolayca istediğiniz fonksiyonu istediğiniz yerde çalıştırabilirsiniz.

Neden ihtiyaç var?

Laravel için yazılmış hızlı ve basit bir Paraşüt API paketi neredeyse hiç bulunmuyor. OAuth2 işlemlerini otomatik olarak yapan, token süresi dolmuşsa otomatik olarak yeni token alan ve Controller içerisine sadece yapacağınız işlemi yazdıran sade bir pakete ihtiyaç duyuyorduk.

Bug ve Hataları lütfen Issues kısmından bildirin.

(Başa dön)

Başlarken

Paraşüt ile mutlaka iletişime geçip gerekli bilgilerinizi alın. Bu hem deneme hesabı hem de normal hesap için geçerlidir.

Projenize ekleme

Laravel projenizde terminali açarak şu komutu çalıştırın;

composer require theposeidonas/laravel-parasut-api

Eğer gerekiyorsa config dosyasını paylaşmak için şu komutu çalıştırın;

php artisan vendor:publish --tag=parasut-config --force

Eğer Laravel versiyonunuz eskiyse veya Auto-Discovery kapalıysa, her yerde kullanmak için config/app.php dosyasında 'aliases' kısmına şu kodu ekleyin;

'Parasut' => Theposeidonas\LaravelParasutApi\Facades\Parasut::class,

Konfigürasyon

Kullanım için projenize eklemeyi yaptıktan sonra, .env dosyası içerisinde şu satırları ekleyip düzeltmelisiniz;

PARASUT_USERNAME="demo@parasut.com"  // Username
PARASUT_PASSWORD="XXXXXXXXX"  // Password
PARASUT_COMPANY_ID="123123" // Company ID
PARASUT_CLIENT_ID="XXXXXXXXXXXXXXXXX" // Paraşüt Client ID
PARASUT_CLIENT_SECRET="XXXXXXXXXXXXXXXXX" // Paraşüt Client Secret
PARASUT_REDIRECT_URI="urn:ietf:wg:oauth:2.0:oob" // Paraşüt Redirect URI, değiştirmenize gerek yok 

(Başa dön)

Kullanım

Kullanacağınız Controller içerisine paketi dahil etmeniz gerekiyor;

use Theposeidonas\LaravelParasutApi\Facades\Parasut;

Sınıflar

Tüm ayarlamaları ve konfigürasyonlarınızı yaptıktan sonra kullanacağınız Controller içerisinde belirli sınıfları çağırabilirsiniz. Bu sınıflar şu şekilde;

/* Satışlar */
Parasut::Bill();            // Satış faturası           https://apidocs.parasut.com/#tag/SalesInvoices
Parasut::Customer();        // Müşteri                  https://apidocs.parasut.com/#tag/Contacts
        
/* Giderler */      
Parasut::Receipt();         // Fiş - Fatura             https://apidocs.parasut.com/#tag/PurchaseBills
Parasut::Bank();            // Banka giderleri          https://apidocs.parasut.com/#tag/BankFees
Parasut::Salary();          // Maaş giderleri           https://apidocs.parasut.com/#tag/Salaries
Parasut::Tax();             // Vergi giderleri          https://apidocs.parasut.com/#tag/Taxes
Parasut::Supplier();        // Tedarikçi                https://apidocs.parasut.com/#tag/Contacts
Parasut::Employee();        // Çalışan                  https://apidocs.parasut.com/#tag/Employees
    
/* Resmileştirme */ 
Parasut::Inbox();           // E-Fatura Gelen Kutusu    https://apidocs.parasut.com/#tag/EInvoiceInboxes
Parasut::EArchive();        // E-Arşiv                  https://apidocs.parasut.com/#tag/EArchives
Parasut::EBill();           // E-Fatura                 https://apidocs.parasut.com/#tag/EInvoices
Parasut::ESmm();            // E SMM                    https://apidocs.parasut.com/#tag/ESmms
    
/* Nakit */ 
Parasut::Account();         // Kasa ve Banka            https://apidocs.parasut.com/#tag/Accounts
Parasut::Transaction();     // İşlem                    https://apidocs.parasut.com/#tag/Transactions
    
/* Stok */  
Parasut::Product();         // Ürün                     https://apidocs.parasut.com/#tag/Products
Parasut::Warehouse();       // Depo                     https://apidocs.parasut.com/#tag/Warehouses
Parasut::Waybill();         // İrsaliye                 https://apidocs.parasut.com/#tag/ShipmentDocuments
Parasut::StockMovement();   // Stok Hareketi            https://apidocs.parasut.com/#tag/StockMovements

/* Ayarlar */
Parasut::Category();        // Kategori                 https://apidocs.parasut.com/#tag/ItemCategories
Parasut::Tag();             // Etiket                   https://apidocs.parasut.com/#tag/Tags

Bunlar dışında kalan, ürünlerin stok seviyesini kontrol etmek için Parasut::Product()->inventory($id); kullanmanız gerekir.

Fonksiyonlar

Paraşüt içindeki sınıfları kullanırken, https://apidocs.parasut.com sayfasında yer alan fonksiyonları kullanabilirsiniz.

Örneğin;
Müşteri index fonksiyonu için: Parasut::Customer()->index();
Müşteri create fonksiyonu için: Parasut::Customer()->create($data);
Müşteri show fonksiyonu için: Parasut::Customer()->show($id);
Müşteri edit fonksiyonu için: Parasut::Customer()->edit($id, $data);

şeklinde kullanabilirsiniz. Dökümanlarda gösterilen tüm fonksiyonlar mevcuttur.

Veri Yapılandırması

Bir sınıfta create fonksiyonu için veri gönderirken, https://apidocs.parasut.com tarafında bahsedilen şekilde veri göndermelisiniz. Eğer gerekli parametreleri göndermezseniz hata alırsınız.

Ayrıca veriyi JSON olarak değil, Array olarak göndermeniz gereklidir. Paket kendisi JSON'a çevirerek gönderim yapacaktır.

Örnek Müşteri oluşturma;

$customer = [
            'data'=>[
                'type'=>'contacts',
                'attributes'=>[
                    'email'=>'demo@parasut.com',
                    'name'=>'İsim Soyisim',
                    'contact_type'=>'person',
                    'tax_number'=>'11111111111',
                    'account_type'=>'customer'
                ]
            ]
        ];
$response = Parasut::Customer()->create($customer);

Eğer işlemleriniz başarılıysa size şöyle bir Array geri dönecektir;

Array
(
    [success] => true // İşlem başarılı ise true
    [error] => false // İşlem başarısız ise true
    [body] => stdClass Object // Paraşüt dökümanlarında yazan response -> stdClass Object olarak
    [status] => 200 // Response Status
)

Yani geri dönüş yapan işlemi şu şekilde sorgulayabilirsiniz;

if($response['success'])
{
    // İşlem başarılı ise yapılacak şeyler
}
$customer = Parasut::Customer()->show($response['body']->data->id);
echo $customer['body']->data->attributes->name; // Oluşturulan müşterinin ismini görme

(Başa dön)

TODO

Eksikleri ve hataları Issues kısmından yazabilirsiniz.

  • Fonksiyonlar dahil edildi
  • Eksik diğer kısımlar eklendi. (Others)
  • Staging fonksiyonları çıkartıldı.
  • Fonksiyonların ekstra filtreleri dahil edilecek (Query Parameters)

Changelog

V1.0.3

30 Haziran 2024

  • E-Fatura gelen kutusunda parametre olarak VKN eklendi.(safakocamanoglu'na teşekkürler.)

V1.0.2

11 Mart 2024

  • Others altındaki fonksiyonlar eklendi.
    • ApiHome - TrackableJob - Webhook
  • Config dosyasından staging çıkartıldı. (Artık kullanılmıyor)
  • composer.json'a gereklilikler eklendi.

V1.0.1

22 Ocak 2024

  • Satış Faturasında unutulan pay() fonksiyonu eklendi.

V1.0.0

20 Ocak 2024

  • Initial Release

(Başa dön)

Lisanslama

MIT Lisansı altında dağıtılmaktadır. Daha fazla bilgi için 'LICENSE' dosyasına bakın.

(Başa dön)

İletişim

Baran Arda - @theposeidonas - info@baranarda.com

Proje Linki: https://github.com/theposeidonas/laravel-parasut-api

(Başa dön)