assoft / aras-kargo-laravel
Modern Laravel package for Aras Kargo API integration with advanced caching, logging, and rate limiting features
                                    Fund package maintenance!
                                                                            
                                                                                                                                        Patreon
                                                                                    
                                                                
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 20
Open Issues: 0
pkg:composer/assoft/aras-kargo-laravel
Requires
- php: ^8.1
 - illuminate/cache: ^10.0|^11.0|^12.0
 - illuminate/config: ^10.0|^11.0|^12.0
 - illuminate/log: ^10.0|^11.0|^12.0
 - illuminate/queue: ^10.0|^11.0|^12.0
 - illuminate/support: ^10.0|^11.0|^12.0
 
Requires (Dev)
- mockery/mockery: ^1.6
 - orchestra/testbench: ^9.15
 - pestphp/pest: ^2.36
 
This package is auto-updated.
Last update: 2025-10-28 02:43:26 UTC
README
Modern Laravel package for Aras Kargo API integration with advanced caching, logging, and rate limiting features. Perfect for Laravel 11/12 applications that need to track cargo shipments and manage logistics data.
Özellikler
- ✅ Laravel 11/12 desteği
 - ✅ Modern PHP 8.1+ özellikleri
 - ✅ Cache entegrasyonu
 - ✅ Logging sistemi
 - ✅ Service Provider ve Facade desteği
 - ✅ Configuration management
 - ✅ Exception handling
 - ✅ Type declarations
 
Change Log
- See ChangeLog
 
License
- See ChangeLog
 
