Beispiel #1
0
 /**
  * Assemble recalculate order event
  *
  * @param \XLite\Model\Order $order Order
  *
  * @return array
  */
 protected function assembleRecalculateOrderEvent(\XLite\Model\Order $order)
 {
     $result = array('subtotal' => $order->getSubtotal(), 'total' => $order->getTotal(), 'modifiers' => array());
     foreach ($this->getSurchargeTotals(true) as $surcharge) {
         $result['modifiers'][$surcharge['code']] = abs($surcharge['cost']);
     }
     if ($this->isForbiddenOrderChanges($order)) {
         $result['forbidden'] = true;
     }
     return $result;
 }
Beispiel #2
0
 /**
  * Get discount amount
  *
  * @param \XLite\Model\Order $order Order
  *
  * @return float
  */
 public function getAmount(\XLite\Model\Order $order)
 {
     $discount = $this->isAbsolute() ? $this->getValue() : $order->getSubtotal() * $this->getValue() / 100;
     return min($discount, $order->getSubtotal());
 }
 /**
  * {@inheritDoc}
  */
 public function getSubtotal()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSubtotal', array());
     return parent::getSubtotal();
 }