/** * Get shipping cost for set express checkout * * @param \XLite\Model\Order $order Order * * @return float */ protected function getShippingCost($order) { $result = null; $shippingModifier = $order->getModifier(\XLite\Model\Base\Surcharge::TYPE_SHIPPING, 'SHIPPING'); if ($shippingModifier && $shippingModifier->canApply()) { /** @var \XLite\Model\Currency $currency */ $currency = $order->getCurrency(); $result = $currency->roundValue($order->getSurchargeSumByType(\XLite\Model\Base\Surcharge::TYPE_SHIPPING)); } return $result; }
/** * Get selected shipping rate object * * @param \XLite\Model\Order $order Order * * @return \XLite\Model\Shipping\Rate */ protected function getShippingRate($order) { $result = null; $modifier = $order->getModifier(\XLite\Model\Base\Surcharge::TYPE_SHIPPING, 'SHIPPING'); if ($modifier && $modifier->getMethod() && $this->getCarrierCode() == $modifier->getMethod()->getCarrier()) { $rate = $modifier->getSelectedRate(); if ($rate && $rate->getExtraData() && $rate->getExtraData()->cod_supported) { $result = $rate; } } return $result; }
/** * Assemble recalculate shipping event * * @param \XLite\Model\Order $order Order * * @return array */ protected function assembleRecalculateShippingEvent(\XLite\Model\Order $order) { $result = array('options' => array()); $modifier = $order->getModifier(\XLite\Model\Base\Surcharge::TYPE_SHIPPING, 'SHIPPING'); $modifier->setMode(\XLite\Logic\Order\Modifier\AModifier::MODE_CART); foreach ($modifier->getRates() as $rate) { $result['options'][$rate->getMethod()->getMethodId()] = array('name' => html_entity_decode(strip_tags($rate->getMethod()->getName()), ENT_COMPAT, 'UTF-8'), 'fullName' => html_entity_decode($rate->getMethod()->getName(), ENT_COMPAT, 'UTF-8')); } return $result; }
/** * {@inheritDoc} */ public function getModifier($type, $code) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getModifier', array($type, $code)); return parent::getModifier($type, $code); }