Standard Shipping

This article does not address Advanced shipping or the use of calculators.

Note that if using the techniques below you find you need more rows in a table than five, you should consider paying for a Premium account and using Advanced shipping. The same may apply if my conclusion is "can't be done".

Shipping - Where? - What? - How? - Examples

Where Do I Define It?

For Mal's cart, standard shipping is mainly defined by selections made in Cart Setup. Login to the cart, Select the Cart Setup tab, select 'Tax and Shipping' then Shipping. An alternative is to hover over 'Shipping' on the left and click on 'Standard shipping'. If you should want to change between Advanced and Standard shipping, then hover over 'Advanced shipping' and click on 'Global settings'.

You may also need to define a 'units' value for each product, which for example, might be the weight. The other product value is noship, valid in some cases as a way of providing free shipping for a product. Note that this does NOT WORK WITH 'post direct to payment', i.e. use of pay.cfm, or with discountpr.

SHIPPING CALCULATIONS

What Can I Define?

You can say that Shipping is free, is a flat rate per order, is based on the cost of the order (sum of price), or the number of items (sum of qty), or maybe the weight, or some product specific value. You can also say that shipping is free over a certain value.

All of this is done on the Shipping page. Most of these choices relate to numbered Options. For example, Options 4 and 6 relate to charging by the number of items in the order.

Shipping calculations are based on UNITS. If your charges are based on weight, or some other product related factor, you must specify a UNITS value in each product definition. (Described later). If charges are based on order value, or quantity, the calculations are similar, but the UNITS value will be the price or quantity you pass to the cart. (There is also a 'SHIPPING' product value which you can ignore.)

Zones

If the charge varies according to order value, quantity, or weight, you may need to specify several numbers. For this you name a 'zone' and define a table with two columns. The first column, UNITS, refers to the price, the quantity, or the UNITS value passed to the cart, and is specified as a series of increments. The second column is COST. For options 6 and 7 this is an amount. For options 4 and 5 it is a multiplier.

Because the charges may vary by shipping destination or carrier service, or some other reason, you can specify up to 5 different 'zones', each with its own table. The Option number you choose applies to all zones.

If you define more than one zone, then before the customer can pay he must select one from a drop down list in the cart, based on the name/text that you supply to describe each zone. He then clicks on Recalculate and the shipping charge is shown.

Before we look at solutions for different situations, let's look at a zone table.

UNITSCOST
205
104
103
102
The rest1

The first column, UNITS, will correspond to the number of items when used with options 4 or 6. For options 5 or 7 it will be either the UNITS value passed to the cart for each product, or if a 'units=price' box is checked on the shipping page, then it will be the order value.

Using options 6 and 7, the COST column contains shipping charges. I'll assume dollars. In the example, any number of units up to 20 (whether it be quantity, weight, or value) has a shipping cost of $5. Up to 10 more units will cost another $4. And so on. So 50 units will cost 5+4+3+2 = $14, and any greater amount will cost $14+1. That is the maximum charge.

If we are using options 4 or 5, the COST column contains multipliers. Any number of units up to 20 would be multiplied by 5 to get the shipping charge. If units were pounds, 10lbs would cost $50, 20lbs would cost $100. 21lbs would cost 20*$5 + 1*$4 = $104. There is no maximum. 50lbs would cost $190 (20*5 +10*4 +10*3 +10*2), and every extra 1lb would add $1. No maximum.

Summarising we may say that options 6 and 7 have several thresholds at which the shipping charge increases. The charging structure is a series of steps. Options 4 and 5 use a series of slopes with the charge changing continuously.

Units

There are several ways to specify UNITS with a product. Suppose we wish to pass the weight and it is 3.5

  1. If using a hyperlink include &units=3.5
  2. On a single product form <input type="hidden" name="units" value="3.5" />
  3. On a multiple product form <input type="hidden" name="unitsN" value="3.5" /> where N is the product number.
  4. If using productpr (or productprN) the first three fields are description:price:units

The sample table used integers but decimals may be included, and values may be positive or negative.

Often the use of a table is combined with specification on the shipping page of a flat handling fee, added to all orders. You may also specify that shipping is free if the order value exceeds a threshold.

The following descriptions do not cover the calculator interface.

