PHP SDK Sample: Retrieve Avalara Item Settings
The following tutorial will collect all the Avalara settings from items on an account and store them in associative arrays.
Â
<?php
require_once __DIR__ . '/vendor/autoload.php';
// Disable SSL verification if we're having issues with this PHP install not having the proper CA installed. Fix your CA for a production environment!
// Set debug to true if you need more information on request/response
$client = new GuzzleHttp\Client(['verify' => false, 'debug' => false]);
// Configure API key authorization: ultraCartSimpleApiKey
$config = new ultracart\v2\Configuration();
$config->setApiKey('x-ultracart-simple-key', 'YOUR KEY HERE');
$api_instance = new ultracart\v2\api\ItemApi(
$client,
$config,
new ultracart\v2\HeaderSelector("2016-10-01")
);
$_limit = 200; // int | The maximum number of records to return on this one API call. (Maximum 200)
$_offset = 0; // int | Pagination of the record set. Offset is a zero based index.
$_sort = "merchant_item_id"; // string | The sort order of the orders. See Sorting documentation for examples of using multiple values and sorting by ascending and descending.
$_expand = "properties"; // string | The object expansion to perform on the result.
// Collect values in dictionaries and lists
$itemIdToAvalaraTaxCodeMap = array();
$itemIdToAvalaraTaxDescriptionMap = array();
$itemIds = array();
for ($_offset = 0; ; $_offset += $_limit) {
echo 'Pulling offset ' . $_offset . PHP_EOL;
try {
$result = $api_instance->getItems(null, null, $_limit, $_offset, null, null, $_expand, false);
if ($result->getSuccess()) {
echo 'Retrieved ' . count($result->getItems()) . PHP_EOL;
for ($i = 0; $i < count($result->getItems()); $i++) {
$item = $result->getItems()[$i];
array_push($itemIds, $item->getMerchantItemId());
for ($j = 0; $j < count($item->getProperties()); $j++) {
$property = $item->getProperties()[$j];
if ($property->getName() == "avalaraTaxCodeDescription") {
$itemIdToAvalaraTaxDescriptionMap[$item->getMerchantItemId()] = $property->getValue();
}
if ($property->getName() == "avalaraTaxCode") {
$itemIdToAvalaraTaxCodeMap[$item->getMerchantItemId()] = $property->getValue();
}
}
// Put your code here to process each of the orders that came back
// var_dump($item);
}
// Are we done?
if (count($result->getItems()) < $_limit) {
echo 'Finished' . PHP_EOL;
break;
}
} else {
echo 'Failed to retrieve orders' . PHP_EOL;
var_dump($result);
break;
}
} catch (Exception $e) {
echo 'Exception when calling ItemApi->getItems: ', $e->getMessage(), PHP_EOL;
}
}
echo 'Items:' . PHP_EOL;
var_dump($itemIds);
echo 'Tax Code Map:' . PHP_EOL;
var_dump($itemIdToAvalaraTaxCodeMap);
echo 'Tax Description Map:' . PHP_EOL;
var_dump($itemIdToAvalaraTaxDescriptionMap);
?>