Many a times shipping carriers need complex calculations done before the shipping option is displayed in the frontend. For instance, a shipping carrier might only be available if all the items in cart are in stock and will not be visible in the frontend, if any or all items in cart are not in stock. Another shipping carrier might charge an additional fee on every item above a threshold, or every weight above a threshold and have a fixed minimum shipping price in case the total calculated is not greater than a certain value.
Premium tablerates extension allows you to configure advanced shipping rules with the use of the column
algorithm in the csv. This column can be configured to use the predefined rules with values for your shipping rate. Multiple algorithms can be combined to form a complex rule. To combine multiple algorithms combine them using an ampersand
(&). For example: <algorithm1>&<algorithm2>&...&<algorithm-n>.
Algorithm | Description | Usage |
---|---|---|
w | Weight/Volume based price increase. Adds an additional rate per every unit of weight above the value in weight > (min. weight) column. Weight is rounded to next whole number/integer. | wnc=<weight/volume threshold rounded to the next integer>@<price> To add $3 per 1 unit of weight(kg/lb), use: w=1@3 To add $4 per 100 unit of volume, use: w=100@4 |
wnc | Weight/Volume based price increase. Adds an additional rate per every unit of weight above the value in weight > (min. weight) column. | wnc=<weight/volume threshold>@<price> To add $5 per 1 unit of
weight(kg/lb), use: wnc=1@5 To add $7 per 200 unit of volume, use: w=200@7 |
aw | Always weight. This works similar to algorithm 'w', but always uses weight and never volume. | aw=<weight threshold rounded to the next integer>@<price> |
v | Volume based price increase. Adds an additional rate per units of volume defined. | v=<volume>@<price> To add $2 per every 100 units of volume, use: v=100@2. |
i | Additional per quantity shipping rate. This will add an additional rate to the total shippable quantity in cart above the minimum quantity value for the shipping rate to be active. | i=<price> Consider the value of Qty > (min. qty) column is 5. To add an additional rate($1.5) for every quantity in cart above the min. qty, the algorithm should be i=1.5. |
ai | Additional per quantity shipping rate. This will add an additional rate to the total shippable quantity in cart. | ai=<price> To add an additional rate($0.5) for every quantity in cart, regardless of the min. qty, the algorithm should be ai=0.5. |
im | Additional shipping rate per quantity defined. This will add an additional rate per quantity defined in the algorithm. Quantity is rounded to the next highest integer value. | im=<quantity threshold>@<price> To add an additional rate($10) for every quantity threshold, the algorithm should be im=2@10. Quantity is rounded to the next highest integer value. For the above example, if there are 13 items, and since we add $10 for every 2 item quantity (13/2 = 6.5 -> 7*10), the price will be $70. |
instock | This will check if all the items are In Stock/Out of Stock. It will allow you to offer shipping options based on your stock. You can use this to offer express shipping options when items are in stock or disable certain shipping options when items are out of stock. | instock=<true|false> instock=true (checks if all the items are in stock) instock=false (checks if all the items are out of stock) |
m | This allows you to store a different shipping method code in the database. The code will be saved in the shipping_method field of sales_order table in your database. This algorithm is mostly used for technical purposes. | m=<shipping_method_code> m=fedex (The shipping method code saved in the database will be, {original_method_code}_fedex. |
min | Minimum shipping price for a particular shipping method can be defined using this algorithm. If the shipping price calculated by other algorithms is less than the minimum price defined here, then this price will be used as the shipping price. | min=<min. shipping price> Apply a minimum shipping price of $5 by using, min=5 |