Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /* Magento*/
- require_once 'app/Mage.php';
- Mage::app();
- umask(0);
- $user = 'admin';
- $password = 'admin';
- $dbname = 'DEBUGGING';
- require_once 'XML/vendor/autoload.php';
- use PhpXmlRpc\Value;
- use PhpXmlRpc\Request;
- use PhpXmlRpc\Client;
- include_once("XML/vendor/phpxmlrpc/phpxmlrpc/lib/xmlrpc.inc");
- //LOGIN
- $server_url = 'https://server-address.com';
- $connexion = new xmlrpc_client($server_url . "/xmlrpc/common");
- $connexion->setSSLVerifyPeer(0);
- $sock_msg = new xmlrpcmsg('login');
- $sock_msg->addParam(new xmlrpcval($dbname, "string"));
- $sock_msg->addParam(new xmlrpcval($user, "string"));
- $sock_msg->addParam(new xmlrpcval($password, "string"));
- $sock_resp = $connexion->send($sock_msg);
- if ($sock_resp->errno != 0){
- echo 'error';
- }else{
- $sock_val = $sock_resp->value();
- $user_id = $sock_val->scalarval();
- ##MAGENTO ORDERS
- $orders = Mage::getResourceModel('sales/order_collection')
- ->addAttributeToSelect('*')
- ->addFieldToFilter('status', array("in" => array(
- 'complete')
- ))
- ->addAttributeToFilter('store_id', Mage::app()->getStore()->getId())
- ->addAttributeToSort('created_at', 'desc')
- ->load();
- # ORDER LINES
- foreach($orders as $order):
- // Generate Lines
- $vallinesItems = array();
- $items = $order->getAllVisibleItems();
- foreach($items as $i):
- $client = new xmlrpc_client($server_url . "/xmlrpc/object");
- $sku = $i->getSku();
- $qty = $i->getqty_ordered();
- ## Search Product ID from Openerp
- $key = array(
- new xmlrpcval(array
- (new xmlrpcval('default_code' , "string"), // field name
- new xmlrpcval('ilike',"string"), // operator
- new xmlrpcval($sku,"string") //Value to search
- ),"array"
- ),
- );
- $msg = new xmlrpcmsg('execute');
- $msg->addParam(new xmlrpcval($dbname, "string"));
- $msg->addParam(new xmlrpcval($user_id, "int"));
- $msg->addParam(new xmlrpcval($password, "string"));
- $msg->addParam(new xmlrpcval('product.product', "string"));
- $msg->addParam(new xmlrpcval("search", "string"));
- $msg->addParam(new xmlrpcval($key, "array"));
- $resp = $client->send($msg);
- $val = $resp->value();
- $ids = $val->scalarval();
- foreach($ids as $p_id):
- ////// Read needed product data (name) ////////
- $client2 = new xmlrpc_client($server_url . "/xmlrpc/object");
- $key2 = array(new xmlrpcval('name', 'string'));
- $msg = new xmlrpcmsg('execute');
- $msg->addParam(new xmlrpcval($dbname, "string"));
- $msg->addParam(new xmlrpcval($user_id, "int"));
- $msg->addParam(new xmlrpcval($password, "string"));
- $msg->addParam(new xmlrpcval("product.product", "string"));
- $msg->addParam(new xmlrpcval("read", "string"));
- $msg->addParam(new xmlrpcval($pd_id[0], "struct"));
- $msg->addParam(new xmlrpcval($key2, "struct"));
- $resp2 = $client2->send($msg);
- $val = $resp2->value();
- $ids2 = $val->scalarval();
- $id2 = $ids2[0]->me;
- // here we get the customer name
- $product_name = $id2["struct"]["name"]->me["string"];
- /////////////////////////////////////////////////////
- array_push($vallinesItems,
- new xmlrpcval(
- array(
- new xmlrpcval(0, 'int'),
- new xmlrpcval(0, 'int'),
- new xmlrpcval(
- array(
- 'name'=> new xmlrpcval($product_name, 'string'),
- 'product_id'=>new xmlrpcval($p_id[0], 'int'),
- 'product_uom_qty'=>new xmlrpcval($qty,'int'),
- ),"struct")
- ),
- "array"
- ));
- endforeach;
- endforeach;
- // Order Array
- $valorder = array (
- "partner_id" => new xmlrpcval("4932", "int"),
- "partner_invoice_id" => new xmlrpcval("4933", "int"),
- "partner_shipping_id" => new xmlrpcval("4932", "int"),
- "shop_id" => new xmlrpcval("1", "int"),
- "pricelist_id" => new xmlrpcval("4", "int"),
- "order_line" => new xmlrpcval($vallinesItems, "array"),
- );
- $client = new xmlrpc_client($server_url . "/xmlrpc/object");
- $client->setSSLVerifyPeer(0);
- $msg = new xmlrpcmsg('execute');
- $msg->addParam(new xmlrpcval($dbname, "string"));
- $msg->addParam(new xmlrpcval($user_id, "int"));
- $msg->addParam(new xmlrpcval($password, "string"));
- $msg->addParam(new xmlrpcval("sale.order", "string"));
- $msg->addParam(new xmlrpcval("create", "string"));
- $msg->addParam(new xmlrpcval($valorder, "struct"));
- $response = $client->send($msg);
- endforeach;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement