As promised earlier this week, we are here with a blog detailing how we plan to implement Multi-Vendor taxation & shipping in Quick2Cart. It also includes details of how full-fledged shipping Shipping configuration, including weight-based calculations & 3PD shipping, will be handled. In order to make it completely flexible, we are making all configurations available on a Store level so that a vendor can have an independent configuration for each of his stores ( if you are also using Multi-Store)
With this, we are also starting an exercise to better manage Shipping & taxation in Joomla in general. Just like payments, there are thousands of shipping providers with their own APIs and similar ones for tax calculation are cropping up. We hope that our work in this will lead to Common APIs for Shipping & taxation which can be used by the entire community.
As always, your suggestions are welcome. Do comment on the blog & post any comments you might have.
Some Infrastructural Work
The country, State/Region Manager
Techjoomla has many extensions that need a better system to manage lists of countries, states & cities. As a Company needs to create a common code base to handle this to reduce duplication and wasted time. Customers need the flexibility to choose which countries, states are available. This Manager will let users control what they want on an extension level. This will also have a slight impact on how taxation & shipping is handled.
Countries or States/Regions may be grouped together as a Zone for the ease of defining various rates like taxation & shipping.
Manage Tax Rates
Any Store might have to handle multiple types of taxes. For instance VAT, Service tax, Local Body tax etc. Each tax will have its own rate. The Tax rate manager will let you define these rates for the various Zones you have created.
Tax Profile Manager
The tax applied is a function of an address. This could be the Store Address, the Billing Address or the Shipping address. Depending on these, we have to decide what tax is applied when.
The Tax profile manager lets you define the basis based on which a tax rate is applied. For example, you can create a Tax Profile named as ‘Texas State - Tax Profile’ & then you can add various taxes that are applicable & based on which address. This is used to club together various tax rates that are applicable to specific situations.
You could also, for instance, create a Shipping tax profile which basically is Service tax applicable based on Shipping address.
In some cases, the tax is applicable to the Product price and in some, it might be applicable on the Shipping value charged for Shipping the product to your place. When you create a new product or edit an existing one, you have the choice to choose which tax profile applies on that product price.
Similarly, when you create a Shipping Method, you can choose what tax profile is applicable to the Shipping cost. This is covered in more detail when we look at shipping methods.
Shipping calculations are a function of many factors. The primary among these are-
- The weight of the Product to be shipped
- Shipping Distance
- The volume of the Product (length, breadth, height)
- Type of the Product - Fragile, Perishable etc
- Time to Ship
Secondary parameters that might affect whether shipping is waived or not could be
- Price of Product
- Price of Order per Store
- Quantity of Products
Depending on how a Store handles shipping, it might be using various providers that provide automated Shipping APIs or it might be defining its own rates. In order to handle both these cases, we shall have a plugin which uses our Shipping Management interface to let every store owner define their own rules. Also, we shall be providing 3rd Party plugins that use their APIs to directly provide shipping rates. Each Store will be able to choose which plugins it uses & configure each of them.
Lets first look at the Shipping management tools that the ‘Native’ plugin uses to calculate shipping costs.
You can use the ‘Native’ plugin to calculate shipping costs. Also, we shall be providing 3rd Party plugins that use their APIs to directly provide shipping rates. Each Store will be able to choose which plugins it uses & configure each of them.
You can configure the shipping methods offered by the shipping plugins. You will be able to configure the ‘Native’ plugin and the 3rd Party shipping plugins to define your own methods.
The native plugin offers following options to let you define a shipping method
- Tax Profile to use: Choose which tax profile applies on the shipping cost.
- Range in which to apply the profile (Weight/ Price/Quantity)
- Shipping Basis :
- Weight-based per store item
- Weight-based per store order
- Price based per store item
- Price based per store order
- Quantity based per store item
- Quantity based per store order
After creating your own shipping methods you can define shipping rates as per different zones that you have defined earlier. Each Zone can have its own rate.
Shipping profiles are nothing but the collections of shipping methods available. Each shipping profile will have the following
- Shipping Profile Name: e.g. ‘Texas State - Shipping Profile’
- Available Shipping methods (the ones you created above)
When you create a new product or edit an existing one, you have the choice to choose which shipping profile applies for that product. End Users can choose which the shipping method they prefer from the available list of methods offered by shipping profile that you have selected while creating the product.
This gives an overview of how a flexible Shipping & Taxation system will be developed for Quick2Cart 2.2. Read the Main blog which details all the features that will be introduced in Quick2Cart 2.2