Shipping in Voxel
Using Product types, you can sell digital and physical products with Voxel. When it comes to physical products, handling shipping is a key and sensitive function.
Using Voxel, you can create products that are sold by you (the platform), or sold by your users (in a marketplace setup).
There are three scenarios to consider
- Default: Your platform creates and sells products and manages shipping
- Marketplace A: Users can become vendors and sell products, while the platform handles all shipping.
- Marketplace B: Users can become vendors and sell products, and each individual vendor handles their own product shipping by creating their shipping zones, defining rates etc.
Setup shipping
From the platform perspective, shipping can be setup in WP-admin → Ecommerce → Shipping
The UI is split into three sections
- Classes
- Zones
- Rates
Shipping Classes
Shipping classes are labels you assign to different products so you can apply different shipping rates to different types of items.
Example:
- Small items → cheaper shipping
- Heavy items → expensive shipping
- Fragile items → special shipping rate

When creating products you can apply a shipping class from the ones you have made available to each product.
Shipping zones
Shipping zones are geographic areas you define to control how much shipping costs and which shipping methods are available for customers based on their location.
A shipping zone can include:
- One or multiple countries
- Individual states or regions in a given country
- Locations based on ZIP/Postal code(s)

Shipping rates
Shipping rates are the specific costs you charge customers for shipping their order.

When creating a shipping rate, you define
- Label
- Shipping zones that this rate is available in
- Shipping type and costs configuration (more details below)
- Add details such as estimated shipping time
- Tax settings
Free shipping
Free Shipping type allows customers to place an order without paying any shipping fee. It can have either no requirements, or minimum order amount for it to become available.

Flat rate shipping
Flat rate shipping provides multiple methods on calculating shipping costs
- Per item: Charge per item/quantity and class
- Per order: Fixed cost regardless of quantity or number of items
- Per class: Use the highest shipping class cost when multiple classes are in cart

Vendor perspective
We mentioned in the beginning, that in a marketplace setup, you choose whether the platform or the vendors themselves handle shipping.
In case of the latter, then each vendor can setup their own shipping settings in front-end.

This option is available after the user has completed Stripe Connect onboarding

Customer perspective
When platform manages all shipping, customer adds products to cart, heads to checkout, provides shipping details and available rates are made available for selection based on their information.

In a marketplace setup, if each vendor is in charge of their own shipping, experience is slightly different.
From the customer perspective, they add products to the cart and are not concerned who is selling those products. That means, products by different vendors can be part of the same checkout session.
However, different vendors provide different shipping rates and deliver to different zones. In such scenario, products are categorized by seller, and customer has to select rate for each group of products.

Order fulfillment
Once customer submits the order, the order status is in Pending state (if manual order approval is enabled).

After approval, the order state is changed to Processing

Once order is shipped, seller can share tracking link with customer

And finally Mark as delivered

Order fulfillment in a marketplace
If each individual vendor is in charge of shipping, and the customer has bought products from multiple vendors on the same session, then Voxel generates
- A master order visible to platform admin only
- Sub orders where products by each seller are contained
This way, each seller can fulfill their part of the order independently from each other
