Currently GetProducts (https://developers.whmcs.com/api-reference/getproducts/) retrieves all products and no information regarding if the product is active or not.
So I just created my own API call to handle this and only retrieve the visible (not hidden) products.
Just upload to /includes/api .
Request Parameters “GetProductsActive”
Parameter | Type | Description | Required |
---|---|---|---|
action | string | “GetProductsActive” | Required |
pid | int | string | Obtain a specific product id configuration. Can be a list of ids comma separated |
gid | int | Retrieve products in a specific group id | Optional |
Response Parameters
Parameter | Type | Description |
---|---|---|
result | string | The result of the operation: success or error |
totalresults | int | The total number of results available |
startnumber | int | The starting number for the returned results |
numreturned | int | The number of results returned |
products | array | An array of products matching the criteria passed |
Example Request (CURL)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.example.com/includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query(
array(
'action' => 'GetProductsActive',
// See https://developers.whmcs.com/api/authentication
'username' => 'IDENTIFIER_OR_ADMIN_USERNAME',
'password' => 'SECRET_OR_HASHED_PASSWORD',
'pid' => '1',
'responsetype' => 'json',
)
)
);
$response = curl_exec($ch);
curl_close($ch);
Example Request (Local API)
$command = 'GetProductsActive';
$postData = array(
'pid' => '1', // or gid => '1' or both
);
$adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later
$results = localAPI($command, $postData, $adminUsername);
print_r($results);
Have a better code or add something? Please do!
You can download the code here: GITHUB WHMCS API getproductsactive
Cheers,
David
0 Comments
0 Likes