Part 9: Shipping Offering
Submitted by Matthew Turland on Mon, 09/14/2009 - 07:47This post is the ninth part of a series covering the feature set of the Magento PHP-based e-commerce package. In particular, it will review the shipping features. Several of these features can be configured by going to System - Configuration - Sales - Shipping Methods in the Magento admin area.
Integrated for Real-Time Shipping Rates
A screenshot from the user guide gives you an idea of how this feature looks on the customer side. Widespread use of these services is a likely reason why the Weight attribute is required when entering tangible products (i.e. not virtual or downloadable) into Magento, because shipping cost is generally based on the weight of the item being shipped. This feature is supported for UPS, UPS XML (account rates), FedEx (account rates), USPS and DHL.
If using a specific shipping provider is not a business requirement, I'd recommend using the Magento forums to research the capabilities of modules for any shipping provider you consider in addition to the services and rates they offer. Issues encountered with shipping modules have ranged from installation and configuration issues and issues with SSL to lack of support for multi-package quotes, particular shipping methods, or shipping outside the United States. As such, using a particular Magento shipping module may not be as cut-and-dry as enabling and configuring it.
Shipping to Multiple Addresses in One Order
This feature has an associated section in the user guide as well as a screencast. While this feature is certainly useful, its implementation in Magento is lacking for two reasons.
First, the ability to use the feature is dependent on the customer having an account beforehand. While this isn't a huge hindrance, it's not ideal in terms of usability either. It's puzzling because I see no obvious technical reason for this requirement.
Second — accessing the feature when the default theme is used requires noticing a rather inconspicuous link (which I didn't notice until I watched the screencast) beneath a significantly more conspicuous "Proceed to checkout" button, rather than allowing the user to choose how they want to handle shipping after they opt to check out.
On-site Order Tracking from Customer Accounts
I apparently already discussed this feature without realizing it. I'm guessing the item in Customer Service was referring to the order status within the store, as opposed to its status with the shipping carrier which was discussed in that blog post and should have been discussed here.
Multiple Shipments Per Order
This feature allows for creating multiple shipments when handling orders from the admin area. The user guide has a section on creating new shipments for an order. Go to Sales - Orders, select an order, and click the Ship button on the top right of the form to do so.
Ability to Specify Allowed Destination Countries Per Method
As described in the user guide, all shipping methods can be restricted based on the country of the customer's shipping address. In the Shipping Method configuration area, expand a shipping method section and change Ship to applicable countries to Specific Countries. This will enable the Ship to Specific countries menu to allow you to select the countries to which the shipping method in question should be restricted.
Flat Rate Shipping Per Order
In addition to methods for specific shipping carriers, Magento also offers several options to allow the store administrator to set shipping prices based on various criteria. The user guide describes the flat rate method, one of the options for which is to set a flat shipping rate per order. To do this, go to the Shipping Methods configuration area, expand the Flat Rate section, and set the selection for the Type menu to Per Order. Other options for this method include setting a handling fee, which can be flat or a specified percentage of the order amount.
Flat Rate Shipping Per Item
In the same Type menu used to enable per-order flat rate shipping, there is another option called Per Item. When this is enabled, the flat rate will be multiplied by the number of items in the order to calculate the shipping charge for that order.
Free Shipping
This shipping method is also covered in the user guide and has its own section in the Shipping Methods configuration area. Its availability can be restricted based on a minimum order amount.
Table Rates for Weight and Destination
The user guide covers this method, the configuration for which can be found in the Table rates section of the Shipping Methods configuration area. This method will export or import a CSV-based table in a predefined format containing shipping rates based on both order weight and shipping destination (country, region, and zip code).
Note that to access this feature, you must select a Website-level option (Main Website in a default installation, versus the default option Default config or a Store-level option) from the Current Configuration Scope menu on the top left-hand corner of all System - Configuration pages. Unfortunately, this prevents use of a single global set of shipping rates across multiple websites, instead requiring each website's shipping information to be configured independently.
To enable this particular type of table rate, select Weight vs. Destination from the Condition menu in the configuration section. You may need to uncheck the Use default checkbox next to the menu in order to do this.
Table Rates for Product Sub-totals and Destination
The implementation for this feature is structured in the same way as table rates for weight and destination, but uses the product subtotal instead of the weight for one table dimension. The Price vs. Destination option in the Condition menu corresponds to this type of table rate. This corresponds to product subtotals (i.e. individual product price multiplied by quantity of that product for an order) so that rates can be applied to items within a single order being shipped to multiple addresses.
Table Rates for Number of Items and Destination
Ditto the last section, except that # of Items vs. Destination is the Condition menu option for this table rate type.
Wrap Up
The flexibility with regard to availability of shipping methods and setting rates based on various criteria is good. One feature of the Table Rates shipping method is that quantities for weight, price, and items can be specified as 0 in order to use the table as a list of prices specific to location. I think rate configuration for shipping modules could be improved by adopting a more rules-based approach (in terms of both user interface and functionality) as with the advanced price rules feature for catalog management.
Aside from some issues with modules for particular shipping carriers, Magento makes a good showing in this area in terms of functionality and documentation. To Magento's credit, I agree with the tools guy in the USPS flat rate commercial: in general — and in particular as it relates to development — Shipping is Complicated.