Kurulum
Laravel projenizde composer ile kurulum yapın:
composer require assoft/aras-kargo-laravel
Laravel Auto-Discovery
Paket Laravel'in auto-discovery özelliğini destekler. Service Provider ve Facade otomatik olarak yüklenir.
Manuel Kurulum
Eğer auto-discovery devre dışıysa, config/app.php dosyasına ekleyin:
'providers' => [ // ... Assoft\ArasKargo\Providers\ArasKargoServiceProvider::class, ], 'aliases' => [ // ... 'ArasKargo' => Assoft\ArasKargo\Facades\ArasKargo::class, ],
Configuration
Configuration dosyasını publish edin:
php artisan vendor:publish --provider="Assoft\ArasKargo\Providers\ArasKargoServiceProvider" --tag="aras-kargo-config"
.env dosyanıza Aras Kargo bilgilerinizi ekleyin:
ARAS_KARGO_USERNAME=your_username ARAS_KARGO_PASSWORD=your_password ARAS_KARGO_CUSTOMER_CODE=your_customer_code ARAS_KARGO_CACHE_ENABLED=true ARAS_KARGO_LOGGING_ENABLED=true
Kullanım
Facade Kullanımı
use Assoft\ArasKargo\Facades\ArasKargo; // Kargo bilgisi sorgulama $cargo = ArasKargo::getCargoInformation('9023745602734'); // Tarih aralığı sorgulama $cargos = ArasKargo::getCargoBetweenDate('01-01-2024', '31-01-2024');
Service Container Kullanımı
use Assoft\ArasKargo\Contracts\ArasKargoInterface; class CargoController extends Controller { public function __construct( private ArasKargoInterface $arasKargo ) {} public function track(Request $request) { return $this->arasKargo->getCargoInformation($request->tracking_number); } }
Rate Limiting Middleware (Opsiyonel)
Rate limiting middleware'i kullanarak API isteklerini sınırlayabilirsiniz. Varsayılan olarak devre dışıdır.
1. Rate Limiting'i Etkinleştirme
.env dosyasında rate limiting'i etkinleştirin:
ARAS_KARGO_RATE_LIMIT_ENABLED=true ARAS_KARGO_RATE_LIMIT_MAX_ATTEMPTS=60 ARAS_KARGO_RATE_LIMIT_DECAY_MINUTES=1 ARAS_KARGO_RATE_LIMIT_KEY_PREFIX=aras_kargo_rate_limit
2. Middleware Kullanımı
// routes/api.php Route::middleware(['aras-kargo.rate-limit:60,1'])->group(function () { Route::get('/cargo/{trackingNumber}', [CargoController::class, 'track']); }); // Controller'da middleware kullanımı class CargoController extends Controller { public function __construct() { $this->middleware('aras-kargo.rate-limit:30,1'); // 30 istek/dakika } }
3. Config Dosyasından Yönetim
// config/aras-kargo.php 'rate_limit' => [ 'enabled' => env('ARAS_KARGO_RATE_LIMIT_ENABLED', false), // Default: disabled 'max_attempts' => env('ARAS_KARGO_RATE_LIMIT_MAX_ATTEMPTS', 60), 'decay_minutes' => env('ARAS_KARGO_RATE_LIMIT_DECAY_MINUTES', 1), 'key_prefix' => env('ARAS_KARGO_RATE_LIMIT_KEY_PREFIX', 'aras_kargo_rate_limit'), ],
4. Özellikler
- Opsiyonel: Varsayılan olarak devre dışı
 - Config Tabanlı: Tüm ayarlar config dosyasından yönetilebilir
 - Kullanıcı Bazlı: Authenticated kullanıcılar için ayrı limitler
 - IP Bazlı: Anonymous kullanıcılar için IP bazlı limitler
 - Flexible: Middleware parametreleri config değerlerini override edebilir
 
Fonksiyonlar
/** * * @description Bir kargonun durumu hakkında bilgi verir. * @param string Kargo Numarası * */ $aras->getCargoInformation(9023745602734); /** * * @description Belirli bir tarihe göre gönderilen kargoların listesini verir. * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * */ $aras->getCargoMovementDate(date('d-m-Y')); /** * * @description Teslim tarihine göre teslim edilen kargoların listesini verir. * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * */ $aras->getCargoDevileryDate(date('d-m-Y')); /** * * @description İrsaliye tarihine göre teslim edilen kargoların listesini verir. * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * */ $aras->getCargoWaybillDevileryDate(date('d-m-Y')); /** * * @description Henüz teslim edilmemiş, bir nedenle teslimat şubesinde bekleyen kargoların listesini verir. * */ $aras->getCargoUnDevilered(); /** * * @description Belirli bir tarihe göre yönlendirilen kargoların listesini verir. * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * */ $aras->getCargoRedirectDate(date('d-m-Y')); /** * * @description İrsaliye tarihine göre Gidiş dönüş hizmet verilen Geri Dönüşlü kargo * ürünü ile gönderilen kargoların listesini verir * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * */ $aras->getCargoWaybillBackRedirectDate(date('d-m-Y')); /** * * @description Göndericiye iade edilen kargoların listesini verir * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * */ $aras->getCargoSenderReturnDate(date('d-m-Y')); /** * * @description Kargo hareket bilgisini verir * @param int Kargo Numarası * */ $aras->getCargoMovementInformation(9023745602734); /** * * @description Aras Kargoya Ait tüm şube ve şube adres bilgilerini verir. * */ $aras->getAllBranchs(); /** * * @description İki Tarih aralığına göre (İrsaliye Tarihi), kargoların listesini verir. * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * @param string veya int * */ $aras->getCargoWaybillBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y')); /** * * @description İki tarih aralığına göre (İrsaliya Tarihi), kargo listesini verir. * getCargoWaybillBetweenDate'den farklı olarak tahsilatlı kargo bilgilerini de içerir. * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * @param string veya int * */ $aras->getCargoWaybillExtraBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y')); /** * * @description İki Tarih aralığına göre, kargoların devir bilgisini verir. * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * @param string veya int * */ $aras->getCargoTransferBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y')); /** * * @description İki Tarih aralığına göre, kargoların listesini verir. * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * @param string veya int * */ $aras->getCargoBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y')); /** * * @description İki Tarih aralığına gore (İrsaliye Tarihi), kargoların bilgisini verir. * @note string olarak (d-m-Y) veya int olarak unix timestamp kullanılabilir. * @param string veya int * @param string veya int * */ $aras->getCargoWaybillInformationBetweenDate(date('d-m-Y', time() - 86400 * 30) , date('d-m-Y')); /** * * @description Kargo Durumuyla ilgili genel bilgi verir. * Eğer kargo geri dönüşlü ise bu dataset dolu gelir ve geri dönüş teslimat bilgilerini içerir. * Eğer kargo Geri Dönüşlü değilse bu dataset dolu gelir ve kargo teslimat bilgilerini içerir. * Kargonun devir bilgilerini içerir. * Kargo Yönlendirme ve İade Hareketleri ve Nedenlerini içerir * Geri Dönüşlü Kargo Bilgilerini içerir * @param int Kargo Numarası * @return array * */ $aras->getCargoRealInformation(9093773579276); /** * * @description Fatura Bilgilerini Döner * Normal Fatura ve E-Fatura araması yapılabilir. * Fatura No ve Fatura Tipi parametre olarak geçilir. * Normal fatura için 'fatura', EFatura için 'efatura' parametresi geçilir. * @param string Fatura Numarası * @param string Fatura Türü (efatura/fatura) * @return array * */ $aras->getCargoInvoice("AAA201400040405", 'fatura'); /** * * @description Aras kargonun bugün teslim edilen kargo sayısını döner * @return array * */ $aras->getCargoCountToday(); /** * * @description Kampanya kodu bilgilerini döner * @return array * */ $aras->getCampaignCode("KAMPANYAKODU");