Shipping with Mainfreight in WooCommerce Plugin

Offer shipping rates from the NZ Mainfreight API.

Last Updated

2023-10-22

Version

1.3.0

Automatically calculate shipping rate estimation for New Zealand orders.

Please Note: This plugin is the product of OkRogerThat NZ Limited and is not associated with Mainfreight or WooCommerce. Mainfreight and WooCommerce cannot assist with any support or inquires regarding this product. Any plugin service requests must be directed at OkRogerThat NZ Limited.

The “Shipping with Mainfreight in WooCommerce” plugin extends WooCommerce’s default shipping options to include a new shipping option “Mainfreight Shipping”.

Mainfreight provide their customers with a NZ Shipping estimation API. This plugin lets you offer shipping fees based on the API estimations to your customers, which are pulled directly from the Mainfreight NZ Shipping API.

When a customer enters the shipping destination address, the orders shipping is calculated using the ordered products weight and shipping dimensions, and the estimate provided by the Mainfreight NZ Shipping API.

Mainfreight specifies the Mainfreight FAF (Fuel Adjustment Fee) is subject to change.

Calculate domestic shipping rates for NZ shipments.

Refer to your Mainfreight account for conditions and limitations of the Mainfreight transport API.
New Zealand based shipping source and destinations if region is set to NZ.
Australia based shipping source and destinations if region is set to AU.

Requirements:

Recommended:

  • All WooCommerce products be given a valid shipping weight value in WooCommerce.
  • Testing this plugin in a testing development site prior to use on a production site.

Add a price adjustment (%).

Mainfreight specifies the Mainfreight FAF (Fuel Adjustment Fee) is subject to change. The actual FAF at shipment date may be different to the estimation. The plugin provides the option to add a percentage markup to the shipping rate.

Adjust the shipment calculation based on WooCommerce Shipping Class.

The plugin supports WooCommerce Shipping Classes and allows simple customisation based on the product shipping class.

Current options include:

  • include products with this shipping class in all calculations (default).
  • Include products with this shipping class if other non-combine-only classes in shipment in calculations. (This allows you to disable the Mainfreight shipping method calculation if all items in the cart are better sent using another shipping method. e.g. small add on item products).
  • ignore products with this shipping class. (Calculation will proceed, but the items in this shipping class will not be included in the shipment volume/weight calculation).
  • disable this shipping method if products with this shipping class are included. (This allows you to not offer Mainfreight estimation if specified product shipping classes are included in the cart).

Version History

1.3.0

Release date 22 October 2023

  • Fix: PHP 8.2 compatibility
  • Added: WooCommerce HPOS compatibility
  • Updated: Freemius SDK to 2.5.12
  • Tested up to WordPress 6.4.RC1, WooCommerce 8.2.1, PHP 8.2

1.2.2

Release date 23 July 2023

  • Fix: Corrected cart weight and volume values rounding.
  • Tested up to WooCommerce 7.9.0, WordPress 6.2.2, PHP 8.1

1.2.1

Release date 5 July 2023

  • Updated: Freemius SDK to 2.5.10
  • Tested: up to WordPress 6.2.2

1.2.0

Release date 28 March 2023

  • New: Disables shipping method if a product in cart does not have valid shipping dimensions or cart is 0 volume.
  • Added: Shipping Class settings option – “Allow empty/zero product dimensions” to allow items without volume to be included in shipment if product is in the shipping class.
  • Fix: Remove PHP error on systems using PHP 8.1+ and products with no shipping dimensions set.
  • Tested: up to WordPress 6.2.RC4 and WooCommerce 7.5.1, PHP 8.1

1.1.0

Release date 22 March 2023

  • Added support for WooCommerce store measurements dimensions-units m, cm, mm, in, yd and weight-units kg, g, lbs, oz.
  • Updated Freemius SDK to 2.5.5
  • Tested to WordPress 6.1.1 and WooCommerce 7.5.0

1.0.9

Release date 17 September 2022

  • Changed plugin folder name and text domain.
  • Tested up to WordPress 6.0.2 and WooCommerce 6.9.2
  • Add Freemius distribution management SDK.

1.0.8

Release date 7 August 2022

  • Initial release.

Documentation

Shipping with Mainfreight in WooCommerce plugin documentation

