
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Feature | Option Number | ||||
| 3 | 4 | 5 | 6 | 7 | |
| multiple different rates | N | Y | Y | Y | Y |
| multiple zone tables | N | Y | Y | Y | Y |
| charge by quantity | U | Y | U | Y | U |
| charge by order value | Y | N | Y | N | Y |
| charge by weight or other | Y | N | Y | N | Y |
| COST is Amount or Multiplier | M | M | M | A | A |
| maximum charge | N | N | N | Y | Y |
'Y' means it's a normal use of the option. 'N' means not supported. 'U' means supported but you must provide a UNITS value. For example, options 3, 5, and 7 can work with the number of items if, for each product, you pass UNITS with a value of 1. We'll see uses for this later.
'Y' for maximum charge may be prove to a limitation.
Before we look at solutions for different situations, let's look at a zone table.
| UNITS | COST |
| 20 | 5 |
| 10 | 4 |
| 10 | 3 |
| 10 | 2 |
| The rest | 1 |
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.
There are several ways to specify UNITS with a product. Suppose we wish to pass the weight and it is 3.5
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. Maybe I'll add to this one day but not until I've learnt about it!
Check 'No shipping' on the cart setup shipping customization page.
See the 'free shipping' heading in the relevant section
This is achieved by making the units value 0 for those products. To make sure that the units value is used, we must use option 5 or 7 (rather than 4 or 6), and not check the units=price box. See Charging by total weight or other product value below.
Specify this near the start of the shipping customization page. See relevant heading if it is to apply only in some zones.
Check option 1 and specify the amount.
Options 4 or 6. For a zone with flat fee of 5, specify
| Units | Cost |
| 1 | 5 |
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.
See above for the flat fee table, specifying option 4-7 as recommended below for the other zones.
You may want this if some items are downloadable. Same one line table as before. Give units a value of 0 for 'free shipping' products and units="1" (at least) for the others. Options 5 or 7, without checking the units=price box.
Specify on shipping customization page.
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. The following example provides for a flat fee of $5, waived when the order value exceeds $100:
| Units | Cost |
| 1 | 5 |
| 99 | 0 |
| 0.1 | -50 |
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 ..
| Units | Cost |
| 1 | 5 |
| 19 | 0 |
| 1 | -5 |
Option 2. Specify the 'Shipping cost per item'.
Option 4. The COST column contains multipliers. If the cost per item is 1.50 and the minimum charge $3.30, then:
| Units | Cost |
| 1 | 3.30 the minimum |
| 1.2 | 0 no more until we get to 2.2 units (i.e. $3.30) |
| 1 | 1.50 then at standard rate |
Option 4. The COST column contains multipliers. If the cost per item is 1.50 and the maximum charge $10.20, then:
| Units | Cost |
| 6.8 | 1.50 |
Combined with the minimum charge, that would be:
| Units | Cost |
| 1 | 3.30 the minimum |
| 1.2 | 0 no more until we get to 2.2 units (i.e. $3.30) |
| 4.6 | 1.50 then at standard rate until maximum |
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.
We've seen how to do this with option 4. Other zones could have tables that use the total quantity.
Can't be done. We need the total value but units represents quantity. May be possible if every product has the same price.
Option 5. If the cost per item is 2, waived for orders of over 20 items ..
| Units | Cost |
| 20 | 2 |
| 1 | -40 |
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.
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.
Option tables contain up to five rows. For option 6 (and 7), the COST column contains amounts.
| Units | Cost |
| 4 | 2 |
| 10 | 1.80 |
| 10 | 1.60 |
| 10 | 1.40 |
| The rest | 1 |
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.
Using option 6 this will normally be defined by the first line in the table.
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.
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.
Can't be done. We need order value but units is the quantity. May be possible if every product has the same price.
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.
| Units | Cost |
| 4 | 2 |
| 10 | 1.80 |
| 10 | 1.60 |
| 10 | 1.40 |
| The rest | -6.80 |
Now we use option 4.
| Units | Cost |
| 4 | 0.5 |
| 10 | 0.18 |
| 10 | 0.16 |
| 10 | 0.14 |
| The rest | 0.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.
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.
| Units | Cost |
| 4 | 0 |
| 10 | 0.18 |
| 10 | 0.16 |
| 10 | 0.14 |
| The rest | 0.1 |
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:
| Units | Cost |
| 1 | 2 |
| 3 | 0 |
| 10 | 0.18 |
| 10 | 0.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.
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'.
This has to be achieved using the first four rows only. Anything in the fifth will apply ad infinitum.
Can't be done. We need order value but units is the quantity. May be possible if every product has the same price.
Option 6 (or 7 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.
| Units | Cost |
| 4 | 0.5 |
| 10 | 0.18 |
| 10 | 0.16 |
| 1 | -5.40 |
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.
If some items are free, we need to set units for those products to 0 and base shipping on the units passed to the cart. For other products we set units to the actual price. Therefore we must not check the units=price box.
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.
| Units | Cost |
| 10 | 6.85 |
| 10 | 1.50 |
| 10 | 1.25 |
| 10 | 1 |
| The rest | 0.9 |
Shipping for 1 to 10 items 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.
Using option 7, the first line of the table provides a minimum charge.
This is the sum of the 5 COSTS in the table.
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.
| Units | Cost |
| 10 | 6.85 |
| 10 | 1.50 |
| 10 | 1.25 |
| 5 | 1 |
| 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.
Can't be done. Probably wouldn't want to!
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
| Units | Cost |
| The rest | 0.05 |
If the percentage varies with the amount, the table might be
| Units | Cost |
| 10 | 0.7 |
| 10 | 0.15 |
| 10 | 0.12 |
| 10 | 0.10 |
| The rest | 0.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.
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.
| Units | Cost |
| 100 | 0 |
| The rest | 0.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.
| Units | Cost |
| 7 | 0 |
| 3 | 0.70 |
| 10 | 0.15 |
| 10 | 0.12 |
| The rest | 0.09 |
This time we have to implement using the table.
| Units | Cost |
| 1 | 5 |
| 6 | 0 |
| 3 | 0.7 |
| 10 | 0.15 |
| The rest | 0.10 |
Again, we have to make compromises. All I'm trying to show is how it might be done!
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.
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.
| Units | Cost |
| 10 | 0.7 |
| 10 | 0.15 |
| 5 | 0.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.
Can't be done. Probably wouldn't want to!
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.
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.
We use option 7. The items in the COST column are amounts. The shipping charge is the sum of COST in the relevant lines.
| Units | Cost |
| 0.25 | 3.85 |
| 0.25 | 1.00 |
| 0.25 | 0.50 |
| 0.25 | 0.50 |
This cart expects a maximum order weight of one pound, or kilo, or whatever.
The first line specifies a minimum of 3.85.
The maximum shipping charge is 5.85. Adding a fifth row would change the maximum but there would still be one.
Can't be done unless units represents the order value.
We use option 5. The items in the COST column are multipliers.
| Units | Cost |
| 16 | 0.25 |
| 80 | 0.15 |
| 80 | 0.10 |
| 80 | 0.05 |
| The rest | 0.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.
In the case above, we might want a minimum charge of, say, $3. Specify a flat handling fee of $3 on the shipping page.
| Units | Cost |
| 12 | 0 |
| 4 | 0.25 |
| 80 | 0.15 |
| 80 | 0.10 |
| The rest | 0.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 exercise uses two rows so we have to compromise in the rest of the table.
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.
| Units | Cost |
| 1 | 3 |
| 11 | 0 |
| 4 | 0.25 |
| 80 | 0.15 |
| The rest | 0.10 |
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!
| Units | Cost |
| 1 | 3 |
| 11 | 0 |
| 4 | 0.25 |
| 80 | 0.15 |
| The rest | 0 |
Can't be done unless units represents the order value.