Index to Topics

  1. Free Shipping
    1. Free Shipping - only for some zones
    2. Free Shipping - only for some products
    3. Free Shipping - for orders over a certain value
  2. Flat Fee per Order
    1. Flat Fee per Order - different in each zone
    2. Flat Fee per Order - only for some zones
    3. Flat Fee per Order - but some items have free shipping
    4. Flat Fee per Order - free shipping for order values over a threshold
    5. Flat Fee per Order - free shipping for item quantity over a threshold
    6. Flat Fee per Order - only some zones have free shipping for order values over a threshold
  3. Fixed cost (same) per item
    1. Fixed cost per item - minimum charge
    2. Fixed cost per item - maximum charge
    3. Fixed cost per item - except some free items
    4. Fixed cost per item - for one zone only
    5. Fixed cost per item - free shipping for order values over a threshold - for some zones only
    6. Fixed cost per item - free shipping for item quantity over a threshold
  4. Charging by number of items
    1. Charging by number of items - some free items
    2. Charging by number of items- cost increases at thresholds
      1. Charging by number of items - minimum charge
      2. Charging by number of items - minimum charge but some items have free shipping
      3. Charging by number of items - maximum charge
      4. Charging by number of items - free shipping for order values over a threshold - for some zones only
      5. Charging by number of items - free shipping for item quantity over a threshold
    3. Charging by number of items - cost increases with each extra item
      1. Charging by number of items - minimum charge
      2. Charging by number of items - minimum charge varies by zone
      3. Charging by number of items - minimum charge but some items have free shipping
      4. Charging by number of items - maximum charge
      5. Charging by number of items - free shipping for order values over a threshold - for some zones only
      6. Charging by number of items - free shipping for item quantity over a threshold
  5. Charging by total order value
    1. Charging by total order value - some free items
    2. Charging by total order value - cost increases at thresholds
      1. Charging by total order value - minimum charge
      2. Charging by total order value - maximum charge
      3. Charging by total order value - free shipping for order value over threshold - for some zones
      4. Charging by total order value - free shipping for order quantity over threshold
    3. Charging by total order value - cost increases with each extra item
      1. Charging by total order value - minimum charge
      2. Charging by total order value - minimum charge varies by zone
      3. Charging by total order value - maximum charge
      4. Charging by total order value - free shipping for order value over threshold - for some zones
      5. Charging by total order value - free shipping for order quantity over threshold
  6. Charging by total weight or other product value
    1. Charging by total weight or other product value - some free items
    2. Charging by total weight or other product value - cost increases at thresholds
      1. Charging by total weight or other product value - minimum charge
      2. Charging by total weight or other product value - maximum charge
      3. Charging by total weight or other product value - free shipping over order value threshold - for some zones
    3. Charging by total weight or other product value - cost increases with each extra item
      1. Charging by total weight or other product value - minimum charge
      2. Charging by total weight or other product value - minimum charge varies by zone
      3. Charging by total weight or other product value - maximum charge
      4. Charging by total weight or other product value - free shipping over order value threshold - for some zones

