getProductPrice(); $purchaseState = $deliveryDates->initPurchaseState($product, $price); $activeDeliveries = $deliveryDates->filterDeliveries(Delivery::getAll(), $only_supported, $price, $purchaseState); $minDeliveryPrice = $deliveryDates->calcMinDeliveryPrice($activeDeliveries); $productList = $deliveryDates->initializeProductCollection($product, true); $deliveriesDates = $deliveryInfo->getProductsDeliveriesDeliveryDates($productList, $activeDeliveries); $variationResults = []; $dateMinInPerson = null; $dateMinDelivery = null; list($variationResults, $dateMinInPerson, $dateMinDelivery) = $deliveryDates->calcResultsForEachVariation($deliveriesDates, $activeDeliveries, $minDeliveryPrice, $variationResults, $dateMinInPerson, $dateMinDelivery); $deliveriesList = $deliveryDates->calcTotalDeliveryListForVariations($activeDeliveries, $deliveriesDates); $totalResult = [ 'list' => $deliveriesList, 'min' => [ 'in_person' => $dateMinInPerson, 'delivery' => $dateMinDelivery, 'total' => min($dateMinDelivery, $dateMinInPerson), 'deliveryPrice' => $minDeliveryPrice, ], 'variations' => $variationResults, ]; if (!empty($assign)) { $smarty->assign($assign, $totalResult); } else { return $totalResult; } }