This section introduce delivery providers which are used to manage the delivery processes.
Merchants who sell products need to manage the delivery process: the actual physical transfer of goods from their warehouses to the end customers.
After a confirmed order is created (e.g. from checkout flow), merchant has to ship the goods to the delivery address. The whole set of tasks and procedures from taking goods from warehouse(s) upto the point they are delivered to the customers delivery address is commonly called the "Delivery Process".
Since the "Delivery process" is not part of E-Commerce, Litium Studio does not contain any support by default to manage it. However, two very vital extensions are provided.
- Management of delivery states:
Merchant can keep track of the state a delivery is in, for a given order. For example, to know whether a particular delivery is "Init" (not started yet), "Delivered", "Failed" or "Returned".
This is done by delivery state machine. A simple delivery state machine is provided by default, which the implementation projects can customize and extend.In simple scenarios no modifications might be needed to the default implementation provided!

Default delivery states.
- Integration of delivery providers:
A third party delivery provider can be integrated easily to the Litium Studio. With integrations, merchant can initiate the delivery process for a given delivery from Litium Studio back-office, (or even automate it). Also, once the delivery process is complete, that is goods are delivered, Litium Studio can be automated to collect the payments for a reserved transaction automatically.
Adding a delivery provider
The business logic for contacting third party delivery providers to initiate a delivery process has to be coded into a .ascx file, and placed into the location "\Src\Web\Site\ECommerce\DeliveryProviders\". This .ascx file will not contain any user interface elements, but only the logic that need to initiate the delivery process. (for development, see more >>)
Once you have the .ascx file for your delivery provider in place, you can configure Litium Studio to use the provider from "Control Panel > ECommerce > Delivery Providers > ". Simply add or edit a delivery provider, and in place of settings panel path, put the name of your user control. An screen capture of editing a delivery provider is shown below:

Add delivery methods
Once you have the delivery provider, edit the delivery methods and select the delivery provider for each delivery method.

To initiate the delivery process, go to the deliveries view in Litium Studio ECommerce administration and click the "Send to Distributor" button.

This will select the delivery provider configured for the delivery method of the delivery you have choosen, and will place a call to the custom .ascx file you use for the delivery provider above. Based on how the implementation project have implemented this custom file, and integrated it to the third-party delivery management system, the process of delivering goods will start.
Calculating delivery cost
For a simple fixed delivery cost, simply specify the delivery method cost in ControlPanel>ECommerce>DeliveryMethods.
For adavnced calculations, implementation project need to customize the pricing rules plugins, specifically the DeliveryCostCalculator. Usually, the third party delivery management system or the ERP system need to be called from the DeliveryCostCalculator to find out how much a delivery will cost to the end-customer.
In simple scenarios, where the calculation doesnt require third-party systems, implementation project can put their own logic here.