Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.98 KB | None | 0 0
  1. $storeId = Mage::app()->getStore()->getStoreId();
  2. try {
  3. $customer_id = $this->getRequest()->getParam('customer_id');
  4. $selected_product_details = $this->getRequest()->getParam('selected_product_details');
  5. $firstname = $this->getRequest()->getParam('firstname');
  6. $lastname = $this->getRequest()->getParam('lastname');
  7. $email = $this->getRequest()->getParam('email');
  8. $street = $this->getRequest()->getParam('street');
  9. $mobile = $this->getRequest()->getParam('mobile');
  10.  
  11. if ($customer_id == '') {
  12. $store = Mage::app()->getStore();
  13. $customer = Mage::getModel("customer/customer");
  14. $customer->setWebsiteId($websiteId)
  15. ->setStore($store)
  16. ->setFirstname($firstname)
  17. ->setLastname($lastname)
  18. ->setEmail($email)
  19. ->setPassword('123456');
  20. $customer->save();
  21. $customer_id = $customer->getCustomerId();
  22. } else {
  23. $customer = Mage::getModel('customer/customer')->load($customer_id);
  24. }
  25. $product_details = json_decode($selected_product_details, true);
  26. $websiteId = Mage::app()->getWebsite()->getId();
  27. // Start New Sales Order Quote
  28. $quote = Mage::getModel('sales/quote')
  29. ->setStoreId($storeId);
  30. // Set Sales Order Quote Currency
  31. $quote->setCurrency($order->AdjustmentAmount->currencyID);
  32. // Assign Customer To Sales Order Quote
  33. $quote->assignCustomer($customer);
  34. // Configure Notification
  35. $quote->setSendCconfirmation(1);
  36. foreach ($product_details as $_products) {
  37. $productId = $_products['productId'];
  38. $qty = $_products['qty'];
  39. $product = Mage::getModel('catalog/product')->load($productId);
  40. $quote->addProduct($product, new Varien_Object(array('qty' => $qty)));
  41. }
  42. // Set Sales Order Billing Address
  43. $billingAddress = $quote->getBillingAddress()->addData(array(
  44. 'customer_address_id' => '',
  45. 'prefix' => '',
  46. 'firstname' => $firstname,
  47. 'middlename' => '',
  48. 'lastname' => $lastname,
  49. 'suffix' => '',
  50. 'company' => '',
  51. 'street' => $street,
  52. 'telephone' => $mobile,
  53. 'vat_id' => '',
  54. 'save_in_address_book' => 1
  55. ));
  56. // Set Sales Order Shipping Address
  57. $shippingAddress = $quote->getShippingAddress()->addData(array(
  58. 'customer_address_id' => '',
  59. 'prefix' => '',
  60. 'firstname' => $firstname,
  61. 'middlename' => '',
  62. 'lastname' => $lastname,
  63. 'suffix' => '',
  64. 'company' => '',
  65. 'street' => $street,
  66. 'telephone' => $mobile,
  67. 'vat_id' => '',
  68. 'save_in_address_book' => 1
  69. ));
  70.  
  71. if ($shippingPrice == 0) {
  72. $shippingAddress->setCollectShippingRates(true)
  73. ->collectShippingRates()
  74. ->setShippingMethod('freeshipping_freeshipping')
  75. ->setPaymentMethod('cashondelivery');
  76. } else {
  77. $shippingAddress->setCollectShippingRates(true)
  78. ->collectShippingRates()
  79. ->setShippingMethod('flatrate_flatrate')
  80. ->setPaymentMethod('cashondelivery');
  81. }
  82.  
  83. //Fire event sales_quote_collect_totals_after Before ->collectTotals->save();
  84.  
  85. $quote->getPayment()->importData(array('method' => 'cashondelivery'));
  86. $quote->collectTotals->save();
  87.  
  88. // Create Order From Quote
  89. $service = Mage::getModel('sales/service_quote', $quote);
  90. $service->submitAll();
  91. $orderId = $service->getOrder()->getRealOrderId();
  92. // Resource Clean-Up
  93. $quote = $customer = $service = null;
  94. $this->createOrderInvoice($orderId);
  95.  
  96. $message = $this->__('Ordered Created Successfully');
  97. $success = 1;
  98.  
  99. //send mail when placing order
  100. $order_mail = new Mage_Sales_Model_Order();
  101. $order_mail->loadByIncrementId($orderId);
  102. $order_mail->sendNewOrderEmail();
  103.  
  104. $result = array("success" => $success, "message" => $message, "order_id" => $orderId);
  105. $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
  106.  
  107. } catch (Exception $ex) {
  108. $message = $this->__('Something went wrong. Please try again.');
  109. $success = 0;
  110. $result = array("success" => $success, "message" => $message);
  111. $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
  112.  
  113. return false;
  114. }
  115.  
  116. <modules>
  117. <Assel_StoreOwners>
  118. <version>0.1.0</version>
  119. </Assel_StoreOwners>
  120. </modules>
  121.  
  122. <global>
  123. <blocks>
  124. <storeowners>
  125. <class>Assel_StoreOwners_Block</class>
  126. </storeowners>
  127. </blocks>
  128.  
  129. <helpers>
  130. <storeowners>
  131. <class>Assel_StoreOwners_Helper</class>
  132. </storeowners>
  133. </helpers>
  134.  
  135. <events>
  136. <sales_quote_collect_totals_after>
  137. <observers>
  138. <set_custom_discount>
  139. <type>singleton</type>
  140. <class>Assel_StoreOwners_Model_Observer</class>
  141. <method>setDiscount</method>
  142. </set_custom_discount>
  143. </observers>
  144. </sales_quote_collect_totals_after>
  145. </events>
  146. </global>
  147.  
  148. function setDiscount($observer) {
  149. $quote=$observer->getEvent()->getQuote();
  150. $quoteid=$quote->getId();
  151. $customer_id = $quote->getCustomerId();
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement