Beispiel #1
0
 /**
  * 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;
 }
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #3
0
 /**
  * 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);
 }