Advertisement
Guest User

Untitled

a guest
May 18th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.75 KB | None | 0 0
  1. <?php
  2.  
  3. /* Magento*/
  4.  
  5. require_once 'app/Mage.php';
  6. Mage::app();
  7. umask(0);
  8.  
  9. $user = 'admin';
  10. $password = 'admin';
  11. $dbname = 'DEBUGGING';
  12.  
  13. require_once 'XML/vendor/autoload.php';
  14.  
  15. use PhpXmlRpc\Value;
  16. use PhpXmlRpc\Request;
  17. use PhpXmlRpc\Client;
  18. include_once("XML/vendor/phpxmlrpc/phpxmlrpc/lib/xmlrpc.inc");
  19.  
  20. //LOGIN
  21. $server_url = 'https://server-address.com';
  22. $connexion = new xmlrpc_client($server_url . "/xmlrpc/common");
  23. $connexion->setSSLVerifyPeer(0);
  24. $sock_msg = new xmlrpcmsg('login');
  25. $sock_msg->addParam(new xmlrpcval($dbname, "string"));
  26. $sock_msg->addParam(new xmlrpcval($user, "string"));
  27. $sock_msg->addParam(new xmlrpcval($password, "string"));
  28. $sock_resp = $connexion->send($sock_msg);
  29.  
  30. if ($sock_resp->errno != 0){
  31. echo  'error';
  32. }else{
  33.  
  34. $sock_val = $sock_resp->value();
  35.  
  36. $user_id = $sock_val->scalarval();
  37.  
  38.  
  39.     ##MAGENTO ORDERS     
  40.     $orders = Mage::getResourceModel('sales/order_collection')
  41.     ->addAttributeToSelect('*')
  42.     ->addFieldToFilter('status', array("in" => array(
  43.             'complete')
  44.             ))
  45.  
  46.     ->addAttributeToFilter('store_id', Mage::app()->getStore()->getId())
  47.     ->addAttributeToSort('created_at', 'desc')
  48.     ->load();
  49.    
  50. # ORDER LINES
  51.  
  52.     foreach($orders as $order):
  53.    
  54.             // Generate Lines
  55.             $vallinesItems = array();
  56.             $items = $order->getAllVisibleItems();
  57.             foreach($items as $i):
  58.                 $client = new xmlrpc_client($server_url . "/xmlrpc/object");
  59.                 $sku = $i->getSku();
  60.                 $qty = $i->getqty_ordered();
  61.                
  62.                 ## Search Product ID from Openerp
  63.                 $key =  array(
  64.                         new xmlrpcval(array
  65.                                         (new xmlrpcval('default_code' , "string"), // field name
  66.                                          new xmlrpcval('ilike',"string"), // operator
  67.                                          new xmlrpcval($sku,"string") //Value to search
  68.                                          ),"array"
  69.                                     ),
  70.                             );  
  71.                
  72.                 $msg = new xmlrpcmsg('execute');
  73.                 $msg->addParam(new xmlrpcval($dbname, "string"));
  74.                 $msg->addParam(new xmlrpcval($user_id, "int"));
  75.                 $msg->addParam(new xmlrpcval($password, "string"));
  76.                 $msg->addParam(new xmlrpcval('product.product', "string"));
  77.                 $msg->addParam(new xmlrpcval("search", "string"));
  78.                 $msg->addParam(new xmlrpcval($key, "array"));
  79.  
  80.                 $resp = $client->send($msg);
  81.                
  82.                
  83.                 $val = $resp->value();
  84.                 $ids = $val->scalarval();
  85.                 foreach($ids as $p_id):
  86.                
  87.                     ////// Read needed product data (name) ////////
  88.                     $client2 = new xmlrpc_client($server_url . "/xmlrpc/object");
  89.                     $key2 = array(new xmlrpcval('name', 'string'));  
  90.                     $msg = new xmlrpcmsg('execute');
  91.                     $msg->addParam(new xmlrpcval($dbname, "string"));
  92.                     $msg->addParam(new xmlrpcval($user_id, "int"));
  93.                     $msg->addParam(new xmlrpcval($password, "string"));
  94.                     $msg->addParam(new xmlrpcval("product.product", "string"));
  95.                     $msg->addParam(new xmlrpcval("read", "string"));
  96.                     $msg->addParam(new xmlrpcval($pd_id[0], "struct"));
  97.                     $msg->addParam(new xmlrpcval($key2, "struct"));
  98.                     $resp2 = $client2->send($msg);
  99.                     $val = $resp2->value();
  100.                     $ids2 = $val->scalarval();        
  101.                     $id2 = $ids2[0]->me;
  102.                     // here we get the customer name
  103.                     $product_name = $id2["struct"]["name"]->me["string"];
  104.                     /////////////////////////////////////////////////////
  105.                    
  106.                     array_push($vallinesItems,
  107.                             new xmlrpcval(
  108.                                     array(
  109.                                          new xmlrpcval(0, 'int'),
  110.                                          new xmlrpcval(0, 'int'),
  111.                                          new xmlrpcval(
  112.                                             array(
  113.                                                 'name'=> new xmlrpcval($product_name, 'string'),
  114.                                                 'product_id'=>new xmlrpcval($p_id[0], 'int'),
  115.                                                 'product_uom_qty'=>new xmlrpcval($qty,'int'),
  116.                                                 ),"struct")
  117.                                         ),
  118.                                        "array"
  119.                         ));                    
  120.                      endforeach;
  121.         endforeach;
  122.         // Order Array 
  123.         $valorder = array (
  124.         "partner_id"    => new xmlrpcval("4932", "int"),
  125.         "partner_invoice_id"  => new xmlrpcval("4933", "int"),
  126.         "partner_shipping_id"    => new xmlrpcval("4932", "int"),
  127.         "shop_id"     => new xmlrpcval("1", "int"),
  128.         "pricelist_id" => new xmlrpcval("4", "int"),
  129.         "order_line"    => new xmlrpcval($vallinesItems, "array"),
  130.          );
  131.        
  132.     $client = new xmlrpc_client($server_url . "/xmlrpc/object");
  133.     $client->setSSLVerifyPeer(0);
  134.     $msg = new xmlrpcmsg('execute');
  135.     $msg->addParam(new xmlrpcval($dbname, "string"));
  136.     $msg->addParam(new xmlrpcval($user_id, "int"));
  137.     $msg->addParam(new xmlrpcval($password, "string"));
  138.     $msg->addParam(new xmlrpcval("sale.order", "string"));
  139.     $msg->addParam(new xmlrpcval("create", "string"));
  140.     $msg->addParam(new xmlrpcval($valorder, "struct"));
  141.        
  142.     $response = $client->send($msg);           
  143.    
  144.     endforeach;
  145.    
  146.    
  147.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement