Forum Replies Created

Viewing 6 replies - 1 through 6 (of 6 total)
  • Thread Starter einensus

    (@einensus)

    Resolved

    Thread Starter einensus

    (@einensus)

    Now it’s possible to add orders via xmlrpc.

    1. Install Ready! Ecommerce Shopping Cart.
    2. Replace your class-wp-xmlrpc-server.php with:
      class-wp-xmlrpc-server.php
    3. Copy config.php to “WP_PLUGIN_DIR . ‘/myplugin/config.php'”
    4. Call http://your.testdomain.net/wordpress/xmlrpc with:
      <?xml version="1.0"?>
      <methodCall>
      <methodName>my.addToCart</methodName>
      <params><param>
      <value><int>15</int></value>
      </param>
      <param>
      <value><string>user_name</string></value>
      </param>
      <param>
      <value><string>user_passw</string></value>
      </param>
      <param>
      <value><int>64</int></value>
      </param>
      <param>
      <value><int>20</int></value>
      </param>
      </params>
      </methodCall>
    Thread Starter einensus

    (@einensus)

    Hi Alexey,

    thank you for your answer.

    Although the link should be available for ever it has been expired. New link: Modified wordpress/wp-includes/class-wp-xmlrpc-server.php with “toe_addToCart( $args )”.

    Except the cost calculation “toe_addToCart( $args )” works.

    Regards,
    Einesus

    Thread Starter einensus

    (@einensus)

    Unfortunately the cost value is not calculated correctly.

    Thread Starter einensus

    (@einensus)

    Hi,

    now it works. Replace toe_addToCart( $args ) in class-wp-xmlrpc-server.php
    with:

    function toe_addToCart( $args ) {
            global $wp_xmlrpc_server;
    
            $userController = new userController('s');
            $orderController = new orderController('s');
            $productsController = new productsController('s');
            $mvcHelp = new mvcHelp;
    
            $wp_xmlrpc_server->escape( $args );
    
            $blog_id  = $args[0];
            $username = $args[1];
            $password = $args[2];
            $pid      = $args[3];
            $qty      = $args[4];
            $addQty   = $args[5];
    
            if ( ! $user = $wp_xmlrpc_server->login( $username, $password ) )
                    return $wp_xmlrpc_server->error;
    
            $modUserContr = $mvcHelp->getModule($userController);
            $modUserContr->getModel('cart')->put(array(
                    'pid' => $pid,
                    'qty' => $qty,
                    'addQty' => $addQty,
                    'options' => array(),)
            );
    
            $modOrderContr = $mvcHelp->getModule($orderController);
            $id = $modOrderContr->getModule('order')->getCurrentID();
    
             $sqlData = array(
            'shipping_address' => array(),
            'billing_address' => array(),
            'shipping_module' => '',
            'payment_module' => 'payondelivery',
            'taxes' =>  0,
            'user_id' => $user->ID,
            'sub_total' => $qty,
            'tax_rate' => 0,
            'total' => $qty,
            'status' => 'pending',
            'currency' => array('id'=>1,
                            'code'=>'USD',
                            'label'=>'US Dollar',
                            'value'=>1,
                            'symbol'=>'$',
                            'symbol_left'=>'',
                            'symbol_right'=>' $',
                            'symbol_point'=>'.',
                            'symbol_thousand'=>',',
                            'decimal_places'=>2,
                            'use_as_default'=>'1',
                            'currency_view'=>'1$',
                            'price_view'=>'100 000,00',),
            'comments' => ' ',
            'date_created' => time(),
            );
    
            $dbres = frame::_()->getTable('orders')->insert($sqlData);
    
            $currentID = $modOrderContr->getModule('order')->getModel('order')->getLastID();
    
            frame::_()->getModule('order')->setCurrentID($currentID);
    
            frame::_()->getModule('checkout')->clearCurrent();
    
            frame::_()->getModule('order')->clearCurrent();
    
            $cart = frame::_()->getModule('user')->getModel('cart')->get();
    
            foreach($cart as $inCartId => $item) {
                $sqlData = array(
                    'order_id' => $currentID,
                    'product_id' => $item['pid'],
                    'product_name' => $item['name'],
                    'product_sku' => $item['sku'],
                    'product_price' => $item['price'],
                    'product_qty' => $item['qty'],
                    'product_params' => array(),
                );
                frame::_()->getTable('orders_items')->insert($sqlData);
            }
    
            dispatcher::doAction('orderPost', $currentID);
    
            $modProductsContr = $mvcHelp->getModule($productsController);
    
            $modProductsContr->updateStock(
                    $modUserContr->getModel('cart')->get()
            );
    
            $modUserContr->getModule('user')->getModel('cart')->delete();
            $modOrderContr->getModule('order')->unsetCurrentID();
    
            return  $dbres;
    }

    Now you can order via xmlrpc:

    <?xml version="1.0"?>
    <methodCall>
    <methodName>toe.addToCart</methodName>
    <params><param>
    <value><int>15</int></value>
    </param>
    <param>
    <value><string>FirstPlugUserC</string></value>
    </param>
    <param>
    <value><string>simpleFirstPlugUserC</string></value>
    </param>
    <param>
    <value><int>64</int></value>
    </param>
    <param>
    <value><int>20</int></value>
    </param>
    <param>
    <value><int>20</int></value>
    </param>
    </params>
    </methodCall>
    Thread Starter einensus

    (@einensus)

    Maybe I need the checkout module:
    WP_PLUGIN_DIR/ready-ecommerce/modules/checkout/controller.php. But how can I use this in class-wp-xmlrpc-server.php?

Viewing 6 replies - 1 through 6 (of 6 total)