<?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> |