Please Note: This plugin is the product of OkRogerThat NZ Limited and is not associated with Mainfreight or WooCommerce. Mainfreight and WooCommerce cannot assist with any support or inquires regarding this product. Any plugin service requests must be directed at OkRogerThat NZ Limited.

Shipping with Mainfreight in WooCommerce is a premium shipping method which allows you to provide shipping rates based on the estimation provided by the NZ Mainfreight Shipping API.

1. Installation

Note: This plugin requires WooCommerce to be installed to work.

  1. Log into your website wp-admin area and select the ‘Plugins‘ menu item.
  2. Click on the “Add New” button. The “Add Plugins” page displays.
  3. Click on the “Upload Plugin” button and click on the “Choose file” button.
  4. Select your downloaded plugin zip file (e.g. okrtwcmainfreightshipping-latest.zip) and click “Install now“. The plugin will be uploaded into the ‘wp-content/plugins/’ folder of your website.
  5. In the ‘Plugins’ > ‘Installed Plugins’, activate the plugin “Shipping with Mainfreight in WooCommerce”. On activation, the welcome and license activation page displays.
  6. Enter your License key. Your license key is emailed to you when you purchase the plugin license. Check your spam folder if you do not see it.
    Plugin Activation Screenshot
  7. Thats it – you can now configure the plugin. Dismiss the notification of successful activation.

2. Configuration

We recommend testing the plugin and its configuration on a development site before use in production or your live store.

2.1. Mainfreight Shipping Settings and API Account Details

You need to be a Mainfreight customer and request a Mainfreight Account Code and a Mainfreight API Key – available from Mainfreight – Domestic Freight Estimates API.

  1. After installing and activating the plugin go to
    wp-admin > WooCommerce > Settings > Shipping > Mainfreight Shipping.
    The Mainfreight Shipping settings page displays. The settings in this page are applied to all shipping zone Mainfreight Shipping shipping methods in your store.
    OKRTWCMainfreightShipping Plugin Settings Page
  2. (Optional) Adjust the Title of the shipping method displayed in the checkout.
  3. Enter your Mainfreight Account code, also known as the Mainfreight Account Number. e.g. MYSTORE12345
  4. Enter your Mainfreight API Key. This is the Mainfreight Shipping API Key assigned to you be Mainfreight. See Mainfreight – Domestic Freight Estimates API.
  5. (Optional) To apply a Markup Percentage on the estimate value the API returns to cover any variations in costs. e.g. a Markup Precentage value of 5 will mean if a value of $NZ50 is provided by the API, the amount displayed to customers will be $NZ52.50 (Calculation is $NZ50 + (5% x 50) = $NZ52.50)
  6. For normal use we suggest Debugging be turned off. If you experience problems during testing or setup you can enable logging by ticking the logging tick box.

2.2 Check store Tax settings and Shipping Tax

  1. To check your Tax settings on Shipment calculations go to
    wp-admin > WooCommerce > Settings > Tax
  2. In “Shipping tax class” select “Standard”
  3. Save Changes.
  4. Go to Tax > Standard Rates and specify the NZ Tax rate of 15.00% for GST.
  5. Tick the Shipping check box to ensure GST Tax is added to the shipping amount.
    WooCommerce Settings - Tax - Standard Shipping Tax

2.3 Setup or check your WooCommerce Shipping Zones and Shipping Classes

If you haven’t yet set up WooCommerce Shipping refer to WooCommerce Shipping Documentation. Our plugin documentation assumes you have configured WooCommerce Shipping, Shipping Zones, and Product Shipping Classes.

2.4 Check all Products have Shipping Dimensions, Shipping Weight, and Shipping Class

The plugin uses the checkout cart items to calculate the estimated shipping volume and weight to send to the Mainfreight API. All products that can be shipped must have valid shipping dimensions. See WooCommerce Documentation at https://woocommerce.com/document/adding-dimensions-and-weights-to-products-for-shipping/

WooCommerce Product Shipping Dimensions

