function invokeGetFulfillmentOrder(FBAOutboundServiceMWS_Interface $service, $request, $order_id)
{
    $level = "Neutral";
    $category = "Order";
    $title = "Order Status - ID:" . $order_id;
    $order = new WC_Order($order_id);
    $check_order_items = true;
    try {
        $response = $service->getFulfillmentOrder($request);
        if ($response->isSetGetFulfillmentOrderResult()) {
            $getFulfillmentOrderResult = $response->getGetFulfillmentOrderResult();
            if ($getFulfillmentOrderResult->isSetFulfillmentOrder()) {
                $fulfillmentOrder = $getFulfillmentOrderResult->getFulfillmentOrder();
                if ($fulfillmentOrder->isSetFulfillmentOrderStatus()) {
                    $OrderStatus = $fulfillmentOrder->getFulfillmentOrderStatus();
                    AmzFBA_Woo_Log($level, $category, $title, "FBA Order status from MWS is " . $OrderStatus);
                    switch ($OrderStatus) {
                        case 'RECEIVED':
                            update_post_meta($order_id, "FBA_Status", "Received");
                            break;
                        case 'INVALID':
                            $note = "Amazon FBA Status - Invalid. No further action will be taken. Putting order on hold";
                            $order->add_order_note($note, 0);
                            update_post_meta($order_id, "FBA_Status", "Invalid");
                            $order->update_status('on-hold');
                            break;
                        case 'PLANNING':
                            update_post_meta($order_id, "FBA_Status", "Planning");
                            break;
                        case 'PROCESSING':
                            update_post_meta($order_id, "FBA_Status", "Processing");
                            break;
                        case 'CANCELLED':
                            $note = "Amazon FBA Status - Cancelled. No further action will be taken.";
                            $order->add_order_note($note, 0);
                            if (!update_post_meta($order_id, "FBA_Status", "Cancelled")) {
                                $level = "Bad";
                                $category = "Order";
                                $title = "Get order status - Order ID:" . $order_id;
                                AmzFBA_Woo_Log($level, $category, $title, "Error in updating FBA_Status");
                            }
                            $order->update_status('on-hold');
                            $check_order_items = false;
                            break;
                        case 'COMPLETE':
                            $percentfulfilled = get_post_meta($order_id, "PercentFulfilledByAmazon", true);
                            if ($percentfulfilled == '100') {
                                $orderComplete = true;
                                $note = "Amazon FBA Status - Complete. Entire order fulfilled successfully.";
                                $order->add_order_note($note, 0);
                            } else {
                                $note = "Amazon FBA Status - Complete WooCommerce Order status not changed to complete as not all of the order was sent to Amazon FBA.";
                                $order->add_order_note($note, 0);
                                // Putting order on hold
                                $order->update_status('on-hold');
                            }
                            update_post_meta($order_id, "FBA_Status", "Completed");
                            update_post_meta($order_id, "FBA_Tracking_ID", "Waiting");
                            break;
                        case 'COMPLETEPARTIALLED':
                            $note = "Amazon FBA Status - Partially Complete. Some items were cancelled or unfulfillable";
                            $order->add_order_note($note, 0);
                            // Putting order on hold
                            $order->update_status('on-hold');
                            update_post_meta($order_id, "FBA_Status", "Partially Complete");
                            update_post_meta($order_id, "FBA_Tracking_ID", "Unknown");
                            break;
                        case 'UNFULFILLABLE':
                            $note = "Amazon FBA Status - Unfulfillable. No further action will be taken.";
                            $order->add_order_note($note, 0);
                            update_post_meta($order_id, "FBA_Status", "Unfulfillable");
                            $order->update_status('on-hold');
                            break;
                    }
                }
            }
            if ($check_order_items && $getFulfillmentOrderResult->isSetFulfillmentOrderItem()) {
                $fulfillmentOrderItem = $getFulfillmentOrderResult->getFulfillmentOrderItem();
                $member1List = $fulfillmentOrderItem->getmember();
                $note = "";
                foreach ($member1List as $member1) {
                    if ($member1->isSetUnfulfillableQuantity()) {
                        $UnfulfillableCount = $member1->getUnfulfillableQuantity();
                        $SKU = $member1->getSellerSKU();
                        if ($UnfulfillableCount > 0) {
                            $note .= $UnfulfillableCount . " X " . $SKU . ".  ";
                        }
                    }
                }
                if ($note != '') {
                    $newnote = "Unfulfillable By AmazonFBA: " . $note;
                    $order->add_order_note($newnote, 0);
                }
            }
            if ($getFulfillmentOrderResult->isSetFulfillmentShipment()) {
                //echo ("                FulfillmentShipment\n");
                $fulfillmentShipment = $getFulfillmentOrderResult->getFulfillmentShipment();
                $member2List = $fulfillmentShipment->getmember();
                foreach ($member2List as $member2) {
                    if ($member2->isSetFulfillmentShipmentStatus()) {
                        $ShipmentStatus = $member2->getFulfillmentShipmentStatus();
                        update_post_meta($order_id, "FBA_Shipment_Status", $ShipmentStatus);
                        AmzFBA_Woo_Log($level, $category, $title, "FBA Shipment status from MWS is " . $ShipmentStatus);
                    }
                    if ($member2->isSetShippingDateTime()) {
                        $ShippingDate = $member2->getShippingDateTime();
                        update_post_meta($order_id, "FBA_Shipping_Date", $ShippingDate);
                        // Update shipping date in plugin WooCommerce Shipment Tracking
                        update_post_meta($order_id, '_date_shipped', $ShippingDate);
                    }
                    if ($member2->isSetEstimatedArrivalDateTime()) {
                        $EstimatedArrival = $member2->getEstimatedArrivalDateTime();
                        update_post_meta($order_id, "FBA_Estimated_Arrival_Date", $EstimatedArrival);
                    }
                    if ($member2->isSetFulfillmentShipmentPackage()) {
                        $fulfillmentShipmentPackage = $member2->getFulfillmentShipmentPackage();
                        $member4List = $fulfillmentShipmentPackage->getmember();
                        foreach ($member4List as $member4) {
                            if ($member4->isSetPackageNumber()) {
                                $PackageNumber = $member4->getPackageNumber();
                                update_post_meta($order_id, "FBA_Package_Number", $PackageNumber);
                            }
                            if ($member4->isSetCarrierCode()) {
                                $DeliveryCompany = $member4->getCarrierCode();
                                update_post_meta($order_id, "FBA_Carrier", $DeliveryCompany);
                                // Update shipping provider in plugin WooCommerce Shipment Tracking
                                update_post_meta($order_id, '_tracking_provider', $DeliveryCompany);
                                AmzFBA_Woo_Log($level, $category, $title, "FBA Shipment Carrier is " . $DeliveryCompany);
                            }
                            if ($member4->isSetTrackingNumber()) {
                                $TrackingIDNumber = $member4->getTrackingNumber();
                                update_post_meta($order_id, "FBA_Tracking_ID", $TrackingIDNumber);
                                // Update tracking number in plugin WooCommerce Shipment Tracking
                                update_post_meta($order_id, '_tracking_number', $TrackingIDNumber);
                                AmzFBA_Woo_Log($level, $category, $title, "FBA Shipment tracking number is " . $TrackingIDNumber);
                                $trackingAvailable = true;
                            }
                        }
                    }
                }
            }
            if ($orderComplete) {
                if ($trackingAvailable) {
                    MarkOrderAsComplete($order, $order_id);
                } else {
                    // mark order on hold as Order id complete with no tracking info
                    $note = "Hold: Amazon has completed FBA order but has not provided tracking information";
                    $order->add_order_note($note, 0);
                    $order->update_status('on-hold');
                }
            }
        }
    } catch (FBAOutboundServiceMWS_Exception $ex) {
        // echo("XML: " . $ex->getXML() . "\n");
        $level = "Bad";
        $category = "Order";
        $title = "Get Info 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);
    }
    AmzFBA_Woo_Log("DEBUG", "Order", __FUNCTION__, "Exiting");
}