Beispiel #1
0
 /**
  * Returns order items
  *
  * @param \XLite\Model\Order $order Order
  *
  * @return array
  */
 protected function getItems($order)
 {
     $result = array();
     $itemsSubtotal = 0;
     if ($order->countItems()) {
         $index = 0;
         /** @var \XLite\Model\Currency $currency */
         $currency = $order->getCurrency();
         foreach ($order->getItems() as $item) {
             $amt = $currency->roundValue($item->getItemNetPrice());
             $result['L_PAYMENTREQUEST_0_AMT' . $index] = $amt;
             /** @var \XLite\Model\Product $product */
             $product = $item->getProduct();
             $result['L_PAYMENTREQUEST_0_NAME' . $index] = $product->getName();
             if ($product->getSku()) {
                 $result['L_PAYMENTREQUEST_0_NUMBER' . $index] = $product->getSku();
             }
             $qty = $item->getAmount();
             $result['L_PAYMENTREQUEST_0_QTY' . $index] = $qty;
             $itemsSubtotal += $amt * $qty;
             $index += 1;
         }
         // Prepare data about discount
         $discount = $currency->roundValue($order->getSurchargeSumByType(\XLite\Model\Base\Surcharge::TYPE_DISCOUNT));
         if (0 != $discount) {
             $result['L_PAYMENTREQUEST_0_AMT' . $index] = $discount;
             $result['L_PAYMENTREQUEST_0_NAME' . $index] = 'Discount';
             $result['L_PAYMENTREQUEST_0_QTI' . $index] = 1;
             $itemsSubtotal += $discount;
         }
         $result += array('PAYMENTREQUEST_0_ITEMAMT' => $itemsSubtotal);
         // Prepare data about summary tax cost
         $taxCost = $currency->roundValue($order->getSurchargeSumByType(\XLite\Model\Base\Surcharge::TYPE_TAX));
         if (0 < $taxCost) {
             $result['L_PAYMENTREQUEST_0_TAXAMT' . $index] = $taxCost;
             $result['PAYMENTREQUEST_0_TAXAMT'] = $taxCost;
         }
     }
     return $result;
 }
Beispiel #2
0
 /**
  * Returns order items
  *
  * @param \XLite\Model\Order $order Order
  *
  * @return array
  * @see    https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables
  */
 protected function getItems($order)
 {
     $result = array();
     $itemsSubtotal = 0;
     if ($order->countItems()) {
         $index = 1;
         /** @var \XLite\Model\Currency $currency */
         $currency = $order->getCurrency();
         foreach ($order->getItems() as $item) {
             $amt = $currency->roundValue($item->getItemNetPrice());
             $result['amount_' . $index] = $amt;
             /** @var \XLite\Model\Product $product */
             $product = $item->getProduct();
             $result['item_name_' . $index] = $product->getName();
             $qty = $item->getAmount();
             $result['quantity_' . $index] = $qty;
             $itemsSubtotal += $amt * $qty;
             ++$index;
         }
         // Prepare data about discount
         $discount = $currency->roundValue($order->getSurchargeSumByType(\XLite\Model\Base\Surcharge::TYPE_DISCOUNT));
         if (0 != $discount) {
             $result['discount_amount_cart'] = $discount;
         }
         $result = array_merge($result, array('items_amount' => $itemsSubtotal));
         // Prepare data about summary tax cost
         $taxCost = $currency->roundValue($order->getSurchargeSumByType(\XLite\Model\Base\Surcharge::TYPE_TAX));
         if (0 < $taxCost) {
             $result['tax_cart'] = $taxCost;
         }
     }
     return $result;
 }
 /**
  * {@inheritDoc}
  */
 public function countItems()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'countItems', array());
     return parent::countItems();
 }