Introduction
Saddle is a logistics management platform that manages delivery transactions and provides industry solutions for multiple e-commerce sites. Saddle logistics helps in delivery tracking, also provides pick up and drop off tools, back-end tools for dispatch monitoring and reconciliations.
This document serves to guide a user new to saddle on how to set up accounts, users, manage deliveries and other admin functions.
Logistics companies are set up on Saddle and Saddle serves as the system they use to manage their orders, assign deliveries and receive updates.
Saddle Process Flow
1. A merchant (an e-commerce website owner) receives an API to integrate Saddle into their website.
2. Once integration is done, the e-commerce site becomes one of the eligible sites using the Saddle logistics management visible by logistics companies.
3. When an order is made on the e-commerce site, the transaction is sent and logged in Saddle where it becomes available for pick-up and delivery.
4. For delivery, we will provide your dispatch agents with the saddle mobile application.
5. Payment will then be logged into the account of the merchant with proper reconciliation and settlement process in place.
Integration of a Courier Delivery Service
1. Order Fulfilment: The merchant’s e-commerce website feeds into saddle and the logistics company will be able to see orders that are ready to be picked up.
2. Logistic Management: This solution will significantly organize the current e-commerce delivery process by assigning pick-ups to drivers within a certain geographical location.
3. mPOS integration: The mPOS allows the customer the ability to pay on delivery. By integrating mPOS with Saddle, it creates a real time payment notification.
4. Efficiency: The back end of the app allows the logistics company to view delivery progression in real time. The customer is also able to view real time delivery progression.
5. Authorization of funds preauthorized on an ecommerce website: Saddle allows logistics companies deliver for ecommerce clients who have the debit on delivery payment feature on their website. The customer inputs the last four digits of his card on the app to authorize funds release.
Saddle Pre-Integration Checklist
- Item Weight : Products must have weight(kg) for seamless order process.
- Location : Customers website must have States and Local goverment area in Nigeria for pickup & delivery
-
Merchant Information :
- Merchant Name
- Merchant Email Address
- Merchant Website
- Merchant Address
- Merchant Contact Number
- Bank Nanme
- Account Number
- Account Name
- Rate Comparison : This would enable merchant have an insight on rates on saddle and compare to be able to choose 3/4 courier company they would like to work with. A pricing table would be sent.
- FrameWork : The framework in which the site was build on. Wordpress, Opencart, Magento 1/2 and custom-built site.
- Saddle Sign-Up : Information provided would be used to set up Merchant on Saddle so as to generate token which would be needed for a successful integration.
Saddle Integration
Saddle can be integrated via saddle plugin across different platform not limited to Wordpress, Magento 1 & 2, Open Cart and Custom Built Websites.
Actual Integration
The Saddle API endpoints are secured with Bearer /Token Authentication. Each merchant interested in integrating with Saddle needs an account. The username and password of the account is used to request for a token. This token will be used for subsequent API calls.
For every API call, the URL is https://www.saddleng.com/api, an authorization header must be sent alongside the request e.g
Authorization: Bearer <token>
1. Request for a Token
Method : POST
Test API Endpoint : http://staging.saddleng.com/api/token
Live API Endpoint : https://www.saddleng.com/api/token
Body : (Send as json data)
PARAMETER | TYPE | DESCRIPTION | STATUS |
Login | String | The username or email address of the user | Required* |
Passowrd | String | The user's password | Required* |
2. Create Delivery
Method : POST
Test API Endpoint : http://staging.saddleng.com/api/v2/delivery
Live API Endpoint : https://www.saddleng.com/api/v2/delivery
Headers Param : Authorization: Beaer <token>
Body : (Send as json data)
PARAMETER | TYPE | DESCRIPTION | STATUS |
Order_id | String | The unique field that identifies the transaction on your system | Required* |
Item_cost | String | The cost of the item | Required* |
Courier_id | String | The ID of your chosen courier | Required* |
Pickup_handling | String | Mercht-loc: items will be picked up from the merchant. | Required* |
Delivery_handling | String | to_customer: this indicates that the item(s) will be delivered to the customer provided delivery address. | Required* |
merchant_contactname | String | Name of the person to pickup item from | Required* |
merchant_address | String | Address of pickup location | Required* |
merchant_email | String | Email address of the person to be contacted during pickup/td> | Required* |
country | String | Country to pickup item | Required* |
merchant_state | String | State of the contact person | Required* |
merchant_lga | String | LGA is where the pickup address is located e.g Lagos Island | Required* |
merchant_phone | String | Phone number of the contact person sending the goods | Required* |
customer_name | String | Name of the person to recieve the goods | Required* |
customer_address | String | Address of drop off location | Required* |
country | String | Country to drop goods | Require* |
customer_state | String | State of the contact person to recieve the goods | Required* |
customer_lga | String | LGA is where the pickup address is located e.g Lagos Island | Required* |
customer_phone | String | Phone number of the contact person to recieve the goods | Required* |
customer_email | String | Email of the person to recieve the goods | Required* |
Item_name | String | Name of the goods | Required* |
Item_size | String | Size of the goods | Should not be an empty string or NULL but can be 0 |
Item_color | String | Color of the goods | Should not be an empty string but can be 0 or NULL |
Item_quantity | String | Quantity of goods | Required* |
Item_weight | String | Image URL of the goods | Required* |
Item_location | String | Image URL of the goods | Required* |
Fragile | 1 or 0 | 1 -> Fragile, 0 -> Not Fragile | Optional |
Perishable | 1 or 0 | 1 -> Perishable, 0 -> Not Perishable | Optional |
Status | 0 | Status is 0 by default, which means pending | Optional |
POD | 1 or 0 | 1 -> Paid on delivery, 0 -> Not paid on delivery | Required |
Delivery_cost | String | Cost of delivery | Required |
Pre_auth | 1 or 0 | 1 -> Pre auth enabled, 0 -> Pre auth disabled | Optional |
For example:
"{"transaction":{"transaction_id":"Seller9748584","courier_id":"SAfceb761", "orders":{"items":[{ "item_cost":"100", "item_name":"Bag", "item_size":"0", "item_weight":"2", "item_color":"NULL", "item_quantity":5, "image_location":"NULL", "fragile":0, "perishable":0}]}, "pickup_handling":"mercht-loc", "delivery_handling":"to_customer", "pickup":{ "merchant_contactname":"Testing (Do not deliver)", "merchant_phone":"09033333333", "merchant_email":"[email protected]", "merchant_address":"1004 Estate Block B10", "merchant_lga":"Ikorodu", "merchant_state":"Lagos", "country":"Nigeria"}, "delivery":{ "customer_name":"Netplus test", "customer_email":"[email protected]", "customer_phone":"09099999999", "customer_address":"76 Silicon street", "customer_lga":"Ojo", "customer_state":"Lagos", "country":"Nigeria"}, "POD":0, "delivery_cost":1400, "payment_type":3, "pre_auth":0} }"
3. Shipping Price
Method : POST
Test API Endpoint : http://staging.saddleng.com/api/v2/shipping_price
Live API Endpoint : https://www.saddleng.com/api/v2/shipping_price
Headers Param: Authorizaion: Bearer <token>
Body : (Send as json data)
PARAMETER | TYPE | DESCRIPTION | STATUS |
Delivery_state | String | State goods will be delivered to | Required* |
Delivery_lga | String | State LGA goods will be delivered to | Required* |
Pickup_state | String | State goods will be pickedup from | Required* |
Pickup_lga | String | State LGA goods will be picked up from | Required* |
weight | String | Weight to the nearest kilogram (KG) | Required* |
Courier_id | String | Courier company ID | Required* |
For example:
"{"delivery_state": "Lagos", "delivery_lga": "yaba", "pickup_state": "Lagos","pickup_lga": "Victoria Island", "weight":"3", "courier_id":"SA493a731"}"
Authorization: Bearer <token>
5. Appendix
List of couriers and their code
ID | COURIER NAME | COURIER CODE |
1 | UPS | SAf9fac5e |
2 | Courier Plus | SA493a731 |
3 | Skynet | SAa28a764 |
4 | EDCR Courier & Logistic ltd | SAed7352a |
5 | MOVEET | SA98bbd50 |
6 | Deliveryman NG | SA55174e1 |
Plugins
Saddle can be integrated via saddle plugin across different platform not limited to Wordpress, Magento 1 & 2 and Open Cart
Wordpress
Getting Started With Saddle WooCoomerce Plugin
Saddle can be integration on any WordPress/WooCommerce website. You can download the WooCommerce Plugin by
clicking on the download button below.
Installation Guide
NB: All products must have weight else the default weight for each product is 1
1. Copy the file downloaded and paste it inside the wordpress project as shown below:
yourprojectfolder -> wp-content -> plugins -> paste the saddle woocommerce here
2. Go to the admin of your wordpress website as shown below:
Click on WooCommerce -> Settings
3. Clink on General
Make sure you enter a valid Country and State as shown in the image below. Then save changes
3. Click on Shipping -> Saddle
4. Check the Enable Saddle Pricing box to activate saddle and fill in other informations.
TITLE | DESCRIPTION | STATUS |
Enable Saddle Pricing | You can enble saddle on wordpress by checking the box | Required* |
Saddle API Token | The API Token will be generated once your account has being create and will be given to you. Copy and paste the API Token into the field. | Required* |
Environment | You can choose between Live and Test Environment. NB: Use the Test Environment for testing before considering changing to Live Environment |
Required* |
Pickup Type | You can choose between Merchant Location and Courier Location. | Required* |
Pickup Address | Merchant address | Required* |
Pickup Contact Name | Merchant name. | Required* |
Pickup Contact Number | Merchant number. | Required* |
Pickup Email | Merchant email address. | Required* |
5. You can set pickup location for all couriers
Magento 1
Getting Started With Saddle Magento 1 Plugin
Saddle can be integration on any Magento 1 website. You can download the Magento 1 Plugin by clicking on
the download button below.
Installation Guide
NB: All products must have weight
Copy files from the downloaded file to their respective magento folder as shown below:
1. Copy the Netplus folder from
magento-saddle -> app -> code -> community -> Netplus
paste the copiedNetplus folder into
Your project folder -> app -> code -> community -> paste the folder here
2. Copy Netplus_Saddle.xml from
magento-saddle -> app -> etc -> modules -> Netplus_Saddle.xml
paste the copiedNetplus_Saddle.xml into
Your project folder -> app -> etc -> modules -> paste the file here
3. Copy Saddle.xml from
magento-saddle -> app -> design -> frontend -> base -> default -> layout -> Saddle.xml
paste the copiedSaddle.xml into
Your project folder -> app -> design -> frontend -> base -> default -> layout -> paste the file here
4. Copy Saddle folder from
magento-saddle -> app -> design -> frontend -> rwd -> default -> template -> saddle
paste the copiedfolder into
Your project folder -> app -> design -> frontend -> (rwd or your custom theme folder) -> default -> template -> paste the folder here
5. Copy Saddle file from
magento-saddle -> app -> design -> adminhtml -> default -> default -> layout
paste the copiedfile into
Your project folder -> app -> design -> adminhtml -> default -> default -> layout -> paste the file here
6. Copy Saddle folder from
magento-saddle -> js
paste the copiedfolder into
Your project folder -> js ->paste the file here
7. Copy Saddle logo from
magento-saddle -> sking -> frontend -> base -> default -> image
paste the copiedlogo into
Your project folder -> sking -> frontend -> base -> default -> image -> paste the logo here
8. Log in as admin and refresh the cache.
9. Click System -> Cache Management
NB: Log off and log in back, this prevents 404 error for the module configuration
10. Click on System -> Configuration
11. Then click on Shipping Methods
TITLE | DESCRIPTION | STATUS |
Use Saddle Shipping Rates | You can enble saddle on Magento 1 by selecting yes/td> | Required* |
Saddle API Token | The API Token will be generated once your account has being create and will be given to you. Copy and paste the API Token into the field. | Required* |
Production | Select No while running a test. Select YES
when you are ready to go live NB: Use the Test Environment for testing before considering changing to Live Environment |
Required* |
Pickup Type | You can choose between Merchant Location and Courier Location. | Required* |
Pickup Address | Merchant address | Required* |
Pickup Contact Name | Merchant name. | Required* |
Pickup Number | Merchant number. | Required* |
Pickup Email | Merchant email address. | Required* |
For selected countries only | Should be Specific countries | Required* |
Specific countries | Only Nigeria should be selected | Required* |
List of couriers | Set the Pickup State and Lga for the 4 couriers. Leave the other couriers with their default value. | Required* |
Input all your shipping details and choose only 4 couriers. You can do this by setting the pickup state and lga of the choosen courier
Magento 2
Getting Started With Saddle Magento 2 Plugin
Saddle can be integration on any Magento 2 website. You can download the Magento 2 Plugin by clicking on
the download button below.
Installation Guide
NB: All products must have weight
Copy files from the downloaded file to their respective magento folder as shown below:
1. Copy the Netplus folder from
magento2-saddle -> app -> code -> Netplus
paste the copiedNetplus folder into
Your project folder -> app -> code -> paste the folder here
2. Run the following commands:
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deloy -f
php bin/magento indexer:reindex
php bin/magento cache:clean
php bin/magento cache:flush
3. Login into your admin dashboard
Click -> Stores -> Configuration
Click -> Netplus -> Shipment Configuration
NB: Make sure you fill in all fields. You can request for an API TOKEN
Click -> Sales -> Shipment Method
NB: For each Couriers listed, add their pickup state and lga. (Very important. Add at least one. You can only add a maximum of 4)
4. Check your store if you can see the saddle shipping fees as shown below:
Once you see the shipping fees that means you have successfully integrated saddle into your Magento 2 store.
Open Cart
Getting Started With Saddle Opencart Plugin
Saddle can be integration on any Opencart website. You can download the Opencart Plugin by clicking on the
download button below.
Installation Guide
NB: All products must have weight
1. Copy files from the downloaded folder to their respective folders in your opencart installation directory
The folder structure will be the same, so simply locate the same path in your opencart directory
2. Enable the shipping method
Login to Admin -> Extensions -> Extensions -> Under Choose Extensions Type, Select Shipping
You will find Saddle Shipping in the list
3. Click on install
4. After installing click on the edit button
5. Fill the form and the click on the save button at the top right
6. It will redirect you back to the previous page. Click on the edit button again
7. Scroll to the bottom of the page you will see the list of couriers available.
Set the STATE and LGA for the courier service you would like to use.
Click on save button at the top right
You have successfully integrated saddle into your store
7. Go to your store to check.