...
language | php |
---|---|
linenumbers | true |
...
<?php /* docs.ultracart.com sample */ ?>
<?php
// Did you get an error?
// See this: https://ultracart.atlassian.net/wiki/spaces/ucdoc/pages/39077885/Troubleshooting+API+Errors
?>
<?php
// for testing and development only
set_time_limit(3000);
...
ini_set('max_execution_time', 3000);
...
ini_set('display_errors', 1);
...
error_reporting(E
...
_ALL);
?>
<?php
// initialization code
require_once './vendor/autoload.php';
$simple_key = '4256aaf6dfedfa01582fe9a961ab0100216d737b874a4801582fe9a961ab0100';
ultracart\v2\Configuration::getDefaultConfiguration()->setApiKey('x-ultracart-simple-key', $simple_key);
$client = new GuzzleHttp\Client(['verify' => true, 'debug' => false]);
$config = ultracart\v2\Configuration::getDefaultConfiguration();
$headerSelector = new \ultracart\v2\HeaderSelector(/* leave null for version tied to this sdk version */);
$order_api = new ultracart\v2\Api\OrderApi($client, $config, $headerSelector);
?>
<?php
function die_if_api_error(\ultracart\v2\models\OrderResponse $order_response){
...
if ($order_response->getError() != null) {
...
echo "Error:<br>";
...
echo $order_response->getError()->getDeveloperMessage() . '<br>';
...
echo $order_response->getError()->getUserMessage() . '<br>';
...
die('handle this error gracefully');
...
}
...
}
?>
<!DOCTYPE html>
<html>
<body>
<?php
try {
...
$order_id = 'DEMO-0009103637';
...
$new_item_id = 'PDF';
...
$order_
...
expansion = "item"; // this is absolutely critical. expansion must contain item or you'll wipe out the existing items.
...
$order_api = new \ultracart\v2\api\OrderApi();
...
$order_response = $order_api->getOrder($order_id, $order_expansion);
...
die_if_api_error($order_response);
...
$order = $order_response->getOrder();
...
$items = $order->getItems();
...
$new_item = new \ultracart\v2\models\OrderItem();
...
$new_item->setQuantity(2);
...
$new_item->setMerchantItemId($new_item_id);
...
$new_item->setDescription("PDF blueprint or something...");
...
$new_item->setCost(new \ultracart\v2\models\Currency(['value' => 9.99]));
...
$new_item->setWeight(new \ultracart\v2\models\Weight(['uom' => "OZ", 'value' => 5]));
...
$new_item->setDistributionCenterCode('DFLT'); // don't assume the code. look it up on the item.
...
array_push($items, $new_item);
...
$order_response = $order_api->updateOrder($order, $order_id, $order_expansion); // be sure to use the same expansion so the result can be checked.
...
die_if_api_error($order_response);
...
$updated_order = $order_response->getOrder();
...
foreach ($updated_order->getItems() as $item) {
...
echo "<pre>";
...
echo print_r($item);
...
echo "</pre>";
...
echo "-----------------------------------------";
...
}
...
} catch (\ultracart\v2\ApiException $e) {
...
echo 'API Exception when calling OrderAPI: ', $e->getMessage(), PHP_EOL;
...
echo print_r($e->getResponseBody()), PHP_EOL;
...
} catch (Exception $e) {
...
echo 'Exception when calling OrderAPI: ', $e->getMessage(), PHP_EOL;
...
}
...
?>
...
</
...
body>
</
...
html>