rudiw

Untitled

May 23rd, 2012
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.08 KB | None | 0 0
  1. <?php
  2. require_once '/home/rudi/public_html/berbatik/app/Mage.php';
  3.  
  4. Mage::app();
  5.  
  6. $customer = Mage::getModel('customer/customer')->load('3');/*$customerId is the id of the customer who is placing the order, it can be passed as an argument to the function place()*/
  7.  
  8. $transaction = Mage::getModel('core/resource_transaction');
  9. $storeId = $customer->getStoreId();
  10. $reservedOrderId = Mage::getSingleton('eav/config')->getEntityType('order')->fetchNewIncrementId($storeId);
  11.  
  12. // echo('Customer is '. var_export($customer, true));
  13. // echo('Transaction is '.var_export($transaction, true));
  14. // var_dump('store id is '.$storeId);
  15. // var_dump('Reserved order id is '.$reservedOrderId);
  16.  
  17. //Set order
  18. $order = Mage::getModel('sales/order');
  19. $order
  20. ->setIncrementId($reservedOrderId)
  21. ->setStoreId($storeId)
  22. ->setQuoteId(0)
  23. ->setGlobal_currency_code('USD')
  24. ->setBase_currency_code('USD')
  25. ->setStore_currency_code('USD')
  26. ->setOrder_currency_code('USD');
  27.  
  28. // echo ("Order is ".var_export($order, true));
  29.  
  30. // set Customer data
  31. $order->setCustomer_email($customer->getEmail())
  32. ->setCustomerFirstname($customer->getFirstname())
  33. ->setCustomerLastname($customer->getLastname())
  34. ->setCustomerGroupId($customer->getGroupId())
  35. ->setCustomer_is_guest(0)
  36. ->setCustomer($customer);
  37.  
  38. // echo ("Order is ".var_export($order, true));
  39.  
  40. // set Billing Address
  41. $billing = $customer->getDefaultBillingAddress();
  42.  
  43. // echo ("Billing is ".var_export($billing, true));
  44.  
  45. $billingAddress = Mage::getModel('sales/order_address')
  46. ->setStoreId($storeId)
  47. ->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_BILLING)
  48. ->setCustomerId($customer->getId())
  49. ->setCustomerAddressId($customer->getDefaultBilling())
  50. ->setCustomer_address_id($billing->getEntityId())
  51. ->setPrefix($billing->getPrefix())
  52. ->setFirstname($billing->getFirstname())
  53. ->setMiddlename($billing->getMiddlename())
  54. ->setLastname($billing->getLastname())
  55. ->setSuffix($billing->getSuffix())
  56. ->setCompany($billing->getCompany())
  57. ->setStreet($billing->getStreet())
  58. ->setCity($billing->getCity())
  59. ->setCountry_id($billing->getCountryId())
  60. ->setRegion($billing->getRegion())
  61. ->setRegion_id($billing->getRegionId())
  62. ->setPostcode($billing->getPostcode())
  63. ->setTelephone($billing->getTelephone())
  64. ->setFax($billing->getFax());
  65. $order->setBillingAddress($billingAddress);
  66.  
  67. // echo ("Order is ".var_export($order, true));
  68.  
  69. $shipping = $customer->getDefaultShippingAddress();
  70.  
  71. // echo ("Shipping is: ".var_export($shipping, true));
  72.  
  73. $shippingAddress = Mage::getModel('sales/order_address')
  74. ->setStoreId($storeId)
  75. ->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_SHIPPING)
  76. ->setCustomerId($customer->getId())
  77. ->setCustomerAddressId($customer->getDefaultShipping())
  78. ->setCustomer_address_id($shipping->getEntityId())
  79. ->setPrefix($shipping->getPrefix())
  80. ->setFirstname($shipping->getFirstname())
  81. ->setMiddlename($shipping->getMiddlename())
  82. ->setLastname($shipping->getLastname())
  83. ->setSuffix($shipping->getSuffix())
  84. ->setCompany($shipping->getCompany())
  85. ->setStreet($shipping->getStreet())
  86. ->setCity($shipping->getCity())
  87. ->setCountry_id($shipping->getCountryId())
  88. ->setRegion($shipping->getRegion())
  89. ->setRegion_id($shipping->getRegionId())
  90. ->setPostcode($shipping->getPostcode())
  91. ->setTelephone($shipping->getTelephone())
  92. ->setFax($shipping->getFax());
  93.  
  94. // echo ("Shipping Address: ".var_export($shippingAddress, true));
  95.  
  96.  
  97. $order->setShippingAddress($shippingAddress)
  98. ->setShipping_method('flatrate_flatrate')
  99. ->setShippingDescription('flatrate');
  100.  
  101. $orderPayment = Mage::getModel('sales/order_payment')
  102. ->setStoreId($storeId)
  103. ->setCustomerPaymentId(0)
  104. ->setMethod('purchaseorder')
  105. ->setPo_number(' - ');
  106. $order->setPayment($orderPayment);
  107.  
  108. // Set sales order status to 'complete'
  109. $order->setStatus(Mage_Sales_Model_Order::STATE_COMPLETE);
  110.  
  111. // Set sales order payment method
  112. $payment = Mage::getModel('sales/order_payment')->setMethod('checkmo');
  113. $order->setPayment($payment);
  114.  
  115. // let say, we have 2 products
  116. $subTotal = 0;
  117. $products = array('194' => array('qty' => 1),'195'=>array('qty' => 3));
  118. foreach ($products as $productId=>$product) {
  119.     $_product = Mage::getModel('catalog/product')->load($productId);
  120.     $rowTotal = $_product->getPrice() * $product['qty'];
  121.     $orderItem = Mage::getModel('sales/order_item')
  122.     ->setStoreId($storeId)
  123.     ->setQuoteItemId(0)
  124.     ->setQuoteParentItemId(NULL)
  125.     ->setProductId($productId)
  126.     ->setProductType($_product->getTypeId())
  127.     ->setQtyBackordered(NULL)
  128.     ->setTotalQtyOrdered($product['rqty'])
  129.     ->setQtyOrdered($product['qty'])
  130.     ->setName($_product->getName())
  131.     ->setSku($_product->getSku())
  132.     ->setPrice($_product->getPrice())
  133.     ->setBasePrice($_product->getPrice())
  134.     ->setOriginalPrice($_product->getPrice())
  135.     ->setRowTotal($rowTotal)
  136.     ->setBaseRowTotal($rowTotal);
  137.  
  138.     $subTotal += $rowTotal;
  139.     $order->addItem($orderItem);
  140. }
  141.  
  142. $order->setSubtotal($subTotal)
  143. ->setBaseSubtotal($subTotal)
  144. ->setGrandTotal($subTotal)
  145. ->setBaseGrandTotal($subTotal);
  146.  
  147. $transaction->addObject($order);
  148. $transaction->addCommitCallback(array($order, 'place'));
  149. $transaction->addCommitCallback(array($order, 'save'));
  150. $transaction->save();
Advertisement
Add Comment
Please, Sign In to add comment