/**
 * Get Get Fulfillment Preview Action Sample
 * Gets competitive pricing and related information for a product identified by
 * the MarketplaceId and ASIN.
 *
 * @param FBAOutboundServiceMWS_Interface $service instance of FBAOutboundServiceMWS_Interface
 * @param mixed $request FBAOutboundServiceMWS_Model_GetFulfillmentPreview or array of parameters
 */
function invokeGetFulfillmentPreview(FBAOutboundServiceMWS_Interface $service, $request)
{
    try {
        $response = $service->GetFulfillmentPreview($request);
        echo "Service Response\n";
        echo "=============================================================================\n";
        $dom = new DOMDocument();
        $dom->loadXML($response->toXML());
        $dom->preserveWhiteSpace = false;
        $dom->formatOutput = true;
        echo $dom->saveXML();
        echo "ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n";
    } catch (FBAOutboundServiceMWS_Exception $ex) {
        echo "Caught Exception: " . $ex->getMessage() . "\n";
        echo "Response Status Code: " . $ex->getStatusCode() . "\n";
        echo "Error Code: " . $ex->getErrorCode() . "\n";
        echo "Error Type: " . $ex->getErrorType() . "\n";
        echo "Request ID: " . $ex->getRequestId() . "\n";
        echo "XML: " . $ex->getXML() . "\n";
        echo "ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n";
    }
}
function invokeGetPackageTrackingDetails(FBAOutboundServiceMWS_Interface $service, $request)
{
    try {
        $response = $service->getPackageTrackingDetails($request);
        if ($response->isSetGetPackageTrackingDetailsResult()) {
            $getPackageTrackingDetailsResult = $response->getGetPackageTrackingDetailsResult();
            if ($getPackageTrackingDetailsResult->isSetTrackingNumber()) {
                $TrackingNumber = $getPackageTrackingDetailsResult->getTrackingNumber();
                update_post_meta($order_id, "FBA_Carrier_Tracking_Code", $TrackingNumber);
            }
            if ($getPackageTrackingDetailsResult->isSetCarrierCode()) {
                $DeliveryCompany = $getPackageTrackingDetailsResult->getCarrierCode();
                update_post_meta($order_id, "FBA_Carrier", $DeliveryCompany);
            }
            if ($getPackageTrackingDetailsResult->isSetCarrierPhoneNumber()) {
                $CarrierPhoneNumber = $getPackageTrackingDetailsResult->getCarrierPhoneNumber();
                update_post_meta($order_id, "FBA_Carrier_Phone_Number", $CarrierPhoneNumber);
            }
            if ($getPackageTrackingDetailsResult->isSetCarrierURL()) {
                $CarrierURL = $getPackageTrackingDetailsResult->getCarrierURL();
                update_post_meta($order_id, "FBA_Carrier_URL", $CarrierURL);
            }
        }
    } catch (FBAOutboundServiceMWS_Exception $ex) {
        // echo("XML: " . $ex->getXML() . "\n");
        $level = "Bad";
        $category = "Order";
        $title = "Get Tracking Error - Order ID:" . $order_id;
        $info = "Caught Exception: " . $ex->getMessage() . " | Response Status Code: " . $ex->getStatusCode() . " | Error Code: " . $ex->getErrorCode() . " | Error Type: " . $ex->getErrorType() . " | Request ID: " . $ex->getRequestId();
        AmzFBA_Woo_Log($level, $category, $title, $info);
        SendErrorEmail("Order", $info);
    } catch (Exception $e) {
        HandleGenericException("Order", $e);
    }
}