Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
breakoutModefull-width
languagephp
<?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_API_KEY_HERE');

$api_instance = new ultracart\v2\Apiapi\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 = "shipping,shipping.package_requirements"; // string | The object expansion to perform on the result.

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];

                // Is this item perisahble?
                if ($item->getShipping() != null && $item->getShipping()->getPerishableClassName() != null) {
                    echo $item->getMerchantItemId() . PHP_EOL;

                    if ($item->getShipping()->getPackageRequirements() == null) {
                        echo "  adding package requirements";
                        $package_requirements = array();

                        // TODO: Adjust these to be your desired packages
                        $package = new \ultracart\v2\models\ItemShippingPackageRequirement();
                        $package->setPackageName("baby ice chest");
                        array_push($package_requirements, $package);

                        $package = new \ultracart\v2\models\ItemShippingPackageRequirement();
                        $package->setPackageName("small ice chest");
                        array_push($package_requirements, $package);

                        $package = new \ultracart\v2\models\ItemShippingPackageRequirement();
                        $package->setPackageName("medium ice chest");
                        array_push($package_requirements, $package);

                        $package = new \ultracart\v2\models\ItemShippingPackageRequirement();
                        $package->setPackageName("large ice chest");
                        array_push($package_requirements, $package);

                        $package = new \ultracart\v2\models\ItemShippingPackageRequirement();
                        $package->setPackageName("xlarge ice chest");
                        array_push($package_requirements, $package);

                        $item->getShipping()->setPackageRequirements($package_requirements);
                        $item_response = $api_instance->updateItem($item, $item->getMerchantItemOid(), $_expand);
                        $item = $item_response->getItem();
                        var_dump($item->getShipping()->getPackageRequirements());
                    } else {
                        echo "  existing package requirements:";
                        var_dump($item->getShipping()->getPackageRequirements());
                    }
                }
            }

            // Are we done?
            if (count($result->getItems()) < $_limit) {
                echo 'Finished' . PHP_EOL;
                break;
            }
        } else {
            echo 'Failed to retrieve items' . PHP_EOL;
            var_dump($result);
            break;
        }
    } catch (Exception $e) {
        echo 'Exception when calling ItemApi->getItems: ', $e->getMessage(), PHP_EOL;
    }
}

?>