Shipping - How?

  1. Free Shipping

    Check 'No shipping' on the cart setup shipping customization page. See relevant heading if it will apply only to some zones.

    There is a separate article on Free shipping.

    1. Free Shipping - only for some zones

      See the 'free shipping' heading in the relevant section

    2. Free Shipping - only for some products

      This is achieved by making the units value 0 for those products.

      If the order value is being used as the total units value (options 3, 5, or 7 with the units=price box checked), then you can specify for the 'free shipping' product &noship=1 in a link or name="noship" value="1" for a form. In the latter case when using addmulti.cfm add the product's numeric suffix, e.g. name="noship2". Using noship avoids having to define units values for all products, but does not work with discounbtpr, or use of pay.cfm.

      If you are using option 2, 4, or 6 where the item count is the units total, you must change to option 3, 5 or 7 and not check the units=price box. Products to be included in the shipping calculation will need a units value of 1. Those to have free shipping should have a units value defined as (or defaulted to ) 0. The shipping calculation is then similar to that for options 2, 4, and 6 as the units total matches the item count but with free shipping items ignored. See Charging by total weight or other product value below.

    3. Free Shipping - for orders over a certain value

      Specify this near the start of the shipping customization page. See relevant heading if it is to apply only in some zones.

  2. Flat Fee per Order

    Check option 1 and specify the amount.

    1. Flat Fee per order - different in each zone

      Options 4 or 6. For a zone with flat fee of 5, specify

      UnitsCost
      15

      Options 5 and 7 could also be used in this case, either with the units=price box checked or by passing products' units values to the cart.

    2. Flat Fee per Order - only for some zones

      See above for the flat fee table, specifying option 4-7 as recommended below for the other zones.

    3. Flat Fee per Order - but some items have free shipping

      You may want this if some items are downloadable. Same one line table as before. Option 5 (or 7) and specify noship in the definition of any 'free shipping' products.

    4. Flat Fee per Order - free shipping for order values over a threshold

      Specify on shipping customization page.


    5. Flat Fee per Order - free shipping for item quantity over threshold

      Option 7, without checking the units=price box. Set units to 1 for all products.

      If the flat fee is 5, waived for orders of over 20 items ..

      UnitsCost
      15
      190
      1-5
    6. Flat Fee per Order - only some zones have free shipping for order values over a threshold

      This has to be built into the zone tables. Use options 5 or 7 with the units=price box checked. The last line of the table should reset the total charge to zero. If using option 5 the following example provides for a flat fee of $5, waived when the order value exceeds $100:

      UnitsCost
      15
      990
      0.1-50
    7. If using option 7 the following example provides for a flat fee of $5, waived when the order value exceeds $100:

      UnitsCost
      1005
      1-5

  3. Fixed cost (same) per item

    Option 2. Specify the 'Shipping cost per item'.

    1. Fixed cost per item - minimum charge

      Option 4. The COST column contains multipliers. If the cost per item is 1.50 and the minimum charge $3.30, then:

      UnitsCost
      13.30 the minimum
      1.20 no more until we get to 2.2 units (i.e. $3.30)
      rest1.50 then at standard rate

    2. Fixed cost per item - maximum charge

      Option 4. The COST column contains multipliers. If the cost per item is 1.50 and the maximum charge $10.20, then:

      UnitsCost
      6.81.50

      Combined with the minimum charge, that would be:

      UnitsCost
      13.30 the minimum
      1.20 no more until we get to 2.2 units (i.e. $3.30)
      4.61.50 then at standard rate until maximum

    3. Fixed cost per item - except some free items

      As above but switch to option 5 and set units=0 for free items, units=1 for the rest. This is equivalent to using option 4 and ignoring some items.

    4. Fixed cost per item - for one zone only

      We've seen how to do this with option 4. Other zones could have tables that use the total quantity.

    5. Fixed cost per item - free shipping over amount - for one zone only

      Can't be done. We need the total value but units represents quantity. May be possible if every product has the same price.

    6. Fixed cost per item - free shipping for item quantity over threshold

      Option 5. If the cost per item is 2, waived for orders of over 20 items ..

      UnitsCost
      202
      1-40

  4. Charging by number of items

    Normally using option 4 or 6 here. Option 6 has steps at which the shipping cost changes. Using option 4 it changes with each extra item.

    1. Charging by number of items - some free items

      This variation forces a change to options 5 or 7, with units set to 0 for 'free shipping' items and set to 1 for the rest. The same tables would be used.

    2. Charging by number of items - cost increases at thresholds

      Option tables contain up to five rows. Option 6, the COST column contains amounts.

      UnitsCost
      42
      101.80
      101.60
      101.40
      The rest1

      Shipping for 1, 2, 3, or 4, items is the same amount. 2. Then there is the first step. Up to 10 more cost another 1.80. 34 (the sum of the UNITS column) would cost 6.80 (2+1.80+1.60+1.40). ANY quantity over 34 would cost 7.80.

      1. Charging by number of items - minimum charge

        Using option 6 this will normally be defined by the first line in the table.

      2. Charging by number of items - minimum charge but some items have free shipping

        If items ordered have free shipping, they must be omitted from the quantity. We must change from option 6 to option 7 and set units to 0 for 'free shipping' products and 1 for the rest.

      3. Charging by number of items - maximum charge

        Using option 6 (or 7) we simply define the table so that the COST column values sum to the maximum required. In the previous table the total was 7.80.

      4. Charging by number of items - free shipping over order value threshold - for some zones only

        Can't be done. We need order value but units is the quantity. May be possible if every product has the same price.

      5. Charging by number of items - free shipping over quantity threshold

        Option 6 (or 7 as above). Make the total of the four UNITS values equal to the threshold. Line 5, The rest, should negate the charges. The example has a threshold of 34.

        UnitsCost
        42
        101.80
        101.60
        101.40
        The rest-6.80
    3. Charging by number of items - cost increases with each extra item

      Now we use option 4.

      UnitsCost
      40.5
      100.18
      100.16
      100.14
      The rest0.1

      The COST column contains multipliers. The shipping charge for 1 unit would be 0.5, for 2 it's 1. For 3 the charge is 1.5 and for 4 it is 2. For this quantity the price is the same as using option 6 and the previous table.

      A significant difference (from option 6) is that the value of 0.1 in the final line is a multiplier. There is no maximum value. 0.1 is added for EVERY additional unit over 34.

      1. Charging by number of items - minimum charge

        If we wanted a minimum of 2 we could specify a flat handling fee of 2 on the shipping customization page, and change the table, setting the first multiplier to 0.

        UnitsCost
        40
        100.18
        100.16
        100.14
        The rest0.1
      2. Charging by number of items - minimum charge varies by zone

        Where the minimum varies by zone, the Flat Handling Fee cannot be used to specify the different minimum values. Using the same example without a flat handling fee, we achieve the minimum with:

        UnitsCost
        12
        30
        100.18
        100.16
        The rest.14

        The first unit is charged at the level to cover up to 4 items. This change uses another row of our table leaving a problem. It often happens that one runs out of bands or steps, forcing us to combine some.

      3. Charging by number of items - minimum charge but some items have free shipping

        This needs a change from option 4 to option 5. 'Free shipping' products must have units set to 0, and the rest have units set to 1. This is equivalent to option 4 but omitting some items from the 'quantity'.

      4. Charging by number of items - maximum charge

        This has to be achieved using the first four rows only. Anything in the fifth will apply ad infinitum.

      5. Charging by number of items - free shipping over order value threshold - for some zones only

        Can't be done. We need order value but units is the quantity. May be possible if every product has the same price.

      6. Charging by number of items - free shipping over quantity threshold

        Option 6 (or 7 if some items have free shipping as above). Make the total of the first three UNITS values equal to the threshold. Row 4 should negate the charges. The example has free shipping for orders over 24 total items.

        UnitsCost
        40.5
        100.18
        100.16
        1-5.40
  5. Charging by total order value

    Here we use options 5 and 7 and usually check the units=price box. This means that the price is used as the units value and we do not have to specify units for each product. Option 7 has steps at which the shipping cost changes. Using option 5 it changes with each extra unit.

    1. Charging by total order value - some free items

      Two approaches here. If discountpr is not used for the free shipping items we can simply add noship to their definitions.

      If discountpr is used we need to set units for free products to 0 and base shipping on the units passed to the cart. For all other products we set units to the actual price. Therefore we must not check the units=price box.

    2. Charging by total order value - cost increases at thresholds

      Option 7 provides steps in the same way as option 6. The items in the COST column are amounts. The shipping charge is the sum of COST in the relevant lines.

      UnitsCost
      106.85
      101.50
      101.25
      101
      The rest0.9

      Shipping for 1 to 10 units is the same amount. 6.85. Then there is the first step. Up to 10 more cost another 1.50. 40 (the sum of the UNITS column) would cost 10.60 (6.85+1.50+1.25+1). ANY quantity over 40 would cost 11.50.

      1. Charging by total order value - minimum charge

        Using option 7, the first line of the table provides a minimum charge.

      2. Charging by total order value - maximum charge

        This is the sum of the 5 COSTS in the table.

      3. Charging by total order value - free shipping over order value threshold - for some zones

        The total of the four units values should equal the threshold. The fifth row cost should be negative and equal to the sum of the four COST values.

        Note however that if some items have free shipping, they will not be included in the threshold.

        UnitsCost
        106.85
        101.50
        101.25
        51
        The rest-10.60

        If the free shipping order value threshold is 35, shipping at that value will be 6.85+1.50+1.25+1 = 10.60. We put this as a negative value in the fifth row.

      4. Charging by total order value - free shipping over item quantity threshold

        Can't be done. Probably wouldn't want to!

    3. Charging by total order value - cost increases with each extra item

      This uses option 5 where the COST column contains multipliers. A simple 5% could be done using option 3 but with option 5 it just needs

      UnitsCost
      The rest0.05

      If the percentage varies with the amount, the table might be

      UnitsCost
      100.7
      100.15
      100.12
      100.10
      The rest0.09

      An order value of 6 would have a shipping cost of 4.20 (6*0.70). 40 will cost 10.70 (10*0.7+10*0.15+10*0.12+10*0.1). 50 will cost 11.60. There is no limit. Every additional 1 of order value adds 0.09 to shipping.

      1. Charging by total order value - minimum charge

        We can specify a minimum in the Shipping Customization page as a flat handling fee. Suppose it is 5. The two previous tables would need adjustment. In the first we charge 5 as the flat handling fee, then no more until the order value exceeds 100.

        UnitsCost
        1000
        The rest0.05

        In the second we make adjustments. The answers may be 0.10 different from the earlier example (does it matter - if so we can use decimal units) and we have one fewer useful row in our table.

        UnitsCost
        70
        30.70
        100.15
        100.12
        The rest0.09

      2. Charging by total order value - minimum charge varies by zone

        This time we have to implement using the table.

        UnitsCost
        15
        60
        30.7
        100.15
        The rest0.10

        Again, we have to make compromises. All I'm trying to show is how it might be done!

      3. Charging by total order value - maximum charge

        If we use the fifth row there will not be a maximum. Therefore the maximum is achieved for the order value that is the sum of the UNITS column.

      4. Charging by total order value - free shipping over order value threshold - for some zones only

        As above, we have to achieve our objective without using the fifth row.

        The total of the units in the first three rows should be the threshold. The fourth row then subtracts the result so far.

        Note however that if some items have free shipping, they will not be included in the threshold.

        UnitsCost
        100.7
        100.15
        50.12
        0.1-91

        Suppose the threshold for free shipping is 25. The third row units value brings the total to that number. Total shipping for three rows is 10*0.7 + 10*0.15 + 5*0.12 = 9.10. When we go ten cents over $25, the shipping charge is eliminated by subtracting 0.1*91.

      5. Charging by total order value - free shipping over order quantity threshold

        Can't be done. Probably wouldn't want to!

  6. Charging by total weight or other product value

    Here we again use options 5 and 7, with the units values passed to the cart. When using weight, it is sometimes better to use pounds and decimals rather than to specify integral ounces. This is because we are limited to two decimal places in the COST column.

    1. Charging by total weight or other product value - some free items

      If some items have free shipping, their units value will be 0. Values for other items may be 1 (if using quantity), price (if using order value), or something else such as weight.

    2. Charging by total weight or other product value - cost increases at thresholds

      We use option 7. The items in the COST column are amounts. The shipping charge is the sum of COST in the relevant lines.

      UnitsCost
      0.253.85
      0.251.00
      0.250.50
      0.250.50

      This cart expects a maximum order weight of one pound, or kilo, or whatever.

      1. Charging by total weight or other product value - minimum charge

        The first line specifies a minimum charge of 3.85.

      2. Charging by total weight or other product value - maximum charge

        The maximum shipping charge is 5.85. Adding a fifth row would change the maximum but there would still be one.

      3. Charging by total weight or other product value - free shipping above order value threshold - for some zones

        Can't be done unless units represents the order value.

    3. Charging by total weight or other product value - cost increases with each extra item

      We use option 5. The items in the COST column are multipliers.

      UnitsCost
      160.25
      800.15
      800.10
      800.05
      The rest0.01

      Perhaps the units are ounces. The first pound will cost 4 (16*0.25). Up to 5lbs more will cost 0.15 per ounce. 5lbs costs 13.60 (16*0.25 + 64*0.15). There is no limit.

      1. Charging by total weight or other product value - minimum charge

        In the case above, we might want a minimum charge of, say, $3. Specify a flat handling fee of $3 on the shipping page.

        UnitsCost
        120
        40.25
        800.15
        800.10
        The rest0.05

        The minimum charge of $3 corresponds to 12 units (perhaps ounces), so the first two rows change. We don't increase the charge until after the first 12 units. This requirement uses two rows so we have to compromise in the rest of the table.


      2. Charging by total weight or other product value - minimum charge varies by zone

        As the minimum varies by zone we cannot use a flat handling fee. We'll charge $3 for the first ounce. Unfortunately this method uses more rows.

        UnitsCost
        13
        110
        40.25
        800.15
        The rest0.10

      3. Charging by total weight or other product value - maximum charge

        The fifth row charges for ever. To limit the charge means we can only use four rows, not the fifth. If we also have a minimum varying by zone, there's not much flexibility left!

        UnitsCost
        13
        110
        40.25
        800.15
        The rest0

      4. Charging by total weight or other product value - free shipping above order value threshold - for some zones

        Can't be done unless units represents the order value.