Set delivery_fee_total
public setDeliveryFeeTotal ( string $deliveryFeeTotal ) : |
||
$deliveryFeeTotal | string | |
Результат |
/** * 住所などの情報が変更された時に金額の再計算を行う */ public function getAmount(\Eccube\Entity\Order $Order, \Eccube\Entity\Cart $Cart) { // 初期選択の配送業者をセット $shippings = $Order->getShippings(); $delivery = $shippings[0]->getDelivery(); $deliveryFee = $this->app['eccube.repository.delivery_fee']->findOneBy(array('Delivery' => $delivery, 'Pref' => $shippings[0]->getPref())); // 配送料金の設定 $payment = $Order->getPayment(); if (!is_null($payment)) { $Order->setPayment($payment); $Order->setPaymentMethod($payment->getMethod()); $Order->setCharge($payment->getCharge()); } $Order->setDeliveryFeeTotal($deliveryFee->getFee()); $baseInfo = $this->app['eccube.repository.base_info']->get(); // 配送料無料条件(合計金額) $deliveryFreeAmount = $baseInfo->getDeliveryFreeAmount(); if (!is_null($deliveryFreeAmount)) { // 合計金額が設定金額以上であれば送料無料 if ($Order->getSubTotal() >= $deliveryFreeAmount) { $Order->setDeliveryFeeTotal(0); } } // 配送料無料条件(合計数量) $deliveryFreeQuantity = $baseInfo->getDeliveryFreeQuantity(); if (!is_null($deliveryFreeQuantity)) { // 合計数量が設定数量以上であれば送料無料 if ($Cart->getTotalQuantity() >= $deliveryFreeQuantity) { $Order->setDeliveryFeeTotal(0); } } $total = $Order->getSubTotal() + $Order->getCharge() + $Order->getDeliveryFeeTotal(); $Order->setTotal($total); $Order->setPaymentTotal($total); $this->app['orm.em']->flush(); return $Order; }
/** * 配送料無料条件(合計金額)の条件を満たしていれば配送料金を0に設定 * * @param Order $Order */ public function setDeliveryFreeAmount(Order $Order) { // 配送料無料条件(合計金額) $deliveryFreeAmount = $this->BaseInfo->getDeliveryFreeAmount(); if (!is_null($deliveryFreeAmount)) { // 合計金額が設定金額以上であれば送料無料 if ($Order->getSubTotal() >= $deliveryFreeAmount) { $Order->setDeliveryFeeTotal(0); // お届け先情報の配送料も0にセット $shippings = $Order->getShippings(); foreach ($shippings as $Shipping) { $Shipping->setShippingDeliveryFee(0); } } } }
/** * 配送料の合計金額を計算 * * @param Order $Order * @return Order */ public function calculateDeliveryFee(Order $Order) { // 配送業者を取得 $shippings = $Order->getShippings(); // 配送料合計金額 $Order->setDeliveryFeeTotal($this->getShippingDeliveryFeeTotal($shippings)); // 配送料無料条件(合計金額) $this->setDeliveryFreeAmount($Order); // 配送料無料条件(合計数量) $this->setDeliveryFreeQuantity($Order); return $Order; }