Connect shipping providers, automate order fulfillment, and track shipments. Learn how to configure carrier credentials, generate labels, and manage COD orders.
★ Introduction to Shipping Hub
The Shipping Hub is your central command for managing fulfillment across multiple shipping carriers. Connect your carrier accounts, automate label generation, and track shipments in real-time.
Multi-carrier support — Connect providers from Egypt, Saudi Arabia, UAE, and international carriers like DHL and FedEx.
Automated labeling — Generate shipping labels (AWB) automatically when orders are created.
COD management — Handle Cash on Delivery amounts with currency rules per provider.
Real-time tracking — Track shipments and sync status changes (Pending, In Transit, Delivered, Cancelled).
Secure credentials — API keys and credentials are encrypted and stored securely per tenant.
Tip: Use the Shipping Hub from the sidebar to access all shipping-related configuration and operations.
1 Supported shipping providers
Keddily supports major shipping providers across MENA and international markets. Click the provider name to visit their official documentation.
Egypt (EG)
Bosta — Modern API-based courier for Egypt and MENA region
Aramex — Leading global courier and logistics company
Copy the credentials and paste them in the Keddily configuration form.
Aramex
Contact Aramex to obtain your shipping account credentials.
You'll receive: Account Number, Username, Password, and PIN code.
Enter these credentials in the Keddily configuration form.
Other providers
For SMSA, Ajex, Fetchr, DHL, FedEx, and others, visit their developer portals or contact their support team to obtain API credentials. The configuration form will show specific field requirements for each provider.
Entering credentials in Keddily
Shipping Hub → Configure (on provider card)
Click Configure on the provider you want to connect.
The configuration form shows dynamic fields based on the provider's schema.
Fill in required fields (marked with *).
For password fields, existing values are masked for security. Leave blank to keep existing credentials.
Set Commission Rate (%) — this is the platform fee for shipping transactions.
Toggle Active to enable this provider for your store.
Click Save Configuration.
…/user/shipping-hub/configure/1
Configure Bosta
Setup Instructions To obtain your Bosta API credentials, log in to your Bosta dashboard and navigate to Settings > API.
API Key *
API Secret *
Webhook URL
Commission Rate (%)
Save Configuration
Figure 2.2 — Provider configuration form
Testing the connection
After saving credentials, the provider card shows a connection status.
Connected — green indicator means credentials are valid.
Not Connected — red indicator means credentials need verification.
Click Test Connection (if available) to verify API access.
If connection fails, double-check your credentials and try again.
Some providers may require additional verification steps like IP whitelisting. Check the provider's documentation for requirements.
3 Creating Shipments & API Integration
Learn how to programmatically create shipments using the Shipping Hub API. This section covers the payload structure, code examples, response handling, and the complete order-to-shipment workflow.
Payload structure
To create a shipment, you need to provide a structured payload containing sender, recipient, package details, COD amount, and order reference. The following fields are required:
Field
Type
Description
sender
Object
Sender information (name, phone, address, city, country)
recipient
Object
Recipient information (name, phone, address, city, country)
Tracking activation — Shipment tracking becomes active in provider's system
Order → Shipment Flow
1
Customer Checkout
↓
2
Order Created
↓
3
Payload Prepared
↓
4
API Call to Provider
↓
5
Label Generated
↓
6
Tracking Active
Figure 3.1 — Order to shipment workflow
Tip: The entire workflow is automated when using the Shipping Hub. Configure your providers once, and the system handles the rest. You can also manually trigger shipment creation from the order details page if needed.
Advanced integration patterns
Multiple providers
For stores shipping to multiple regions, you can implement provider selection logic:
// Select provider based on destination country
$provider = match ($shipmentData['recipient']['country']) {
'EG' => 'bosta',
'SA' => 'smsa',
'AE' => 'fetchr',
default => 'aramex'
};
$adapter = $adapterFactory->getAdapter($provider);
Batch shipments
For bulk order processing, you can create multiple shipments in a loop:
Always implement proper error handling and logging when integrating with shipping APIs. This helps troubleshoot issues and provides visibility into shipment failures.
4 Operations & order fulfillment
Once providers are configured, shipping operations integrate with your order workflow.
Automatic label generation
When a new order is created, the system can automatically generate shipping labels (AWB) if:
A shipping provider is configured and active.
The order has a valid shipping address.
The order payment is confirmed (for COD orders, the COD amount is included).
Orders in Pending status are eligible for label generation.
The system sends shipment data to the configured provider's API.
The provider returns a tracking number and printable label.
The tracking number is saved to the order and displayed in the order details.
Order status updates to Processing when label is generated.
Cash on Delivery (COD) handling
COD orders require special handling for amount collection and currency rules:
COD amount — The order total is sent to the provider as the COD amount to collect.
Currency rules — Some providers only accept COD in specific currencies (e.g., EGP for Egypt providers).
Currency conversion — If your store uses a different currency, the system converts the COD amount to the provider's accepted currency.
COD fees — Some providers charge additional fees for COD orders. These are typically deducted from the collected amount.
Tip: Configure your Multi-Currency settings to ensure proper COD amount conversion for international providers.
Real-time shipment tracking
Track shipments and sync status changes from the provider to your order system:
Status
Description
Pending
Order created, awaiting label generation
Processing
Label generated, shipment picked up by carrier
In Transit
Package is on the way to delivery address
Delivered
Package successfully delivered to customer
Cancelled
Shipment cancelled or returned
Exception
Delivery issue (wrong address, refused, etc.)
Providers send webhook updates when shipment status changes.
Keddily receives these updates and syncs them to your order.
Order status updates automatically based on provider status.
Customers can track their orders using the tracking number on your storefront.
…/all/item/orders/1043
Order #1043
Tracking: BOS-12345678
Label Generated
Picked Up
In Transit
Delivered
Figure 3.1 — Order tracking timeline
Manual label generation
If automatic label generation fails or you need to regenerate:
Open the order details from All Orders.
Click Generate Label in the shipping section.
Select the shipping provider if multiple are available.
The system requests a new label from the provider.
Download or print the label for package attachment.
5 Simulation & manual modes
Test your shipping workflow without live carrier accounts using simulation and manual adapters.
Simulation adapter
The built-in Simulation Adapter lets you test store checkout and label generation without connecting to real carriers:
Testing checkout — Simulate the complete order-to-shipping workflow.
Label generation — Generates mock tracking numbers and labels.
Status updates — Simulates shipment status changes over time.