Sample Code
<?php
require_once __DIR__ . '/vendor/autoload.php';
// TODO: Replace YOUR KEY HERE with an Application API Key that has read & write permission to the order resource.
// Configure API key authorization: ultraCartSimpleApiKey
ultracart\v2\Configuration::getDefaultConfiguration()->setApiKey('x-ultracart-simple-key', 'YOUR KEY HERE');
// 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]);
$api_instance = new ultracart\v2\api\OrderApi(
$client,
ultracart\v2\Configuration::getDefaultConfiguration(),
new ultracart\v2\HeaderSelector("2016-10-01")
);
// TODO: Replace this with the order id you want to replace
$replacingOrderId = "DEMO-2019057896";
// Setup an array to contain the items that will be on the order
$items = array();
// TODO: Create each item and push it into the array.
$item = new \ultracart\v2\models\OrderReplacementItem();
$item->setMerchantItemId("SAMPLE");
$item->setQuantity(1);
array_push($items, $item);
// Setup the overall order replacement object.
$orderReplacement = new ultracart\v2\models\OrderReplacement();
// TODO: Decide if the replacement is free or if there is a cost that needs to be charged to the customer
$orderReplacement->setFree(false);
$orderReplacement->setImmediateCharge(false);
$orderReplacement->setItems($items);
// You can store values in the custom fields such as the original order id for example
$orderReplacement->setCustomField7($replacingOrderId);
// Perform the replacement
$result = $api_instance->replacement($replacingOrderId, $orderReplacement);
// Dump the result for debug
var_dump($result);
// If the order was created, then let's grab the full order object
if ($result->getSuccessful()) {
$order = $api_instance->getOrder($result->getOrderId(), "all");
// Dump the result for debug
var_dump($order);
// Generate a text formatted version of the order for display.
$formatOptions = new \ultracart\v2\models\OrderFormat();
$formatOptions->setFormat("text");
$formattedOrder = $api_instance->format($result->getOrderId(), $formatOptions);
echo $formattedOrder->getFormattedResult();
}
?>