Download the PHP package yasser-elgammal/logisti-tawseel without Composer
On this page you can find all versions of the php package yasser-elgammal/logisti-tawseel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download yasser-elgammal/logisti-tawseel
More information about yasser-elgammal/logisti-tawseel
Files in yasser-elgammal/logisti-tawseel
Package logisti-tawseel
Short Description Laravel package for Logisti / Tawseel delivery service provider APIs.
License MIT
Informations about the package logisti-tawseel
# Logisti Tawseel Laravel Package
Laravel package for integrating with the Logisti / Tawseel delivery service provider APIs.
API version: This package follows the Integration Guide for Delivery Service Providers, V1.27, dated 30/06/2026.
Features
- Laravel auto-discovery service provider and
Logistifacade. - Fluent builders for drivers, orders, contact information, and order actions.
- Raw gateway methods when you need to send an exact Tawseel payload.
- Lookup API gateway for reading Tawseel lookup values directly.
- Database logging for API requests and responses.
- Typed response wrapper and package exceptions.
- Testbench/PHPUnit test suite for package development.
Requirements
- PHP
^8.0 - Laravel components
^8.0|^9.0|^10.0|^11.0|^12.0|^13.0 - Composer
Installation
Install the package in a Laravel application:
Laravel package auto-discovery registers the service provider and facade. If auto-discovery is disabled, register the provider manually:
Publish the config file:
Run the package migrations:
The migration creates logisti_requests for optional request/response logging.
Configuration
Add the credentials and runtime options to your application .env file:
LOGISTI_ENVIRONMENT selects a URL from config/logisti.php. Use staging while testing and production when you are ready to send live requests.
If your application caches config, clear or rebuild it after changing environment values:
Basic Usage
Use the facade from application code:
You may also inject the manager:
Drivers
Create a driver:
Edit a driver:
Other driver operations:
Driver raw methods:
Orders
Create an order:
Order actions:
Execute an order:
amounts($priceWithoutDelivery, $deliveryPrice, $driverIncome) automatically sets price to priceWithoutDelivery + deliveryPrice.
Order raw methods:
Contact Info
Create or update application contact information:
Other contact info operations:
Lookups
Available lookup methods:
Responses
All gateway calls return YasserElgammal\LogistiTawseel\Http\LogistiResponse, unless exceptions are enabled and the request fails.
data() returns the API data field when present. Otherwise it returns the decoded response body.
Validation
Fluent builders validate payloads before sending. For example:
- Driver
idNumbermust be 10 digits and start with1or2. - Driver
mobilemust be a 10 digit Saudi local mobile number beginning with05. - Order recipient and contact mobile numbers must use the
9665xxxxxxxxformat. - Execute order
pricemust equalpriceWithoutDelivery + deliveryPrice.
Validation failures throw LogistiValidationException.
Error Handling
When LOGISTI_THROW_EXCEPTIONS=true:
- Failed API responses throw
LogistiApiException. - Connection failures throw
LogistiConnectionException. - Builder validation failures throw
LogistiValidationException.
Example:
When LOGISTI_THROW_EXCEPTIONS=false, failed calls return a LogistiResponse object. Check $response->failed() and $response->errorCodes().
Request Logging
When LOGISTI_LOG_REQUESTS=true, the package writes each attempted API request to logisti_requests.
Logged fields include endpoint, method, payload, response body, HTTP status, error codes, success flag, duration, and exception message. Logging is wrapped in a try/catch so logging failures do not break API calls.
Disable logging when you do not want request payloads stored:
Package Structure
Notes About Tawseel Field Names
The Tawseel integration guide includes some typo field names. This package preserves them where needed for API compatibility:
refrenceCodestoretNamecancelationReasonId
storeName() is provided as a readable alias and maps to the documented storetName payload key.
Cancel Order uses referenceCode. The readable cancellationReasonId() method serializes the external key as the documented cancelationReasonId.
License
This package is open-sourced software licensed under the MIT License.
All versions of logisti-tawseel with dependencies
illuminate/contracts Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/database Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/http Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/validation Version ^8.0|^9.0|^10.0|^11.0|^12.0|^13.0