A PHP wrapper for the WooCommerce REST API
Switch branches/tags
Nothing to show
Clone or download
Latest commit 66fb772 Jul 13, 2015
Type Name Latest commit message Commit time
Failed to load latest commit information.
example Note on root namespace. Jun 4, 2015
lib hello v2.0.1 Jul 13, 2015
.gitignore Add composer.json May 5, 2015
CHANGELOG hello v2.0.1 Jul 13, 2015
LICENSE Initial commit Dec 7, 2013
README.md fix readme typo May 18, 2015
composer.json Added composer requirements Jul 13, 2015


WooCommerce REST API PHP Client Library


A PHP wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library.

Feedback and bug reports are appreciated.


PHP 5.2.x cURL WooCommerce 2.2 at least on the store

Getting started

Generate API credentials (Consumer Key & Consumer Secret) under WP Admin > Your Profile.

Setup the library

require_once( 'lib/woocommerce-api.php' );

$options = array(
	'ssl_verify'      => false,

try {

	$client = new WC_API_Client( 'http://your-store-url.com', $consumer_key, $consumer_secret, $options );

} catch ( WC_API_Client_Exception $e ) {

	echo $e->getMessage() . PHP_EOL;
	echo $e->getCode() . PHP_EOL;

	if ( $e instanceof WC_API_Client_HTTP_Exception ) {

		print_r( $e->get_request() );
		print_r( $e->get_response() );


  • debug (default false) - set to true to add request/response information to the returned data. This is particularly useful for troubleshooting errors.

  • return_as_array (default false) - all methods return data as a stdClass by default, but you can set this option to true to return data as an associative array instead.

  • validate_url (default false) - set this to true to verify that the URL provided has a valid, parseable WC API index, and optionally force SSL when supported.

  • timeout (default 30) - set this to control the HTTP timeout for requests.

  • ssl_verify (default true) - set this to false if you don't want to perform SSL peer verification for every request.

Error handling

Exceptions are thrown when errors are encountered, most will be instances of WC_API_Client_HTTP_Exception which has two additional methods, get_request() and get_response() -- these return the request and response objects to help with debugging.



  • $client->index->get() - get the API index


  • $client->orders->get() - get a list of orders
  • $client->orders->get( null, array( 'status' => 'completed' ) ) - get a list of completed orders
  • $client->orders->get( $order_id ) - get a single order


Copyright (c) 2013-2014 - Gerhard Potgieter, Max Rice and other contributors


Released under the GPL3 license