Price calculator ================ When deciding on what service to use, a big deciding factor is the price. The price of a shipment is determined by the weight of the shipment, the chosen service and the selected service options. We've created the ``PriceCalculator`` class to calculate the price of the shipment based on these parameters. By passing in a valid shipment to the ``calculate()`` method, the price calculator will return the price of the shipment. .. code-block:: php use MyParcelCom\ApiSdk\Shipments\PriceCalculator; $calculator = new PriceCalculator(); // Calculate the price for your shipment. // This requires the shipment to have a valid weight set. $price = $calculator->calculate($shipment); Alternatively, it is also possible to calculate the price of a shipment with a specific service rate by passing in the service rate as second parameter in the ``calculate()`` method. .. code-block:: php $price = $calculator->calculate($shipment, $serviceRate); .. warning:: If the shipment contains service options that are not available in the specified service rate, the price calculator will throw a ``MyParcelCom\ApiSdk\Exceptions\CalculationException``. .. warning:: If the service rate of the shipment itself or the service rate in the second parameter has a price amount of ``null`` the price calculator will also return ``null``. .. warning:: If one of the options of the shipment has a price amount of ``null`` the price calculator will also return ``null``, because in that case it cannot calculate the correct total price.