Sample code for 30+ languages & platforms
Perl

WooCommerce List All Products

See more WooCommerce Examples

Gets WooCommerce product information in JSON format.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

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

$http = chilkat::CkHttp->new();

# 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->put_BasicAuth(1);
$http->put_Login("consumer_key");
$http->put_Password("consumer_secret");

$sbResponseBody = chilkat::CkStringBuilder->new();
$success = $http->QuickGetSb("https://example.com/wp-json/wc/v3/products",$sbResponseBody);
if ($success == 0) {
    print $http->lastErrorText() . "\r\n";
    exit;
}

$jarrResp = chilkat::CkJsonArray->new();
$jarrResp->LoadSb($sbResponseBody);
$jarrResp->put_EmitCompact(0);

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

$respStatusCode = $http->get_LastStatus();
print "Response Status Code = " . $respStatusCode . "\r\n";
if ($respStatusCode >= 400) {
    print "Response Header:" . "\r\n";
    print $http->lastHeader() . "\r\n";
    print "Failed." . "\r\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 = chilkat::CkDtObj->new();
$date_created_gmt = chilkat::CkDtObj->new();
$date_modified = chilkat::CkDtObj->new();
$date_modified_gmt = chilkat::CkDtObj->new();
$date_on_sale_from = chilkat::CkDtObj->new();
$date_on_sale_from_gmt = chilkat::CkDtObj->new();
$date_on_sale_to = chilkat::CkDtObj->new();
$date_on_sale_to_gmt = chilkat::CkDtObj->new();

$i = 0;
$count_i = $jarrResp->get_Size();
while ($i < $count_i) {
    # json is a 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->put_J($j);
        $j = $j + 1;
    }

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

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

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

    $j = 0;
    $count_j = $json->SizeOfArray("categories");
    while ($j < $count_j) {
        $json->put_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->put_J($j);
        $j = $j + 1;
    }

    $j = 0;
    $count_j = $json->SizeOfArray("images");
    while ($j < $count_j) {
        $json->put_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->put_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->put_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->put_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->put_J($j);
        $j = $j + 1;
    }

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

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

    $j = 0;
    $count_j = $json->SizeOfArray("_links.self");
    while ($j < $count_j) {
        $json->put_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->put_J($j);
        $href = $json->stringOf("_links.collection[j].href");
        $j = $j + 1;
    }

    $i = $i + 1;
}