Everyone involved in e-commerce has a certain idea about the way delivery works. A very vague idea, to be honest.
COVID-19 has shown that many e-stores are not ready to be agile in a situation requiring rapid response. No-contact curbside and in-store pickup have become very sought after shipping methods, though not all Magento stores have managed to set them up, which led to loss of profit.
That is why most vendors feel bewildered when dealing with real-life situations.
In this article, we’re going to discuss real cases from our support experience. So if you are new to delivery issues or if you need a bit of advice on what module to choose, this article is right for you.
Please note that we explain shipping in modules. Nevertheless, the settings are also valid for vanilla Magento.
But first things first. To meet your goals, you need to know the peculiarities of Magento delivery, as well as native Magento shipping features and their limitations.
So there we go.
Magento shipping workflow: introduction
When you place an order in a webshop, you need to choose a delivery option. To ship an order, the store needs the following information from your side.
These are products added to the cart. They may have a different weight or size that define the delivery cost. Sometimes, a product is not something you can touch. For example, it may be a virtual book. It can be stored as a downloadable product in Magento. If so, a customer can download it as a file in their account. Hence, assuming this product doesn’t have a hard copy, it cannot be shipped.
You can also render a virtual product shippable. Just record the file to a disk. In this case, the disk becomes a simple product in Magento. Obviously, this product is shippable, and you can send it in a parcel.
Conclusion: shipping is applicable to deliverable (physical) products. In case your cart contains virtual products only, there should be no Magento Shipping Options section on the checkout page.
In other words, it’s the address to which the order should arrive. The location is very important because the price and delivery options available depend on this. For example, shipping from Paris to London is cheaper than from Paris to Wellington. Note that the destination is not always covered by the delivery service.
As you can see, the delivery cost is always different. It can be estimated on the cart or the checkout page only. That is why it is not usually provided on catalog pages.
Magento shipping options
This feature defines how the order will be shipped. Here a customer is to choose a service provider (DHL, UPS, USPS, webshop delivery team, etc.) and the way to send the order (by air, ground, courier, dropshipping, etc.)
In Magento, service providers are called shipping carriers, and the ways to deliver an order – shipping methods.
The basics are explained, we move on to the actual shipping process in Magento.
Magento 2 built-in shipping functionality
Magento provides multiple shipping methods out of the box:
- Free Shipping
- Flat Rate
- Table Rates
- In-Store Delivery
- Integrations with popular service providers like UPS, USPS, DHL, FedEx.
- Multiple Address Checkout.
Let’s review each of them.
This is quite simple. We are just to set a Magento 2 free shipping Minimum Order Amount (MOA) and specify the countries where the delivery is free of charge. We need to set a Minimum Order Amount and specify the zone of coverage. If the destination is in this zone and the subtotal is equal to or greater than MOA, the new method is shown on the storefront:
In Magento, Free Shipping has its own carrier. It is not connected to any existing service provider. Still, as a store owner, you can send packages in any convenient way
Read a complete guide to Flat Rate Shipping to learn what carriers provide the shipping, how long the shipping take and whether it can save you money.
This shipping method is a bit more complicated, as we have to set a fixed shipping rate for an order or for each purchase in the order. Additionally, you can specify an extra fee.
Just like Free Shipping, Flat Rate is a default Magento setting. It is not assigned to any delivery service provider (e.g. UPS) allowing webstore owners to engage a delivery service they prefer.
This shipping method allows you to set a delivery price depending on a combination of conditions like price, destination, weight, and number of items.
This is the basic functionality that establishes the dependency between the shipping price and destination. Normally, shipping expenses for the nearby locations remain the same. So, the delivery to 221B Baker Street is very likely to cost just as much as to 221A or 210 Baker Street.
Hence, it is handy to group shipping costs into zones. Usually, a zone is specified by using postcodes.
For this method, you will need to create and import CSV files with detailed information.
Finally, you can let your customers pick their order in your offline store. You can make this shipping method free or charge a fee. If you have multiple sales points, customers will be able to choose which one is more convenient for them.
Multiple Address Checkout
By default, Magento allows you to choose one method and one address per order only. The whole order (even if it comprises several products) is treated as one physical unit, which cannot be split. So, you can’t send a part of the order by sea, say, to Madagascar, and the other part by air to Japan. However, in some cases splitting an order is the only reasonable solution, and for this matter, you can use Multiple Address Checkout.
To enable it, Go to Admin panel > Stores > Configuration > Sales> Multishipping Settings:
After you configure the settings, users will see the additional checkout option on the frontend:
To add a custom attribute to the shipping address in Magento 2, you need to develop a custom checkout field. For this, install our extension and do the following:
- Go to the Manage Order Attributes grid and click Add New Order Attribute
- Fill in Attribute Properties.
- To make your field visible, set Show On Checkout Step to Shipping.
- Save the attribute, navigate to the frontend and test your new field.
Delete or hide one of the Magento 2 shipping methods in frontend if you need less of them in the same way.
Syncing Magento 2 with popular shipping carriers
Magento 2 offers out-of-the-box integrations with the popular service providers (UPS, USPS, DHL, FedEx and more).
Here’s how it works: (a) the webstore sends API queries to the carrier and (b) fetches the available shipping options and their cost. When an order is submitted, the carrier will take care of the shipment: they assign tracking number, hire a courier, etc.
These shipping carriers usually deliver parcels according to the pre-set schedule, so your customers are very unlikely to experience a “lost-at-the-post” situation. And this, in its turn, contributes to positive customer relationships with your store.
In offline delivery, the orders are processed and shipped by the store staff independently, and they don’t usually take measures to validate the address. On the contrary, delivery service integrations require a validated address for cost estimation. If the postcode-and-city combination is incorrect, the service provider will not find the destination. Hence, Magento will not show any available shipping methods.
Using these options is quite easy. You only need to connect your webshop with your account. To learn more, please check the relevant user guide.
All in all, it looks like Magento specialists have all the shipping bases covered. But why then users complain about scarce options, limited features, etc.?
In fact, the platform provides basic functionality, but its realization for every store depends on a particular store owner’s needs, which may vary greatly. For instance, you may need Magento 2 default count of the customer group functionality or set a minimum order amount for the customer group in Magento 2. That’s why it makes sense to develop additional modules to cover the issues owners can’t solve with native tools.
Amasty shipping extensions
Below we provide a set of extensions we developed to help our customers ensure seamless deliveries.
This extension is an advanced version of default Magento table rates.
The module creates an additional shipping carrier in Magento. The standard title is Shipping Table Rates, but you can easily change it.
A webshop admin can create an unlimited number of custom shipping methods associated with the carrier:
The rate depends on the destination, weight, size, price, and number of items, or the combination of all these parameters.
Please, check the user guide to see the examples.
Besides, this extension supports alphanumeric postcodes. Our leading support manager provides some advice on configuring shipping table rates in this case.
This module is totally different. It doesn’t add new shipping methods to your Magento store. Instead, it modifies the delivery cost calculated by both Magento 2 and Amasty Shipping Table Rates.
For example, you want to offer free shipping for particular products. This means that the delivery charges will remain unchanged when you add or remove items in question from the cart.
To achieve this, a shipping rule with the following configuration is required.
To activate this rule with a coupon code you need to link the Shipping Rule with a Shopping Cart Rule:
This module offers more flexible restriction options than the previous one. It works in the following way. You set a condition by using the Magento rules interface. When the condition is satisfied, the selected shipping method is not available anymore.
For example, your delivery area is Canada only. If the destination is out of Canada, the purchase can’t be shipped. In this case, you need the following configuration.
So, the restricted shipping method won’t be available.
By contrast, if the order is to be shipped to Canada, this delivery option will appear in the cart and at the checkout again.
There’s another possibility. Some products are banned in, say, California. If this product is in the cart and the destination is in California, there should be no shipping options available.
It’s also possible to disable particular payment methods by using Magento 2 Payment Restrictions.
This plugin combines the 3 plugins we’ve described above: shipping table rates, rules, and restrictions in one solution. You can not only save money but also benefit from the synergetic effect of these modules.
This module disables certain shipping and payment options for customers altering Magento 2 default count of the customer group.
Suppose you have individual and business customers shopping in your webstore, and the latter enjoy free shipping. Meanwhile, individual customers shouldn’t be eligible for that.
With this extension, you’ll easily assign a delivery method to each allowed or banned group. As well as set Magento 2 minimum order amount for the customer group.
This module enables customers to select days and time of delivery. As a store owner, you can improve the delivery schedule by disabling all the unavailable periods from the calendar. All your customers will be notified immediately.
A customer can specify the comfortable schedule: weekday morning (before going to the office), Sunday afternoon, etc. There’s no need to call anyone if you need to schedule an immediate or postponed delivery:
Sometimes you need to calculate the shipping rate considering not only the weight but also the volume of a package. For this, you can calculate the dimensional weight like package length added to its width and height (volume) and then divided by a DIM factor (or rate).
This method allows you to set a very flexible shipping system and minimize costs.
Check out answers on top 3 questions about Dimensional Shipping Weight:
To extend the default Magento in-store delivery method, you can use our extension. It offers advanced features like a store locator widget that you can place on any page of your website.
Improve user experience by allowing them to choose the needed store on the map, specify day and time when they want to pick up the order, check product availability at specific stores.
The plugin helps you make a free shipping option notable, inform users about the amount left until free shipping, and increase the average cheque.
Moreover, you can set different shipping bars for different customer groups and store views, customize the bar design and position on the page.
High shipping costs can lead to an abandonment rate increase. This extension allows your customers to check how much delivery to their destination point will cost before making a purchase, right on the product page:
Also, you can notify users if you don’t ship to the needed area, which in turn will improve customer loyalty.
Default Shipping Method
This functionality is included in our Magento 2 One Step Checkout extension. It allows determining a visitor’s location and suggests the shipping method allowed for this location.
If geo information is not available, the module will use default values. As a result, your customers will see the pre-calculated delivery price and proceed to the checkout immediately. For more information on setting up this extension please check the user guide.
Real-life examples from support team
In this section, I will discuss common use cases reported by our clients as well as our recommendations on addressing them.
The core extension in these examples is Shipping Table Rates. This module offers solutions for a number of cases, and it gets more effective when mixed with other modules. Before you dive in, please read about the most essential patterns of this product.
Proceed with the popular questions about How to…
How to set free delivery for any shipping method?
For this, You can use Magento default Cart Price Rules. This is a default functionality, so please refer to Magento 2 user guide to learn more.
Every rule has a Free Shipping field. It allows shipping the order either with a discount or for free.
Suppose we have a simple shipping method – $10 per kg:
Now we can create a coupon-based cart price rule. In this example, we offer a 70% discount.
When it is set to “For shipment with matching items”, there will be a discount equal to the shipping charge. The order will be sent for free.
If you choose “For matching items only”, it will work as if products from “Actions” tab were absent from the cart.
How to set free shipping for the cheapest delivery only?
In the previous example, we had two delivery options available – $5 and $10. We reduced the delivery charge to zero. In this case, the cost is the same, so the customer can choose the option they like.
When the delivery is free for a customer, the store owner still has to pay for it. Hence, it makes sense to limit the offer by applying the discount to particular methods only.
We will extend the previous example by creating a shipping rule. Flat Rate is cheaper, so our goal is to make only flat rate delivery free.
To achieve this, you have to disable free shipping in the cart price rule and put 0 in the Delivery Cost field:
How to enable different delivery methods with and with no coupons?
In the case above, we reduced the delivery charge for one method. We can also disable all the other options and make this price the only one available.
To achieve this, we use Amasty Shipping Restrictions.
How to allow free shipping for particular products only?
Let’s discuss this with the help of an example.
Now, if I remove orange products from the cart, the shipping cost will remain the same.
How to set an extra charge for fragile products?
Some products are fragile and they need to be treated gently. For a store manager, this means that there are additional delivery expenses. Shipping Rules allows making the shipping cost higher to cover these fees.
How to create rules for particular customers?
Customer Groups is a built-in Magento functionality that classifies customers. Here is the respective user guide.
Magento extensions help to combine this classification with a particular task, for example, setting Cart Price Rules:
It’s possible to define the scope for Shipping Table Rates, Shipping Rules and Restriction Rules in the same way.
How to set Customer Group functionality in Magento 2 Customer Segmentation?
Customer Group is a static entity. Every customer can be assigned to a single group, and a webshop manager can change the group only manually. In its turn, a segment is a dynamic unit: people who have a birthday soon, people who have more than 3 completed orders, people who spent more than $1000, etc.
When we set a rule (whatever the type) in Magento 2 Customer Segmentation, customer attributes and customer segments can be a condition:
Shipping is a critical Magento function. Seemingly simple, it grows more and more complex when applied to a particular store. We hope this comprehensive guide will clear the fog for you, and you’ll be able to resolve the issues you deal with and manage your store efficiently.
If you still have troubles, please contact the support team for further assistance.
Have a few thoughts to share? Drop us a line below!