The current version of WC Marketplace (2.2.4) uses Flat Rate concept as the base of shipping cost. Flat Rate concept works on the principle of the fixed price shipping cost that is defined by the website admin. This cost can either simply be a global cost for all products in the site or there can be conditional pricing logics to define the fixed cost.
When we talk about Multivendor websites, we are actually talking about different authors for the products who may be located in different regions of world. A single shipping cost rule for all authors isn’t fair as the shipping costs involved to deliver the orders would be different in each case. Here comes the need to have separate pricing logic for each vendor.
WooCommerce Flat Rate Shipping overview- When it comes to Flat Rate shipping module of WooCommerce, this module allows defining a standard shipping rate per item, per shipping class or per order. To keep it simple, let’s divide the Flat Rate Shipping into two halves:
- The Flat rate cost
- Shipping class cost
Shipping class cost can be defined as an enhancement to the basic Flat Rate cost to charge a flat rate per item OR percentage-based cost OR enforce a minimum fee. Both, percentage based of these methods can use mathematical logic with the default logic of WooCommerce 2.4X. The logic is that a shipping cost can be defined in 3 ways:
- Fixed price for each unit of the product- Logical representation: Cost*[qty]
- A percentage price for the total price of the product(s)- Logical representation: [fee percent=”%” min_fee=”Cost”].
- Fixed + Percentage- Logical representation: Cost*[qty] + [fee percent=”%” min_fee=”Cost”]
To make it even easier, WooCommerce provides an option to set minimum cap on the percentage-based calculations.
WCMp adheres to the guidelines by WooCommerce and applies it to a multi-vendor concept. To be exact, it uses Shipping Class cost as this option meets the basic requirement of multi-vendor shipping i.e. different shipping costs for different products or rather say group of products (a Group here represents products from the same vendor). By default the provision to create shipping class is only with website admin and he can create multiple shipping classes. This has been modified so that users with the role of vendor can also create shipping classes; the only limitation is that they can only create one class.
When an approved vendor adds a shipping cost using the aforementioned logic for his/her products, the plug-in automatically creates a shipping class. For easy reference the name of the shipping class is same as that of the username of the vendor. A vendor needs to assign the created shipping class when they create a product. If they don’t do this, they don’t earn a shipment cost and it is considered that vendor is planning to bear the shipping cost. Please note that a vendor would see only the class that represents them and not the ones created by admin or other vendors.
When an order is placed, the plugin checks 2 fields. One is the Flat Rate cost field set globally for the entire site and the other is the Shipping class assigned to the product. The total shipping cost is the sum of both these costs. In case the purchase includes products from multiple vendors, the total cost is the sum of shipping cost of each class and the flat rate. If any one of them is missing, the concerned user type (vendor or admin) loses the shipment costs involved in that order. Vendors earn the shipping cost as well as the product cost in the form of commission to fulfill and deliver the order.