stackflow
stackflow

Reputation: 2122

WooCommerce API: create order and checkout

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!

Upvotes: 5

Views: 17838

Answers (2)

Nabaasa Archie
Nabaasa Archie

Reputation: 29

$orderData = array( "order" => array(

/*

"set_paid"=>true

*/

"status"=>"processing",

"payment_details"=>array("method_id"=>"cod","method_title"=>"Cash on Delivery"),

"billing_address"=>array("first_name"=>"Tumusime","last_name"=>"Deus","company"=>"mcash",
"city"=>"Kampala","address_1"=>"Plot 7 Mukalazi zone","email"=>"[email protected]","phone"=>"0784529043",
),

"shipping_address"=>array("first_name"=>"Tumusime","last_name"=>"Deus","company"=>"mcash",
"city"=>"Kampala","address_1"=>"Plot 7 Mukalazi zone","email"=>"[email protected]","phone"=>"0784529043",
),
"shipping_lines"=>array(
array("id"=>5,"method_id"=>"flat_rate:1",
"method_title"=>"Flat rate","total"=>"10000.00")

),


    "line_items" => array( 
        array(
            "product_id" => 10, 
            "quantity" => 1,

        ) ,
         array(
            "product_id" => 15, 
            "quantity" => 2,

        ) 

    )
)

);

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

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

Upvotes: 1

Reigel Gallarde
Reigel Gallarde

Reputation: 65284

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.

Upvotes: 3

Related Questions