WooCommerce API: create order and checkout

stackflow picture stackflow · Dec 8, 2015 · Viewed 10.4k times · Source

WHAT AM I TRYING TO DO

I want to make a Native Android APP (Not HTML5/Jquery mobile) for my Woocommerce website. I am trying to setup the APIs using kloon/WooCommerce-REST-API-Client-Library.

So far I managed to retrieve the lists of products, coupons, customers, orders etc... which I could use to display in my Android app.

Now I want to replicate add to cart/checkout process in the android app, but it seems this library dosen't provide functions for such workflow.

MY QUESTION

How can I achieve the follwing workflow with REST APIs in my Android app? (Similar to the website checkout process)

Flow:

  1. Add to cart

enter image description here enter image description here

  1. View cart and update order

enter image description here

  1. Check out and confirmation

enter image description here enter image description here

Please tell me if I'm missing any API calls.

If someone already achieved this, kindly post your resources and comments bellow. Any sample-codes/liraries/helper-classes links will be greatly appriciated.

Thank you!

Answer

Reigel picture Reigel · Dec 8, 2015

if you try to read the example.php and read all the php file in lib folder, I think you can achieve all these...

example.php has something like:

// orders
//print_r( $client->orders->get() );
//print_r( $client->orders->get( $order_id ) );
//print_r( $client->orders->update_status( $order_id, 'pending' ) );

and if you'll look at class-wc-api-client-resource-orders.php, you have this:

/**
 * Create an order
 *
 * POST /orders
 *
 * @since 2.0
 * @param array $data valid order data
 * @return array|object your newly-created order
 */
public function create( $data ) {
    $this->set_request_args( array(
        'method' => 'POST',
        'body'   => $data,
    ) );
    return $this->do_request();
}

now you'll just have to test everything.

$orderData = array(
    "order" => array(
        "line_items" => array( 
            array(
                "product_id" => 1, 
                "quantity" => 1
            ) 
        )
    )
);

$client->orders->create($orderData);

Another suggestion is why not use WooCommerce REST API instead? It has great documentation and examples.