Versions Compared

Key

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


...

Code Block
languagephp
linenumberstrue
<?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>