Calculating delivery charges automatically

You can manually add delivery charges to your orders using the Add adjustment button shown on the order screen, or you can define your "Delivery charge structures" in Breww and let Breww determine the charge automatically for you.

Using Delivery rules, Breww can automatically apply the correct delivery charge based on these rules.

To take advantage of Breww's automatic delivery charge calculations, you'll first need to define your "Delivery charge structures". This is where you specify if the charge is based upon product weight, product value or "Units", and then your bandings. Or alternatively, a formula option gives even greater customisability (see below). This can be done by navigating to Settings -> Delivery settings -> Delivery charges.

If you're creating a weight-based or unit-based delivery charge, it's also possible to specify a value, over which, delivery will be free, regardless of the weight banding that would have applied.

The screen for creating delivery charges structures looks a bit like this:

Once you have defined your charge structures, you simply need to tell Breww which charge structure should apply to which customers. Don't worry, it's possible to leave customers out of having a delivery charge applied automatically if you wish.

You can specify the delivery charge structure to use on:

  • Individual customers

  • Parent companies

  • Customer types

    Breww, will use the above order of precedence to determine which to apply, so this would allow you to specify a delivery charge structure for a Customer Type but then override this on a subset of the Customers, for example.

    When you create an order for a customer (either manually, or the customer self-serving using your Breww Trade Store), Breww will apply their delivery charge. As you build the order by adding products, updating quantities, etc, Breww will keep recalculating the delivery charge for you so that it always stays up-to-date.

    Each draft order will show a button named either Apply delivery charge or Change delivery charge which can be used to add/change the delivery charge structure that applies to the individual order, regardless of what would be the default for the customer.

    If Breww has automatically calculated a delivery charge, you can still manually adjust this using the edit button next to it, at which point Breww will unlink the delivery charge on the order from the delivery charge structure, so no further automatic changes will be applied.

    In the case of orders placed via the Breww Trade Store platform, the delivery charge will be clearly stated before the order is placed. If you then adjust their order from within Breww itself, the delivery charge will continue to be recalculated if required.

    Orders imported into Breww from external sales platforms, such as our Shopify & WooCommerce integrations, will never have any automatic delivery charges applied by Breww's rules. The external platform has complete control over the order and any delivery charges.

Formula-based delivery charges

In addition to the simpler methods to determine the delivery charge, you can also write a custom formula for more complicated structures. A formula-based option can use multiple variables at once, with mathematical and logical statements. Complex formulas are best built and tested in stages, as very long statements can become challenging to troubleshoot.

An elementary example of a formula could be to take the number of kegs on the order and multiply it by 30 to give you the monetary value of the charge:

number_of_kegs * 30

Adding to this, a similar charge could be added on top for multipacks. Parentheses can be used to separate statements and ensure the correct application order:

(number_of_kegs * 30) + (number_of_multipacks * 20)

"If statements" can be added to apply logic to the statement, for example, if the order's total weight is over 300 units, apply a fixed charge of 150.

150 if total_weight > 300 else (number_of_kegs * 30) + (number_of_multipacks * 20)

"If statements" can be nested; instead of the "else" being the final determination of the charge, another if statement could be in its place. Parentheses have been added to ensure the inner "if statement" is evaluated first and also to increase readability.

0 if total_value > 100 else (150 if total_weight > 300 else 100)
On this page