shippulse / laravel-bosta
laravel-bosta
Installs: 347
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/shippulse/laravel-bosta
Requires
- illuminate/support: ^11.0||^12.0
- shippulse/shipper: dev-main
This package is not auto-updated.
Last update: 2025-11-12 18:37:13 UTC
README
This package provides a Laravel integration for the Bosta shipping API, enabling you to easily create, track, label, and cancel shipments programmatically. It is designed for e-commerce platforms and businesses that need to automate shipping workflows with Bosta in Egypt.
Installation
Install via Composer:
composer require shippulse/laravel-bosta
ShipmentData Method
use Shippulse\Entry\Account; use Shippulse\Entry\DropOffAddressData; use Shippulse\Entry\PickupAddressData; use Shippulse\Entry\ReceiverData; use Shippulse\Entry\ShipmentData; use Shippulse\Facades\Bosta; $shipment = Bosta::setConfig(new Account('email', 'password'))->createShipment(new ShipmentData( type: 10, cod: 999, receiverData: new ReceiverData( firstName: 'Ahmed', lastName: 'Ali', phone: '01001234567', email: 'ahmed.ali@example.com', ), pickupAddressData: new PickupAddressData( city: 'Cairo', zone: 'Nasr City', districtId: 'aiJudRHeOt', firstLine: '50 Abbas El Akkad Street', buildingNumber: '50', floor: '3', apartment: '10', ), dropOffAddressData: new DropOffAddressData( city: 'Giza', zone: 'Mohandessin', districtId: 'aiJudRHeOt', firstLine: '123 Gameat El Dewal Al Arabeya', ), ));
Methods available on CreateShipmentResource
After calling createShipment, you get an instance of CreateShipmentResource. You can use the following methods:
$shipment->getMessage();- Get the API message$shipment->getShipmentId();- Get the shipment ID$shipment->getTrackingNumber();- Get the tracking number$shipment->getSender();- Get sender info as array$shipment->getCreationSource();- Get creation source$shipment->getState();- Get the shipment state (array)$shipment->toArray();- Get the full response as arrayecho $shipment;- Get the full response as pretty JSON
labelShipment Method
To print or download the shipment label (AWB PDF), use the labelShipment method:
use Shippulse\Entry\Account; use Shippulse\Facades\Bosta; $label = Bosta::setConfig(new Account('email', 'password'))->labelShipment($trackingNumber);
This returns an array with:
url: Public URL to the PDF labelpath: Local storage path to the PDF labeltrackingNumber: The shipment tracking numbersuccess: Boolean statusmessage: API message (if any)
trackShipment Method
To track a shipment and get its current state and details, use the trackShipment method:
use Shippulse\Entry\Account; use Shippulse\Facades\Bosta; $tracking = Bosta::setConfig(new Account('email', 'password'))->trackShipment($trackingNumber);
This returns an instance of TrackShipmentResource with methods:
$tracking->getTrackingNumber();- Get the tracking number$tracking->getState();- Get the shipment state (array)$tracking->getSender();- Get sender info$tracking->getReceiver();- Get receiver info$tracking->getPickupAddress();- Get pickup address$tracking->getDropOffAddress();- Get drop-off address$tracking->getNotes();- Get shipment notes$tracking->getCOD();- Get cash on delivery amount$tracking->getType();- Get shipment type$tracking->getSpecs();- Get shipment specs$tracking->getCreatedAt();- Get creation date$tracking->getUpdatedAt();- Get last update date$tracking->getAttemptCount();- Get number of delivery attempts$tracking->getSLA();- Get SLA info$tracking->toArray();- Get the full response as array
cancelShipment Method
To cancel a shipment, use the cancelShipment method:
use Shippulse\Entry\Account; use Shippulse\Facades\Bosta; $result = Bosta::setConfig(new Account('email', 'password'))->cancelShipment($trackingNumber);
This returns an array with:
trackingNumber: The shipment tracking numbersuccess: Boolean statusmessage: API message (if any)data: Additional API data (if any)
Funding
If you find this package useful and would like to support its development, you can sponsor or contribute to the project.