2.5 Add Mainfreight Shipping method to each Product Shipping Zone

  1. Go to wp-admin > WooCommerce > Settings > Shipping. The Shipping Zones tab will display.
    WooCommerce Shipping Zones
  2. Click on the Name of the Shipping Zone you would like to offer Mainfreight Shipping method to customers. The Shipping Zone details page displays.
  3. Click on “Add Shipping Method“. The Add Shipping dialog displays.
    WooCommerce Shipping Methods - Add Mainfreight Shipping
  4. Select Mainfreight Shipping from the drop down selector and click the “Add shipping method” button. “Mainfreight Shipping” will be listed in the Shipping Zone’s Shipping methods list.
    WooCommerce Shiping Methods with Mainfreight Shipping Method
  5. Click on the “Mainfreight Shipping” method title to configure it. The Mainfreight Shipping Settings dialog window will display.
    WooCommerce Shipping -Mainfreight Shipping Settings
  6. Make sure Enable is ticked to enable this shipping method for the Shipping Zone.
  7. Adjust the Shipping method title displayed at checkout if required.
  8. Select the Mainfreight Region. Note: currently only NZ is supported by Mainfreight and this plugin.
  9. Select the Mainfreight Service Level you will be using for this shipping method. The correct selection is required by the Mainfreight API.
  10. Select the Mainfreight Package Type you will be using for this shipping method. The correct selection is required by the Mainfreight API.
  11. If you would like to send a minimum weight for all shipments to the API, enter the minimum weight in Mainfreight Calculation Minimum Package Weight (kg)
  12. By default, all products in the cart will be included in the volume calculation sent to the Mainfreight API. If you would like to customise this the plugin provides the Shipping class customisation options.
    WooCommerce Shipping Zone Mainfreight Settings
    Current options include:
    • “Include this class in all shipping calculations”
      • This is the default behaviour. All volume of products with this shipping class will be included in all calculations if the shipping dimensions for the product are set.
    • “Include this class if other non-combine-only classes in shipment
      • This behaviour will only include products in this shipping class if another product is in the cart which is in a shipping class assigned to “include this class in all shipping calculations”. This allows you to disable the Mainfreight shipping method calculation if all items in the cart are better sent using another shipping method. e.g. small add on item products that you have configured another shipping method to handle, when they cant be included in a Mainfreight shipment.
    • “Ignore this class in all shipping calculations
      • Calculation will proceed for any other products in the cart, but any products in this shipping class will not be included in the shipment volume/weight calculation.
    • “Disables this shipping method if in shipment”
      • This allows you to not offer Mainfreight estimation (ie. disable it) in the checkout if specified product shipping classes are included in the cart.
  13. Click the “Save changes” button to save any changes made. If you do not want to save changes, click on the close dialog x in the top right corner.

2.6 Test your Store and the Mainfreight Shipping calculation.

Visit your store, add some products to the cart, and walk through the checkout process to check if the Shipping calculations are as expected and match actual shipping costs expected.

Checkout with Mainfreight Shipping amount added

3.0 Frequently Asked Questions

Send us your questions through our Support. We will add FAQs here.

4.0 Troubleshooting

  • Do you have a valid Mainfreight API account?
  • Do all your products have shipping dimensions and weight? (Length x Width x Height)
  • Have you set the correct store shipping dimension unit in WooCommerce ( wp-admin > WooCommerce > Settings > Products > Dimension Unit )
  • Are you using a NZ store address and NZ destination address?
  1. Go to wp-admin > WooCommerce > Settings > Shipping > Mainfreight Shipping
  2. Check your Mainfreight Shipping settings are correct.
  3. Under the setting Debug Log, tick Enable Logging
  4. Click Save Settings
  5. Go to wp-admin > WooCommerce > Settings > Shipping Zones
  6. For each of your shipping Zones, Go into the Zone by clicking on the Zone name
  7. For each shipping zone click on “Mainfreight Shipping”.
    • If you have customised the name select the customised name.
    • Check the settings are correct and save if required.
  8. Go to your store front and add products and the quantity to test to your cart. Proceed to checkout.
  9. Enter a destination delivery address and check if the checkout displays the Mainfreight shipping option you have configured.
  10. Go back to wp-admin > WooCommerce > Settings > Shipping > Mainfreight Shipping and click on “View Log”. The WooCommerce Logs page displays.
  11. Select the log from the drop down for the current date and click the view button.
  12. Check the log says “okrt – calculate_shipping”. You can now view or copy and paste this log into a support email and send it to us if further help is needed.

$79.50

USD Annually.

Sold and delivered via Freemius

What’s included

  • 1-year plugin updates
  • 1-year plugin support
  • 30-day money-back guarantee

Current Version

Version:

1.3.0

Last Updated:

2023-10-22

Countries:

New Zealand