public static function crateFromOrder(Mage_Sales_Model_Order $order) { $aOrder = new self(); $aOrder->id = $order->getIncrementId(); $aOrder->currency = $order->getOrderCurrencyCode(); $aOrder->total_amount = Aplazame_Sdk_Serializer_Decimal::fromFloat($order->getTotalDue()); $aOrder->articles = array_map(array('Aplazame_Aplazame_BusinessModel_Article', 'crateFromOrderItem'), $order->getAllVisibleItems()); if (($discounts = $order->getDiscountAmount()) !== null) { $aOrder->discount = Aplazame_Sdk_Serializer_Decimal::fromFloat(-$discounts); } return $aOrder; }
/** * check if order total is correct * * @param ShopgateOrder $order * @param Mage_Sales_Model_Order $oMageOrder * @param string $message * * @return bool */ public function isOrderTotalCorrect(ShopgateOrder $order, Mage_Sales_Model_Order $oMageOrder, &$message = "") { $totalShopgate = $order->getAmountComplete(); $totalMagento = $oMageOrder->getTotalDue() + $oMageOrder->getTotalPaid(); ShopgateLogger::getInstance()->log("Total Shopgate: {$totalShopgate} {$order->getCurrency()} \n Total Magento: {$totalMagento} {$order->getCurrency()}", ShopgateLogger::LOGTYPE_DEBUG); if (abs($totalShopgate - $totalMagento) > 0.02) { $msg = "differing total order amounts:\n"; $msg .= "\tShopgate:\t{$totalShopgate} {$order->getCurrency()} \n"; $msg .= "\tMagento:\t{$totalMagento} {$oMageOrder->getOrderCurrencyCode()}\n"; $message = $msg; return false; } return true; }
/** * @param Mage_Sales_Model_Order $order * * @return array */ public static function createFromOrder(Mage_Sales_Model_Order $order) { $serialized = array('id' => $order->getIncrementId(), 'amount' => Aplazame_Sdk_Serializer_Decimal::fromFloat($order->getGrandTotal()), 'due' => Aplazame_Sdk_Serializer_Decimal::fromFloat($order->getTotalDue()), 'status' => $order->getStatus(), 'type' => $order->getPayment()->getMethodInstance()->getCode(), 'order_date' => date(DATE_ISO8601, strtotime($order->getCreatedAt())), 'currency' => $order->getOrderCurrencyCode(), 'billing' => Aplazame_Aplazame_BusinessModel_Address::createFromAddress($order->getBillingAddress()), 'shipping' => Aplazame_Aplazame_BusinessModel_ShippingInfo::createFromOrder($order)); return $serialized; }
/** * @param Mage_Sales_Model_Order $order */ protected function updatePaymentByOrder(Mage_Sales_Model_Order $order) { // Set Amount Authorized $this->getPayment()->setAmountAuthorized($order->getTotalDue()); $this->getPayment()->setBaseAmountAuthorized($order->getBaseTotalDue()); }
/** * @param Mage_Sales_Model_Order $magentoOrder * @param ShopgateOrder $shopgateOrder * * @return Mage_Sales_Model_Order */ protected function _updateOrderPayment($magentoOrder, $shopgateOrder) { if ($shopgateOrder->getUpdatePayment() && $magentoOrder->getTotalDue() > 0) { $this->log("# Update payment", ShopgateLogger::LOGTYPE_DEBUG); $magentoOrder = $this->_setOrderPayment($magentoOrder, $shopgateOrder); $this->log("# Update payment successful", ShopgateLogger::LOGTYPE_DEBUG); } return $magentoOrder; }