Sample code for 30+ languages & platforms
PHP ActiveX

WooCommerce List All Products

See more WooCommerce Examples

Gets WooCommerce product information in JSON format.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$http = new COM("Chilkat.Http");

// Implements the following CURL command:

// curl https://example.com/wp-json/wc/v3/products \
//     -u consumer_key:consumer_secret

// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code

$http->BasicAuth = 1;
$http->Login = 'consumer_key';
$http->Password = 'consumer_secret';

$sbResponseBody = new COM("Chilkat.StringBuilder");
$success = $http->QuickGetSb('https://example.com/wp-json/wc/v3/products',$sbResponseBody);
if ($success == 0) {
    print $http->LastErrorText . "\n";
    exit;
}

$jarrResp = new COM("Chilkat.JsonArray");
$jarrResp->LoadSb($sbResponseBody);
$jarrResp->EmitCompact = 0;

print 'Response Body:' . "\n";
print $jarrResp->emit() . "\n";

$respStatusCode = $http->LastStatus;
print 'Response Status Code = ' . $respStatusCode . "\n";
if ($respStatusCode >= 400) {
    print 'Response Header:' . "\n";
    print $http->LastHeader . "\n";
    print 'Failed.' . "\n";
    exit;
}

// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)

// [
//   {
//     "id": 799,
//     "name": "Ship Your Idea",
//     "slug": "ship-your-idea-22",
//     "permalink": "https://example.com/product/ship-your-idea-22/",
//     "date_created": "2017-03-23T17:03:12",
//     "date_created_gmt": "2017-03-23T20:03:12",
//     "date_modified": "2017-03-23T17:03:12",
//     "date_modified_gmt": "2017-03-23T20:03:12",
//     "type": "variable",
//     "status": "publish",
//     "featured": false,
//     "catalog_visibility": "visible",
//     "description": "<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>\n",
//     "short_description": "<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>\n",
//     "sku": "",
//     "price": "",
//     "regular_price": "",
//     "sale_price": "",
//     "date_on_sale_from": null,
//     "date_on_sale_from_gmt": null,
//     "date_on_sale_to": null,
//     "date_on_sale_to_gmt": null,
//     "price_html": "",
//     "on_sale": false,
//     "purchasable": false,
//     "total_sales": 0,
//     "virtual": false,
//     "downloadable": false,
//     "downloads": [
//     ],
//     "download_limit": -1,
//     "download_expiry": -1,
//     "external_url": "",
//     "button_text": "",
//     "tax_status": "taxable",
//     "tax_class": "",
//     "manage_stock": false,
//     "stock_quantity": null,
//     "stock_status": "instock",
//     "backorders": "no",
//     "backorders_allowed": false,
//     "backordered": false,
//     "sold_individually": false,
//     "weight": "",
//     "dimensions": {
//       "length": "",
//       "width": "",
//       "height": ""
//     },
//     "shipping_required": true,
//     "shipping_taxable": true,
//     "shipping_class": "",
//     "shipping_class_id": 0,
//     "reviews_allowed": true,
//     "average_rating": "0.00",
//     "rating_count": 0,
//     "related_ids": [
//       31,
//       22,
//       369,
//       414,
//       56
//     ],
//     "upsell_ids": [
//     ],
//     "cross_sell_ids": [
//     ],
//     "parent_id": 0,
//     "purchase_note": "",
//     "categories": [
//       {
//         "id": 9,
//         "name": "Clothing",
//         "slug": "clothing"
//       },
//       {
//         "id": 14,
//         "name": "T-shirts",
//         "slug": "t-shirts"
//       }
//     ],
//     "tags": [
//     ],
//     "images": [
//       {
//         "id": 795,
//         "date_created": "2017-03-23T14:03:08",
//         "date_created_gmt": "2017-03-23T20:03:08",
//         "date_modified": "2017-03-23T14:03:08",
//         "date_modified_gmt": "2017-03-23T20:03:08",
//         "src": "https://example.com/wp-content/uploads/2017/03/T_4_front-11.jpg",
//         "name": "",
//         "alt": ""
//       },
//       {
//         "id": 796,
//         "date_created": "2017-03-23T14:03:09",
//         "date_created_gmt": "2017-03-23T20:03:09",
//         "date_modified": "2017-03-23T14:03:09",
//         "date_modified_gmt": "2017-03-23T20:03:09",
//         "src": "https://example.com/wp-content/uploads/2017/03/T_4_back-10.jpg",
//         "name": "",
//         "alt": ""
//       },
//       {
//         "id": 797,
//         "date_created": "2017-03-23T14:03:10",
//         "date_created_gmt": "2017-03-23T20:03:10",
//         "date_modified": "2017-03-23T14:03:10",
//         "date_modified_gmt": "2017-03-23T20:03:10",
//         "src": "https://example.com/wp-content/uploads/2017/03/T_3_front-10.jpg",
//         "name": "",
//         "alt": ""
//       },
//       {
//         "id": 798,
//         "date_created": "2017-03-23T14:03:11",
//         "date_created_gmt": "2017-03-23T20:03:11",
//         "date_modified": "2017-03-23T14:03:11",
//         "date_modified_gmt": "2017-03-23T20:03:11",
//         "src": "https://example.com/wp-content/uploads/2017/03/T_3_back-10.jpg",
//         "name": "",
//         "alt": ""
//       }
//     ],
//     "attributes": [
//       {
//         "id": 6,
//         "name": "Color",
//         "position": 0,
//         "visible": false,
//         "variation": true,
//         "options": [
//           "Black",
//           "Green"
//         ]
//       },
//       {
//         "id": 0,
//         "name": "Size",
//         "position": 0,
//         "visible": true,
//         "variation": true,
//         "options": [
//           "S",
//           "M"
//         ]
//       }
//     ],
//     "default_attributes": [
//     ],
//     "variations": [
//     ],
//     "grouped_products": [
//     ],
//     "menu_order": 0,
//     "meta_data": [
//     ],
//     "_links": {
//       "self": [
//         {
//           "href": "https://example.com/wp-json/wc/v3/products/799"
//         }
//       ],
//       "collection": [
//         {
//           "href": "https://example.com/wp-json/wc/v3/products"
//         }
//       ]
//     }
//   },
//   {
//     "id": 794,
//     "name": "Premium Quality",
//     "slug": "premium-quality-19",
//     "permalink": "https://example.com/product/premium-quality-19/",
//     "date_created": "2017-03-23T17:01:14",
//     "date_created_gmt": "2017-03-23T20:01:14",
//     "date_modified": "2017-03-23T17:01:14",
//     "date_modified_gmt": "2017-03-23T20:01:14",
//     "type": "simple",
//     "status": "publish",
//     "featured": false,
//     "catalog_visibility": "visible",
//     "description": "<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>\n",
//     "short_description": "<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>\n",
//     "sku": "",
//     "price": "21.99",
//     "regular_price": "21.99",
//     "sale_price": "",
//     "date_on_sale_from": null,
//     "date_on_sale_from_gmt": null,
//     "date_on_sale_to": null,
//     "date_on_sale_to_gmt": null,
//     "price_html": "<span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">&#36;</span>21.99</span>",
//     "on_sale": false,
//     "purchasable": true,
//     "total_sales": 0,
//     "virtual": false,
//     "downloadable": false,
//     "downloads": [
//     ],
//     "download_limit": -1,
//     "download_expiry": -1,
//     "external_url": "",
//     "button_text": "",
//     "tax_status": "taxable",
//     "tax_class": "",
//     "manage_stock": false,
//     "stock_quantity": null,
//     "stock_status": "instock",
//     "backorders": "no",
//     "backorders_allowed": false,
//     "backordered": false,
//     "sold_individually": false,
//     "weight": "",
//     "dimensions": {
//       "length": "",
//       "width": "",
//       "height": ""
//     },
//     "shipping_required": true,
//     "shipping_taxable": true,
//     "shipping_class": "",
//     "shipping_class_id": 0,
//     "reviews_allowed": true,
//     "average_rating": "0.00",
//     "rating_count": 0,
//     "related_ids": [
//       463,
//       47,
//       31,
//       387,
//       458
//     ],
//     "upsell_ids": [
//     ],
//     "cross_sell_ids": [
//     ],
//     "parent_id": 0,
//     "purchase_note": "",
//     "categories": [
//       {
//         "id": 9,
//         "name": "Clothing",
//         "slug": "clothing"
//       },
//       {
//         "id": 14,
//         "name": "T-shirts",
//         "slug": "t-shirts"
//       }
//     ],
//     "tags": [
//     ],
//     "images": [
//       {
//         "id": 792,
//         "date_created": "2017-03-23T14:01:13",
//         "date_created_gmt": "2017-03-23T20:01:13",
//         "date_modified": "2017-03-23T14:01:13",
//         "date_modified_gmt": "2017-03-23T20:01:13",
//         "src": "https://example.com/wp-content/uploads/2017/03/T_2_front-4.jpg",
//         "name": "",
//         "alt": ""
//       },
//       {
//         "id": 793,
//         "date_created": "2017-03-23T14:01:14",
//         "date_created_gmt": "2017-03-23T20:01:14",
//         "date_modified": "2017-03-23T14:01:14",
//         "date_modified_gmt": "2017-03-23T20:01:14",
//         "src": "https://example.com/wp-content/uploads/2017/03/T_2_back-2.jpg",
//         "name": "",
//         "alt": ""
//       }
//     ],
//     "attributes": [
//     ],
//     "default_attributes": [
//       {
//         "id": 6,
//         "name": "Color",
//         "option": "black"
//       },
//       {
//         "id": 0,
//         "name": "Size",
//         "option": "S"
//       }
//     ],
//     "variations": [
//     ],
//     "grouped_products": [
//     ],
//     "menu_order": 0,
//     "meta_data": [
//     ],
//     "_links": {
//       "self": [
//         {
//           "href": "https://example.com/wp-json/wc/v3/products/794"
//         }
//       ],
//       "collection": [
//         {
//           "href": "https://example.com/wp-json/wc/v3/products"
//         }
//       ]
//     }
//   }
// ]

// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON

$date_created = new COM("Chilkat.DtObj");
$date_created_gmt = new COM("Chilkat.DtObj");
$date_modified = new COM("Chilkat.DtObj");
$date_modified_gmt = new COM("Chilkat.DtObj");
$date_on_sale_from = new COM("Chilkat.DtObj");
$date_on_sale_from_gmt = new COM("Chilkat.DtObj");
$date_on_sale_to = new COM("Chilkat.DtObj");
$date_on_sale_to_gmt = new COM("Chilkat.DtObj");

$i = 0;
$count_i = $jarrResp->Size;
while ($i < $count_i) {
    // json is a Chilkat.JsonObject
    $json = $jarrResp->ObjectAt($i);
    $id = $json->IntOf('id');
    $name = $json->stringOf('name');
    $slug = $json->stringOf('slug');
    $permalink = $json->stringOf('permalink');
    $json->DtOf('date_created',0,$date_created);
    $json->DtOf('date_created_gmt',0,$date_created_gmt);
    $json->DtOf('date_modified',0,$date_modified);
    $json->DtOf('date_modified_gmt',0,$date_modified_gmt);
    $v_type = $json->stringOf('type');
    $status = $json->stringOf('status');
    $featured = $json->BoolOf('featured');
    $catalog_visibility = $json->stringOf('catalog_visibility');
    $description = $json->stringOf('description');
    $short_description = $json->stringOf('short_description');
    $sku = $json->stringOf('sku');
    $price = $json->stringOf('price');
    $regular_price = $json->stringOf('regular_price');
    $sale_price = $json->stringOf('sale_price');
    $json->DtOf('date_on_sale_from',0,$date_on_sale_from);
    $json->DtOf('date_on_sale_from_gmt',0,$date_on_sale_from_gmt);
    $json->DtOf('date_on_sale_to',0,$date_on_sale_to);
    $json->DtOf('date_on_sale_to_gmt',0,$date_on_sale_to_gmt);
    $price_html = $json->stringOf('price_html');
    $on_sale = $json->BoolOf('on_sale');
    $purchasable = $json->BoolOf('purchasable');
    $total_sales = $json->IntOf('total_sales');
    $v_virtual = $json->BoolOf('virtual');
    $downloadable = $json->BoolOf('downloadable');
    $download_limit = $json->IntOf('download_limit');
    $download_expiry = $json->IntOf('download_expiry');
    $external_url = $json->stringOf('external_url');
    $button_text = $json->stringOf('button_text');
    $tax_status = $json->stringOf('tax_status');
    $tax_class = $json->stringOf('tax_class');
    $manage_stock = $json->BoolOf('manage_stock');
    $stock_quantity = $json->stringOf('stock_quantity');
    $stock_status = $json->stringOf('stock_status');
    $backorders = $json->stringOf('backorders');
    $backorders_allowed = $json->BoolOf('backorders_allowed');
    $backordered = $json->BoolOf('backordered');
    $sold_individually = $json->BoolOf('sold_individually');
    $weight = $json->stringOf('weight');
    $dimensionsLength = $json->stringOf('dimensions.length');
    $dimensionsWidth = $json->stringOf('dimensions.width');
    $dimensionsHeight = $json->stringOf('dimensions.height');
    $shipping_required = $json->BoolOf('shipping_required');
    $shipping_taxable = $json->BoolOf('shipping_taxable');
    $shipping_class = $json->stringOf('shipping_class');
    $shipping_class_id = $json->IntOf('shipping_class_id');
    $reviews_allowed = $json->BoolOf('reviews_allowed');
    $average_rating = $json->stringOf('average_rating');
    $rating_count = $json->IntOf('rating_count');
    $parent_id = $json->IntOf('parent_id');
    $purchase_note = $json->stringOf('purchase_note');
    $menu_order = $json->IntOf('menu_order');
    $j = 0;
    $count_j = $json->SizeOfArray('downloads');
    while ($j < $count_j) {
        $json->J = $j;
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('related_ids');
    while ($j < $count_j) {
        $json->J = $j;
        $intVal = $json->IntOf('related_ids[j]');
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('upsell_ids');
    while ($j < $count_j) {
        $json->J = $j;
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('cross_sell_ids');
    while ($j < $count_j) {
        $json->J = $j;
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('categories');
    while ($j < $count_j) {
        $json->J = $j;
        $id = $json->IntOf('categories[j].id');
        $name = $json->stringOf('categories[j].name');
        $slug = $json->stringOf('categories[j].slug');
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('tags');
    while ($j < $count_j) {
        $json->J = $j;
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('images');
    while ($j < $count_j) {
        $json->J = $j;
        $id = $json->IntOf('images[j].id');
        $json->DtOf('images[j].date_created',0,$date_created);
        $json->DtOf('images[j].date_created_gmt',0,$date_created_gmt);
        $json->DtOf('images[j].date_modified',0,$date_modified);
        $json->DtOf('images[j].date_modified_gmt',0,$date_modified_gmt);
        $src = $json->stringOf('images[j].src');
        $name = $json->stringOf('images[j].name');
        $alt = $json->stringOf('images[j].alt');
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('attributes');
    while ($j < $count_j) {
        $json->J = $j;
        $id = $json->IntOf('attributes[j].id');
        $name = $json->stringOf('attributes[j].name');
        $position = $json->IntOf('attributes[j].position');
        $visible = $json->BoolOf('attributes[j].visible');
        $variation = $json->BoolOf('attributes[j].variation');
        $k = 0;
        $count_k = $json->SizeOfArray('attributes[j].options');
        while ($k < $count_k) {
            $json->K = $k;
            $strVal = $json->stringOf('attributes[j].options[k]');
            $k = $k + 1;
        }

        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('default_attributes');
    while ($j < $count_j) {
        $json->J = $j;
        $id = $json->IntOf('default_attributes[j].id');
        $name = $json->stringOf('default_attributes[j].name');
        $v_option = $json->stringOf('default_attributes[j].option');
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('variations');
    while ($j < $count_j) {
        $json->J = $j;
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('grouped_products');
    while ($j < $count_j) {
        $json->J = $j;
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('meta_data');
    while ($j < $count_j) {
        $json->J = $j;
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('_links.self');
    while ($j < $count_j) {
        $json->J = $j;
        $href = $json->stringOf('_links.self[j].href');
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray('_links.collection');
    while ($j < $count_j) {
        $json->J = $j;
        $href = $json->stringOf('_links.collection[j].href');
        $j = $j + 1;
    }

    $i = $i + 1;
}


?>