Guest User

Untitled

a guest
Nov 3rd, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.65 KB | None | 0 0
  1. <?php
  2.  
  3. $installer = $this;
  4. $installer->startSetup();
  5.  
  6. $installer->getConnection()
  7. ->addColumn($installer->getTable('sales/order'),'piyush_order_exported', array(
  8. 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
  9. 'nullable' => true,
  10. 'length' => 10,
  11. 'after' => null, // column name to insert new column after
  12. 'comment' => 'Is order exported'
  13. ));
  14.  
  15. $installer->endSetup();
  16.  
  17. <?xml version="1.0" encoding="UTF-8"?>
  18. <config>
  19. <modules>
  20. <Piyush_OrderExport>
  21. <version>1.0.0</version>
  22. </Piyush_OrderExport>
  23. </modules>
  24. <global>
  25. <helpers>
  26. <Piyush_orderexport>
  27. <class>Piyush_OrderExport_Helper</class>
  28. </Piyush_orderexport>
  29. </helpers>
  30. <models>
  31. <Piyush_orderexport>
  32. <class>Piyush_OrderExport_Model</class>
  33. </Piyush_orderexport>
  34. </models>
  35. <resources>
  36. <Piyush_orderexport_setup>
  37. <setup>
  38. <module>Piyush_OrderExport</module>
  39. </setup>
  40. </Piyush_orderexport_setup>
  41. </resources>
  42. <events>
  43. <sales_order_save_after>
  44. <observers>
  45. <Piyush_orderexport_order_save_after>
  46. <type>singleton</type>
  47. <class>Piyush_OrderExport_Model_Observer</class>
  48. <method>exportOrder</method>
  49. </Piyush_orderexport_order_save_after>
  50. </observers>
  51. </sales_order_save_after>
  52. </events>
  53. </global>
  54. </config>
  55.  
  56. <?php
  57.  
  58. class Piyush_OrderExport_Helper_Data extends Mage_Core_Helper_Abstract
  59. {
  60. const LOG_ENABLED_CONFIG_PATH = 'productimport/general_config/log_enabled';
  61. const LOG_FILE_NAME = 'Piyush_orderexport.log';
  62.  
  63. /**
  64. * Utility function to log a message to the log file, if logging is enabled
  65. * @param string log message
  66. */
  67. public function log($message) {
  68. if (Mage::getStoreConfig(self::LOG_ENABLED_CONFIG_PATH)) {
  69. Mage::log($message, null, self::LOG_FILE_NAME);
  70. }
  71. }
  72. }
  73.  
  74. <?php
  75. class Piyush_OrderExport_Model_Observer
  76. {
  77. const EXPORT_RELATIVE_PATH = 'var/export/orders/';
  78. const EXPORT_FILE_NAME = 'orderexport.xml';
  79. const FTP_HOST = "your.erp.ip.address";
  80. const FTP_PORT = 21;
  81. const FTP_USER = "";
  82. const FTP_PASSWORD = "";
  83.  
  84. protected function sendFile($filePath, $fileName)
  85. {
  86. $_helper = Mage::helper('Piyush_orderexport');
  87. $_helper->log('Uploading the file to the FTP server...');
  88. if ($ftpResource = ftp_connect(self::FTP_HOST, self::FTP_PORT))
  89. {
  90. if (ftp_login($ftpResource, self::FTP_USER, self::FTP_PASSWORD))
  91. {
  92. if (ftp_put($ftpResource, $fileName, $filePath, FTP_ASCII))
  93. {
  94. $_helper->log("Upload of remote file '$fileName' complete (source file is '$filePath').");
  95. } else {
  96. $_helper->log("Warning: error cannot upload the file!");
  97. }
  98. } else
  99. {
  100. $_helper->log("Warning: error cannot login to the FTP server! Can't upload the file.");
  101. }
  102. } else
  103. {
  104. $_helper->log("Warning: error connection to the FTP server! Can't upload the file.");
  105. }
  106. }
  107.  
  108. public function exportOrder(Varien_Event_Observer $event=null)
  109. {
  110. $_helper = Mage::helper('Piyush_orderexport');
  111.  
  112. $importStartDateTime = date('Y-m-d H:i:s');
  113. $_helper->log('*** EXPORT ORDER START - ' . $importStartDateTime . ' ***');
  114.  
  115. /* @var Mage_Sales_Model_Order $order */
  116. $order = $event->getOrder();
  117. //$order = Mage::getModel('sales/order')->loadByIncrementId('100000042');
  118.  
  119. $orderIncrementId = $order->getIncrementId();
  120. $orderTimestamp = strtotime($order->getCreatedAt());
  121. $orderDate = date("ymd", $orderTimestamp);
  122. $orderTime = date("Hi", $orderTimestamp);
  123. $orderShipping = number_format(round($order->getShippingInclTax(), 2),2);
  124.  
  125. $_helper->log('Processing order '.$orderIncrementId);
  126. $_helper->log('Order state = '.$order->getState());
  127. $_helper->log('Order has been exported is '.$order->PiyushOrderExported());
  128.  
  129.  
  130. if ($order->PiyushOrderExported() != '1' && $order->getState() == $order::STATE_NEW) {
  131.  
  132. $_helper->log('Exporting order '.$orderIncrementId);
  133. $_helper->log("t- date = $orderDate");
  134. $_helper->log("t- time = $orderTime");
  135. $_helper->log("t- shipping = $orderShipping");
  136.  
  137. $xmlFilePath = Mage::getBaseDir('base') .'/'. self::EXPORT_RELATIVE_PATH . self::EXPORT_FILE_NAME;
  138. $outputFileHandler = fopen($xmlFilePath,"w");
  139.  
  140. $orderItems = $order->getAllVisibleItems();
  141. foreach ($orderItems as $item)
  142. {
  143. //$_helper->log("Item data: ".print_r($item->getData(),true));
  144.  
  145. $itemSku = $item->getSku();
  146. $itemQty = number_format(round($item->getQtyOrdered(), 2),2);
  147. $itemRowTotal = number_format(round($item->getRowTotal(), 2),2,'.','');
  148. $itemRowTotalInclTax = number_format(round($item->getRowTotalInclTax(), 2),2,'.','');
  149. $itemTaxAmount = number_format(round($item->getTaxAmount(), 2),2,'.','');
  150. $itemPlu = Mage::getModel('catalog/product')->loadByAttribute('sku', $itemSku)->PiyushPlu();
  151.  
  152. $_helper->log("t- processing order item $itemSku:");
  153. $_helper->log("tt- qty = $itemQty");
  154. $_helper->log("tt- row total = $itemRowTotal");
  155. $_helper->log("tt- tow total incl tax = $itemRowTotalInclTax");
  156. $_helper->log("tt- tax amount = $itemTaxAmount");
  157. $_helper->log("tt- PLU = $itemPlu");
  158.  
  159. $xmlString="";
  160. /* create your xml here */
  161.  
  162. fputs($outputFileHandler,$xmlString);
  163. //$_helper->log("xmlString = $xmlString");
  164.  
  165. }
  166.  
  167. fclose($outputFileHandler);
  168.  
  169. $this->sendFile($xmlFilePath, self::EXPORT_FILE_NAME);
  170.  
  171. $order->setGcmOrderExported('1');
  172. $order->save();
  173.  
  174. $importEndDateTime = date('Y-m-d H:i:s');
  175. $_helper->log('*** EXPORT ORDER END - ' . $importEndDateTime . ' ***'.PHP_EOL.PHP_EOL);
  176. }
  177. }
  178. }
  179.  
  180. <?xml version="1.0"?>
  181. <config>
  182. <modules>
  183. <Piyush_OrderExport>
  184. <active>true</active>
  185. <codePool>local</codePool>
  186. </Piyush_OrderExport>
  187. </modules>
  188. </config>
Add Comment
Please, Sign In to add comment