furkanmeclis / ptt-kargo
Laravel package for PTT Cargo SOAP API integration
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/furkanmeclis/ptt-kargo
Requires
- php: ^8.1
- illuminate/log: ^11.0|^12.0
- illuminate/support: ^11.0|^12.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.13
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- phpstan/phpstan: ^1.10
README
Laravel package for PTT Cargo SOAP API integration with auto-generated classes from WSDL, retry mechanism, and logging.
Installation
composer require furkanmeclis/ptt-kargo
Configuration
Publish the configuration file:
php artisan vendor:publish --tag="ptt-kargo-config"
Add to your .env:
PTT_KARGO_WSDL=https://pttws.ptt.gov.tr/PttBilgi/services/Sorgu?wsdl PTT_KARGO_USERNAME=your_username PTT_KARGO_PASSWORD=your_password PTT_KARGO_TIMEOUT=30 PTT_KARGO_RETRY_COUNT=3 PTT_KARGO_RETRY_DELAY=500 PTT_KARGO_LOG_ENABLED=true PTT_KARGO_ENVIRONMENT=test
Usage
Basic Example
use FurkanMeclis\PttKargo\Facades\PttKargo; use FurkanMeclis\PttKargo\Data\InputMahalle; use FurkanMeclis\PttKargo\Data\mahalleSorgula; // Create request object $input = new InputMahalle(); $input->setIl_id('34'); // Istanbul $input->setIlce_id('1'); // Example district ID $input->setKullanici(config('ptt-kargo.username')); $input->setSifre(config('ptt-kargo.password')); // Create SOAP request $request = new mahalleSorgula($input); // Call the service method $response = PttKargo::mahalleSorgula($request); // Access response data $mahalleler = $response->getMahalleSorgulaResult();
Alternative: Using the call method
use FurkanMeclis\PttKargo\Facades\PttKargo; use FurkanMeclis\PttKargo\Data\InputMahalle; use FurkanMeclis\PttKargo\Data\mahalleSorgula; $input = new InputMahalle(); $input->setIl_id('34'); $input->setIlce_id('1'); $input->setKullanici(config('ptt-kargo.username')); $input->setSifre(config('ptt-kargo.password')); $request = new mahalleSorgula($input); // Using the call method $response = PttKargo::call('mahalleSorgula', [$request]);
Available Service Methods
The package includes all PTT Kargo SOAP service methods. Some examples:
mahalleSorgula- Query neighborhoodsilceSorgula- Query districtskargomatListesi- Get cargo box listkargoUcret- Calculate cargo priceteslimSure- Get delivery timegonderiDurumAciklamaSorgula- Query shipment status
All methods use the generated classes from FurkanMeclis\PttKargo\Data namespace.
Automatic Features
The package automatically handles:
- Retry logic with exponential backoff (500ms → 1000ms → 2000ms)
- Request/response logging to
storage/logs/ptt-kargo.log - Exception handling (Authentication, Timeout, SOAP errors)
Note: This package includes auto-generated PHP classes from the PTT Kargo WSDL. The generated classes are already included and ready to use.
Testing
composer test
composer analyse
composer format
License
MIT