WooCommerce Canada Post Shipping Rates Plugin



Canada Post Shipping Rates for WooCommerce  allows you to get Canada Post rates with more control over the countries you ship to.


  1. Download usc-wc-shipping-canada-post.zip and upload it to to your blog’s wp-content/plugins directory;
  2. Activate the plugin in your Plugin Admin interface;
  3. Go to WooCommerce -> Settings -> Canada Post and follow the instructions to connect to Canada Post and customize your settings.


The WooCommerce Canada Post Shipping Rates Plugin is a fork of Woothemes’ Canada Post plugin with some improvements:

  1. It does NOT require that you give your credit card number to Canada Post;
  2. It allows you to set country-specific service options;
  3. It allows you to opt to use default service options for every country not in the country list.

No Credit Card required for Canada Post

I was once caught by surprise when using Woothemes’ Canada Post plugin. I installed an update and suddenly I was asked to go to Canada Post to enter my Credit Card information. All the while my customers were unable to place orders. This plugin does NOT involve entering Credit Cards in any way.

Set Country-Specific Service Options

I sell a lot to Brazil, and because of that I wanted to translate the shipping options for Brazilians only. I also wanted to control which International services were available when shipping to that country. With this plugin, the specific countries selected will have each its own services section which you can control however you like.

WooCommerce Canada Post Brazil Selected

WooCommerce Canada Post Brazil Selected

Brazil Services Headline

Brazil Services Headline

WooCommerce Canada Post Custom Brazil Options

Custom Brazil Options

Use Default Services for Everyone Else

In case you decided to have country-specific settings for one or two countries and would like to have blanket settings for everyone else, just tick ‘Use Default’ to get the Default Services list displayed.

WooCommerce Canada Post Use Default Option

WooCommerce Canada Post Use Default Services

WooCommerce Canada Post Default Services Headline

Default Services Headline

eShop Shipping Extension with improved Package Handling

Hi All,

I received a few requests to improve package handling in eShop Shipping Extension and got down to it. Originally, the setup would allow only a single package size for the whole store. Not very handy, I know, so when the request came in, I decided to go all out on version 1.4.

People can now choose between 3 different Package settings:

  1. Global – the original setting, a single package size for the whole site;
  2. Per Product – each product gets assigned a package, regardless of its options;
  3. Per Product Option – assign packages for each product option.

The concept of Package classes was added – in the Admin panel, create the package information you will be using in your store. (Click on the images to see them larger.)

Package Options for eShop Shipping Extension

New features in version 1.4

Once you have your package classes set up, you’ll be able to access them in the eShop Product Entry Box. The location of the fields depends on the option selected in the eSE Settings screen.

Using Per Product settings, the form is placed right under the “Stock Available” field. Note that the Product Class is mandatory in this mode, so if you go in to the product, you won’t be able to set “Stock Available” to true unless you set a Package Class. For products that already existed before setting up Package Classes, the system will fall back to “Global” (default) functionality.

Package Class field in Product Entry (Per Product mode)

Package Class field in Product Entry (Per Product mode)

In Per Product Option mode, the Package Class field gets moved into the Product Options table. Again, the Package Class is mandatory when an Option Name is set.

Package Class field in Product Entry (Per Product Option mode)

Package Class field in Product Entry (Per Product Option mode)

In both Product and Product Options modes, the product dimensions of the items in the cart are processed before calling the rates, as if they were actual boxes inside one big box.


Adding Advanced Packaging was a huge challenge. Not only for me, but for everyone that ever tried to systematically fit several packages into a box, optimizing space as much as possible. There is a lot of math and logic involved, and from all the research I did, I found out that there is no optimal solution. The best anyone can get is “good enough”. Therefore, please be advised that quotes rendered with this plugin may be slightly different from the actual price charged by the courier.

Check out Wikipedia for Knapsack Problem and the Bin Packing Problem if you’d like to know more. For the time being, my tests rendered correct values from the Courier companies, but there are bound to be cases where there will be a difference in quotes. Any such cases will be investigated and the code adjusted.


You can get your copy of eShop Shipping Extension v1.4 v2.4* from WordPress.org.

* v1.4 has come and gone. All versions since 1.4 contain its changes.

For more information on eShop Shipping Extension and the couriers it supports, check out the product page.


For bug reports, please use the forum.

eShop Shipping Extension for WordPress

eShop Shipping Extension

Update: v2.0 is now available, allowing the use of multiple shipping vendors at the same time.

Replace eShop’s default shipping methods with live calls to Canada Post, Correios*, UPS*, and USPS*.
* See Extension Modules below.

eShop Shipping Extension framework overrides eShop’s default shipping methods, interacting directly with Canada Post for real-time shipping rates and services.

Other services such as Fedex, and DHL will be made available soon.

Continue Reading…