WooCommerce Flat Rate Shipping

WooCommerce Flat Rate Shipping is a shipping method included in WooCommerce that allows you define a standard rate per item, per shipping class, or per order.

Flat Rate Shipping works with Product Shipping Classes, adding more power and flexibility.

Setup and Configuration

To use this method it must be added to a Shipping Zone.

  • Head to: WooCommerce > Settings > Shipping.
  • Select the Shipping Zone that Flat Rate should be added to and select Edit.
  • In the Shipping Methods box, select Add Shipping Method.
  • Select Flat Rate shipping from the drop-down and then Add Shipping method.
  • Select Edit to then setup your Flat Rate costs appropriately.
    woocommerce flat rate shipping setup
  • Once you’re in the Flat rate settings let’s discuss the options you have:
    • Enter a Title that displays to customers in checkout.
    • Select a Tax status – Define whether or not tax is applied to the flat rate Cost
    • Enter Cost – This is applied to the entire cart. Add additional costs per item to this field. See Advanced Costs below. This can be left blank to disable Flat Rate except where costs are added for Shipping Classes. Note that what you enter here may factor into the overall cost in the Shipping Classes section (see below), unless you leave it blank.
    • Select Save changes

    Advanced Costs

    The Cost field allows you to charge a flat rate per item, a percentage based cost or a minimum fee.

    Available placeholders:

    • [qty] – Number of products in the cart
    • [fee] – An additional fee. This fee has two optional arguments.
      • percent – A percentage based on total order cost.
      • min_fee – A minimum amount. Useful when using percentages.
      • max_fee – A maximum amount. Useful when using percentages.


    • 10 + ( 2 * [qty] ) – A base shipping cost of € 10.00 plus €2.00 for each item in the cart.
    • 20 + [fee percent="10" min_fee="4"] – A base shipping cost of € 20.00 plus 10% of the order total, which is at least € 4.00.

    Shipping Classes

    If you have shipping classes, the interface adds a few more fields:

    WooCommerce Flat Rate Shipping

    There is one cost field for each shipping class.

    • No Shipping Class Cost – Useful if you use the Per Class option below. Otherwise, use the Cost field.
    • Calculation Type – Two options:
      • Per Order – Picks the most expensive option based on shipping costs in the cart.
      • Per Class – Charges shipping for each shipping class.

    How to set up Free Shipping for some products and Flat Rate for the rest

    If you would like to offer Free Shipping on some products but charge a Flat Rate for others, the best way to set this up is using Shipping Classes.

    In this use case, we have set up three shipping classes: Free Shipping, Regular Shipping, and Expedited Shipping.

    Once we have all the products added to their respective shipping classes, we can use the following settings to allow for the products in the Free Shipping class to not charge for shipping, while all the other products do.

    WooCommerce Flat Rate Shipping Setup

    By setting the Free Shipping class cost to use 0 * [qty], no matter how many products from that class are added to the cart, the shipping cost will not increase.

    However, products in the Expedited Shipping class will cost € 20.00 per product from that class (because we’re using 20 * [qty]) while Regular Shipping class products and products that have no shipping class will cost € 10.00 per product to ship (as we’re using 10 * [qty] for each of those options).

    This means that if you have one product from each of our three shipping classes, the total Flat Rate cost will be € 30.00 (€ 20.00 for one Expedited Shipping product, € 10.00 for one Regular Shipping product, and € 0.00 for one Free Shipping product).

    Note: For this to work as described above, it is important to set the Calculation Type to “Per Class: Charge shipping for each shipping class individually” and that the Cost field is left blank.