Update: The client has just changed the fuel duty to be a percentage of the shipping cost.
If I simply change the calculation to be fuelduty x shipping cost I'll get a loop.
So the calculation as it is has two problems.
1. There should only be one base rate applied whether there is one or more types of items in the cart and
2. The fuel duty should now be multiplied by the the shipping value (and not sub total)
The calculation is currently:
$_SESSION['ShipZoneBase'] + (abs(([Weight] * [Quantity]) > 10)?floor(([Weight] * [Quantity] - 10) / 0.5) * $_SESSION['ShipZoneInc']:0) + ($_SESSION['ShipZoneFuel'] * ([Price] * [Quantity]))