* Responses are loaded from local XML files. You can tweak XML files to
 * experiment with various outputs during development
 *
 * XML files available under FBAOutboundServiceMWS/Mock tree
 *
 ***********************************************************************/
// $service = new FBAOutboundServiceMWS_Mock();
/************************************************************************
 * Setup request parameters and uncomment invoke to try out
 * sample for Get Fulfillment Order Action
 ***********************************************************************/
// @TODO: set request. Action can be passed as FBAOutboundServiceMWS_Model_GetFulfillmentOrder
$request = new FBAOutboundServiceMWS_Model_GetFulfillmentOrderRequest();
$request->setSellerId(MERCHANT_ID);
// object or array of parameters
invokeGetFulfillmentOrder($service, $request);
/**
 * Get Get Fulfillment Order 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_GetFulfillmentOrder or array of parameters
 */
function invokeGetFulfillmentOrder(FBAOutboundServiceMWS_Interface $service, $request)
{
    try {
        $response = $service->GetFulfillmentOrder($request);
        echo "Service Response\n";
        echo "=============================================================================\n";
        $dom = new DOMDocument();
function GetAmzFBAOrderDetails($order_id)
{
    AmzFBA_Woo_Log("DEBUG", "Order", __FUNCTION__, "Entering");
    $level = "Neutral";
    $category = "Order";
    $title = "Order Status - ID:" . $order_id;
    $MissingConfig = CheckForMissingConfig();
    if ($MissingConfig == true) {
        $returnmessage = 'Failed getting order information from Amazon FBA. Required configuration missing in settings.';
        $order->add_order_note($returnmessage, 0);
        //Add to Log
        $level = "Bad";
        $category = "Order";
        $title = "Get Info Error - Order ID:" . $order_id;
        AmzFBA_Woo_Log($level, $category, $title, $returnmessage);
        return $returnmessage;
    }
    $UserSettings = get_option('woocommerce_amazonfba_settings');
    $ChosenMarketplace = $UserSettings['AmzFBA_Marketplace'];
    $MWSEndpointURL = GetMWSEndpointURL('FulfillmentOutboundShipment', $ChosenMarketplace);
    $config = array('ServiceURL' => $MWSEndpointURL, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3);
    $service = new FBAOutboundServiceMWS_Client(ACCESS_KEY_ID, SECRET_ACCESS_KEY, $config, APPLICATION_NAME, APPLICATION_VERSION);
    $request = new FBAOutboundServiceMWS_Model_GetFulfillmentOrderRequest();
    $request->setSellerId(SELLER_ID);
    $FBAOrderID = get_post_meta($order_id, "FBA_OrderId", TRUE);
    if (empty($FBAOrderID)) {
        AmzFBA_Woo_Log("Error", $category, __FUNCTION__, "Order does not have FBA Order id - putting it on hold");
        $order = new WC_Order($order_id);
        $order->update_status('on-hold');
        return;
    }
    $FBAStatus = get_post_meta($order_id, "FBA_Status", TRUE);
    if (!in_array(strtolower($FBAStatus), array('false', 'received', 'planning', 'processing', 'cancelling'))) {
        AmzFBA_Woo_Log("Error", $category, __FUNCTION__, "FBA Status = " . $FBAStatus . " is unexpected - putting order on hold");
        $order = new WC_Order($order_id);
        $order->update_status('on-hold');
        return;
    }
    AmzFBA_Woo_Log($level, $category, $title, "Checking order status for " . $order_id . " FBA order id = " . $FBAOrderID);
    $request->setSellerFulfillmentOrderId($FBAOrderID);
    invokeGetFulfillmentOrder($service, $request, $order_id);
}
function GetAmzFBAOrderDetails($order_id)
{
    if (CheckForMissingConfig() != '') {
        $returnmessage = 'Failed getting order information from Amazon FBA. Required configuration missing in settings.';
        $note = "Failed getting order information from Amazon FBA. Required configuration missing in settings.";
        $order->add_order_note($note, 0);
        //Add to Log
        $level = "Bad";
        $category = "Order";
        $title = "Get Info Error - Order ID:" . $order_id;
        $info = "Failed getting order information from Amazon FBA. Required configuration missing in settings..";
        AmzFBA_Woo_Log($level, $category, $title, $info);
        return $returnmessage;
    }
    $UserSettings = get_option('woocommerce_amazonfba_settings');
    $ChosenMarketplace = $UserSettings['AmzFBA_Marketplace'];
    $MWSEndpointURL = GetMWSEndpointURL('FulfillmentOutboundShipment', $ChosenMarketplace);
    $config = array('ServiceURL' => $MWSEndpointURL, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3);
    $service = new FBAOutboundServiceMWS_Client(ACCESS_KEY_ID, SECRET_ACCESS_KEY, $config, APPLICATION_NAME, APPLICATION_VERSION);
    $request = new FBAOutboundServiceMWS_Model_GetFulfillmentOrderRequest();
    $request->setSellerId(SELLER_ID);
    $FBAOrderID = get_post_meta($order_id, "FBA_OrderID", TRUE);
    $request->setSellerFulfillmentOrderId($FBAOrderID);
    invokeGetFulfillmentOrder($service, $request, $order_id);
}