Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require_once '/home/rudi/public_html/berbatik/app/Mage.php';
- Mage::app();
- //Get customer by Magento Customer ID
- $mageCustomer = Mage::getModel('customer/customer')->load('3');
- if ( is_null($mageCustomer->getId()) ) {
- throw new Exception("Can't add sales order: customer {$customerEmail} does not exist.");
- }
- //Get Resource Transaction
- $transaction = Mage::getModel('core/resource_transaction');
- $storeId = $mageCustomer->getStoreId();
- $reservedOrderId = Mage::getSingleton('eav/config')->getEntityType('order')->fetchNewIncrementId($storeId);
- //Set order
- $salesOrder = Mage::getModel('sales/order');
- $salesOrder
- ->setIncrementId($reservedOrderId)
- ->setStoreId($storeId)
- ->setQuoteId(0)
- ->setGlobal_currency_code('IDR')
- ->setBase_currency_code('IDR')
- ->setStore_currency_code('IDR')
- ->setOrder_currency_code('IDR');
- // Associate the sales order with the Magento customer
- $salesOrder->setCustomer_email($mageCustomer->getEmail())
- ->setCustomerFirstname($mageCustomer->getFirstname())
- ->setCustomerLastname($mageCustomer->getLastname())
- ->setCustomerGroupId($mageCustomer->getGroupId())
- ->setCustomer_is_guest(0)
- ->setCustomer($mageCustomer);
- // Set sales order status to 'complete'
- $salesOrder->setStatus(Mage_Sales_Model_Order::STATE_COMPLETE);
- // Set sales order payment method
- $payment = Mage::getModel('sales/order_payment')->setMethod('checkmo');
- $salesOrder->setPayment($payment);
- //Set 2 products
- $subTotal = 0;
- $products = array('194' => array('qty' => 1),'195'=>array('qty' => 3));
- foreach ($products as $productId=>$product) {
- $_product = Mage::getModel('catalog/product')->load($productId);
- $rowTotal = $_product->getPrice() * $product['qty'];
- $orderItem = Mage::getModel('sales/order_item')
- ->setStoreId($storeId)
- ->setQuoteItemId(0)
- ->setQuoteParentItemId(NULL)
- ->setProductId($productId)
- ->setProductType($_product->getTypeId())
- ->setQtyBackordered(NULL)
- ->setTotalQtyOrdered($product['rqty'])
- ->setQtyOrdered($product['qty'])
- ->setName($_product->getName())
- ->setSku($_product->getSku())
- ->setPrice($_product->getPrice())
- ->setBasePrice($_product->getPrice())
- ->setOriginalPrice($_product->getPrice())
- ->setRowTotal($rowTotal)
- ->setBaseRowTotal($rowTotal);
- $subTotal += $rowTotal;
- $salesOrder->addItem($orderItem);
- }
- // Save the sales order
- $salesOrder->save();
- $convertQuote = Mage::getSingleton('sales/convert_quote');
- // set Billing Address
- $billing = $mageCustomer->getDefaultBillingAddress();
- //echo ("Billing is ".var_export($billing, true));
- // Set sales order billing address
- // $salesOrderBillAddress = Mage::getModel('sales/order_address')->setStore(Mage::app()->getStore());
- // $salesOrderBillAddress->setData($mageCustomer->getDefaultBillingAddress()->getData());
- $salesOrder->setBillingAddress($convertQuote->addressToOrderAddress($mageCustomer->getDefaultBillingAddress()));
- //$salesOrderBillAddress = clone $billing;
- //$salesOrder->setBillingAddress($salesOrderBillAddress);
- // echo ("Sales order: ".var_export($salesOrder, true));
- // Set sales order shipping address
- $shipping = $mageCustomer->getDefaultShippingAddress();
- // $salesOrderShipAddress = Mage::getModel('sales/order_address')->setStore(Mage::app()->getStore());
- // $salesOrderShipAddress->setData($mageCustomer->getDefaultShippingAddress()->getData());
- $salesOrderShipAddress = clone $shipping;
- $salesOrder->setShippingAddress($salesOrderShipAddress);
- $salesOrder->save();
- // $transaction->addObject($salesOrder);
- // $transaction->addCommitCallback(array($salesOrder, 'place'));
- // $transaction->addCommitCallback(array($salesOrder, 'save'));
- // $transaction->save();
- echo ("ID: ".var_export($reservedOrderId, true));
- $order = Mage::getModel('sales/order')->load($array_data[$reservedOrderId]);
- echo ("Order: ".var_export($order->getData(), true));
Advertisement
Add Comment
Please, Sign In to add comment