null, 'UserAgent' => 'FBAOutboundServiceMWS PHP5 Library', 'SignatureVersion' => 2, 'SignatureMethod' => 'HmacSHA256', 'ProxyHost' => null, 'ProxyPort' => -1, 'ProxyUsername' => null, 'ProxyPassword' => null, 'MaxErrorRetry' => 3, 'Headers' => array() ); /** * Cancel Fulfillment Order * Request for Amazon to no longer attempt to fulfill an existing * fulfillment order. Amazon will attempt to stop fulfillment of all * items that haven't already shipped, but cannot guarantee success. * Note: Items that have already shipped cannot be cancelled. * * @param mixed $request array of parameters for FBAOutboundServiceMWS_Model_CancelFulfillmentOrder request or FBAOutboundServiceMWS_Model_CancelFulfillmentOrder object itself * @see FBAOutboundServiceMWS_Model_CancelFulfillmentOrderRequest * @return FBAOutboundServiceMWS_Model_CancelFulfillmentOrderResponse * * @throws FBAOutboundServiceMWS_Exception */ public function cancelFulfillmentOrder($request) { if (!($request instanceof FBAOutboundServiceMWS_Model_CancelFulfillmentOrderRequest)) { require_once (dirname(__FILE__) . '/Model/CancelFulfillmentOrderRequest.php'); $request = new FBAOutboundServiceMWS_Model_CancelFulfillmentOrderRequest($request); } $parameters = $request->toQueryParameterArray(); $parameters['Action'] = 'CancelFulfillmentOrder'; $httpResponse = $this->_invoke($parameters); require_once (dirname(__FILE__) . '/Model/CancelFulfillmentOrderResponse.php'); $response = FBAOutboundServiceMWS_Model_CancelFulfillmentOrderResponse::fromXML($httpResponse['ResponseBody']); $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']); return $response; } /** * Convert CancelFulfillmentOrderRequest to name value pairs */ private function _convertCancelFulfillmentOrder($request) { $parameters = array(); $parameters['Action'] = 'CancelFulfillmentOrder'; if ($request->isSetSellerId()) { $parameters['SellerId'] = $request->getSellerId(); } if ($request->isSetMWSAuthToken()) { $parameters['MWSAuthToken'] = $request->getMWSAuthToken(); } if ($request->isSetMarketplace()) { $parameters['Marketplace'] = $request->getMarketplace(); } if ($request->isSetSellerFulfillmentOrderId()) { $parameters['SellerFulfillmentOrderId'] = $request->getSellerFulfillmentOrderId(); } return $parameters; } /** * Create Fulfillment Order * The SellerFulfillmentOrderId must be unique for all fulfillment * orders created by the seller. If your system already has a * unique order identifier, then that may be a good value to put in * this field. * * This DisplayableOrderDateTime will appear as the "order date" in * recipient-facing materials such as the packing slip. The format * must be timestamp. * * * The DisplayableOrderId will appear as the "order id" in those * materials, and the DisplayableOrderComment will appear as well. * * ShippingSpeedCategory is the Service Level Agreement for how long it * will take a shipment to be transported from the fulfillment center * to the recipient, once shipped. no default. * The following shipping speeds are available for US domestic: * * Standard, 3-5 business days * * Expedited, 2 business days * * Priority, 1 business day * * Shipping speeds may vary elsewhere. Please consult your manual for published SLAs. * * * DestinationAddress is the address the items will be shipped to. * * FulfillmentPolicy indicates how unfulfillable items should be * handled. default is FillOrKill. * * FillOrKill if any item is determined to be unfulfillable * before any items have started shipping, the entire order is * considered unfulfillable. Once any part of the order has * started shipping, as much of the order as possible will be * shipped. * * FillAll never consider any item unfulfillable. Items must * either be fulfilled or merchant-cancelled. * * FillAllAvailable fulfill as much of the order as possible. * * FulfillmentMethod indicates the intended recipient channel for the * order whether it be a consumer order or inventory return. * default is Consumer. * The available methods to fulfill a given order: * * Consumer indicates a customer order, this is the default. * * Removal indicates that the inventory should be returned to the * specified destination address. * * * NotificationEmailList can be used to provide a list of e-mail * addresses to receive ship-complete e-mail notifications. These * e-mails are customer-facing e-mails sent by FBA on behalf of * the seller. * * @param mixed $request array of parameters for FBAOutboundServiceMWS_Model_CreateFulfillmentOrder request or FBAOutboundServiceMWS_Model_CreateFulfillmentOrder object itself * @see FBAOutboundServiceMWS_Model_CreateFulfillmentOrderRequest * @return FBAOutboundServiceMWS_Model_CreateFulfillmentOrderResponse * * @throws FBAOutboundServiceMWS_Exception */ public function createFulfillmentOrder($request) { if (!($request instanceof FBAOutboundServiceMWS_Model_CreateFulfillmentOrderRequest)) { require_once (dirname(__FILE__) . '/Model/CreateFulfillmentOrderRequest.php'); $request = new FBAOutboundServiceMWS_Model_CreateFulfillmentOrderRequest($request); } $parameters = $request->toQueryParameterArray(); $parameters['Action'] = 'CreateFulfillmentOrder'; $httpResponse = $this->_invoke($parameters); require_once (dirname(__FILE__) . '/Model/CreateFulfillmentOrderResponse.php'); $response = FBAOutboundServiceMWS_Model_CreateFulfillmentOrderResponse::fromXML($httpResponse['ResponseBody']); $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']); return $response; } /** * Convert CreateFulfillmentOrderRequest to name value pairs */ private function _convertCreateFulfillmentOrder($request) { $parameters = array(); $parameters['Action'] = 'CreateFulfillmentOrder'; if ($request->isSetSellerId()) { $parameters['SellerId'] = $request->getSellerId(); } if ($request->isSetMWSAuthToken()) { $parameters['MWSAuthToken'] = $request->getMWSAuthToken(); } if ($request->isSetMarketplace()) { $parameters['Marketplace'] = $request->getMarketplace(); } if ($request->isSetSellerFulfillmentOrderId()) { $parameters['SellerFulfillmentOrderId'] = $request->getSellerFulfillmentOrderId(); } if ($request->isSetDisplayableOrderId()) { $parameters['DisplayableOrderId'] = $request->getDisplayableOrderId(); } if ($request->isSetDisplayableOrderDateTime()) { $parameters['DisplayableOrderDateTime'] = $request->getDisplayableOrderDateTime(); } if ($request->isSetDisplayableOrderComment()) { $parameters['DisplayableOrderComment'] = $request->getDisplayableOrderComment(); } if ($request->isSetShippingSpeedCategory()) { $parameters['ShippingSpeedCategory'] = $request->getShippingSpeedCategory(); } if ($request->isSetDeliveryWindow()) { $DeliveryWindowCreateFulfillmentOrderRequest = $request->getDeliveryWindow(); foreach ($DeliveryWindowCreateFulfillmentOrderRequest->getStartDateTime() as $StartDateTimeDeliveryWindowIndex => $StartDateTimeDeliveryWindow) { $parameters['DeliveryWindow' . '.' . 'StartDateTime' . '.' . ($StartDateTimeDeliveryWindowIndex + 1)] = $StartDateTimeDeliveryWindow; } } if ($request->isSetDestinationAddress()) { $DestinationAddressCreateFulfillmentOrderRequest = $request->getDestinationAddress(); foreach ($DestinationAddressCreateFulfillmentOrderRequest->getName() as $NameDestinationAddressIndex => $NameDestinationAddress) { $parameters['DestinationAddress' . '.' . 'Name' . '.' . ($NameDestinationAddressIndex + 1)] = $NameDestinationAddress; } } if ($request->isSetFulfillmentAction()) { $parameters['FulfillmentAction'] = $request->getFulfillmentAction(); } if ($request->isSetFulfillmentPolicy()) { $parameters['FulfillmentPolicy'] = $request->getFulfillmentPolicy(); } if ($request->isSetFulfillmentMethod()) { $parameters['FulfillmentMethod'] = $request->getFulfillmentMethod(); } if ($request->isSetCODSettings()) { $CODSettingsCreateFulfillmentOrderRequest = $request->getCODSettings(); foreach ($CODSettingsCreateFulfillmentOrderRequest->getIsCODRequired() as $IsCODRequiredCODSettingsIndex => $IsCODRequiredCODSettings) { $parameters['CODSettings' . '.' . 'IsCODRequired' . '.' . ($IsCODRequiredCODSettingsIndex + 1)] = $IsCODRequiredCODSettings; } } if ($request->isSetShipFromCountryCode()) { $parameters['ShipFromCountryCode'] = $request->getShipFromCountryCode(); } if ($request->isSetNotificationEmailList()) { $NotificationEmailListCreateFulfillmentOrderRequest = $request->getNotificationEmailList(); foreach ($NotificationEmailListCreateFulfillmentOrderRequest->getmember() as $memberNotificationEmailListIndex => $memberNotificationEmailList) { $parameters['NotificationEmailList' . '.' . 'member' . '.' . ($memberNotificationEmailListIndex + 1)] = $memberNotificationEmailList; } } if ($request->isSetItems()) { $ItemsCreateFulfillmentOrderRequest = $request->getItems(); foreach ($ItemsCreateFulfillmentOrderRequest->getmember() as $memberItemsIndex => $memberItems) { $parameters['Items' . '.' . 'member' . '.' . ($memberItemsIndex + 1)] = $memberItems; } } return $parameters; } /** * Get Fulfillment Order * Get detailed information about a FulfillmentOrder. This includes the * original fulfillment order request, the status of the order and its * items in Amazon's fulfillment network, and the shipments that have been * generated to fulfill the order. * * @param mixed $request array of parameters for FBAOutboundServiceMWS_Model_GetFulfillmentOrder request or FBAOutboundServiceMWS_Model_GetFulfillmentOrder object itself * @see FBAOutboundServiceMWS_Model_GetFulfillmentOrderRequest * @return FBAOutboundServiceMWS_Model_GetFulfillmentOrderResponse * * @throws FBAOutboundServiceMWS_Exception */ public function getFulfillmentOrder($request) { if (!($request instanceof FBAOutboundServiceMWS_Model_GetFulfillmentOrderRequest)) { require_once (dirname(__FILE__) . '/Model/GetFulfillmentOrderRequest.php'); $request = new FBAOutboundServiceMWS_Model_GetFulfillmentOrderRequest($request); } $parameters = $request->toQueryParameterArray(); $parameters['Action'] = 'GetFulfillmentOrder'; $httpResponse = $this->_invoke($parameters); require_once (dirname(__FILE__) . '/Model/GetFulfillmentOrderResponse.php'); $response = FBAOutboundServiceMWS_Model_GetFulfillmentOrderResponse::fromXML($httpResponse['ResponseBody']); $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']); return $response; } /** * Convert GetFulfillmentOrderRequest to name value pairs */ private function _convertGetFulfillmentOrder($request) { $parameters = array(); $parameters['Action'] = 'GetFulfillmentOrder'; if ($request->isSetSellerId()) { $parameters['SellerId'] = $request->getSellerId(); } if ($request->isSetMWSAuthToken()) { $parameters['MWSAuthToken'] = $request->getMWSAuthToken(); } if ($request->isSetMarketplace()) { $parameters['Marketplace'] = $request->getMarketplace(); } if ($request->isSetSellerFulfillmentOrderId()) { $parameters['SellerFulfillmentOrderId'] = $request->getSellerFulfillmentOrderId(); } return $parameters; } /** * Get Fulfillment Preview * Get estimated shipping dates and fees for all * available shipping speed given a set of seller SKUs and quantities * * If "ShippingSpeedCategories" are inputed, only previews for those options will be returned. * * If "ShippingSpeedCategories" are not inputed, then previews for all available options * are returned. * * The service will return the fulfillment estimates for a set of Seller * SKUs and quantities. * * @param mixed $request array of parameters for FBAOutboundServiceMWS_Model_GetFulfillmentPreview request or FBAOutboundServiceMWS_Model_GetFulfillmentPreview object itself * @see FBAOutboundServiceMWS_Model_GetFulfillmentPreviewRequest * @return FBAOutboundServiceMWS_Model_GetFulfillmentPreviewResponse * * @throws FBAOutboundServiceMWS_Exception */ public function getFulfillmentPreview($request) { if (!($request instanceof FBAOutboundServiceMWS_Model_GetFulfillmentPreviewRequest)) { require_once (dirname(__FILE__) . '/Model/GetFulfillmentPreviewRequest.php'); $request = new FBAOutboundServiceMWS_Model_GetFulfillmentPreviewRequest($request); } $parameters = $request->toQueryParameterArray(); $parameters['Action'] = 'GetFulfillmentPreview'; $httpResponse = $this->_invoke($parameters); require_once (dirname(__FILE__) . '/Model/GetFulfillmentPreviewResponse.php'); $response = FBAOutboundServiceMWS_Model_GetFulfillmentPreviewResponse::fromXML($httpResponse['ResponseBody']); $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']); return $response; } /** * Convert GetFulfillmentPreviewRequest to name value pairs */ private function _convertGetFulfillmentPreview($request) { $parameters = array(); $parameters['Action'] = 'GetFulfillmentPreview'; if ($request->isSetSellerId()) { $parameters['SellerId'] = $request->getSellerId(); } if ($request->isSetMWSAuthToken()) { $parameters['MWSAuthToken'] = $request->getMWSAuthToken(); } if ($request->isSetMarketplace()) { $parameters['Marketplace'] = $request->getMarketplace(); } if ($request->isSetAddress()) { $AddressGetFulfillmentPreviewRequest = $request->getAddress(); foreach ($AddressGetFulfillmentPreviewRequest->getName() as $NameAddressIndex => $NameAddress) { $parameters['Address' . '.' . 'Name' . '.' . ($NameAddressIndex + 1)] = $NameAddress; } } if ($request->isSetItems()) { $ItemsGetFulfillmentPreviewRequest = $request->getItems(); foreach ($ItemsGetFulfillmentPreviewRequest->getmember() as $memberItemsIndex => $memberItems) { $parameters['Items' . '.' . 'member' . '.' . ($memberItemsIndex + 1)] = $memberItems; } } if ($request->isSetShippingSpeedCategories()) { $ShippingSpeedCategoriesGetFulfillmentPreviewRequest = $request->getShippingSpeedCategories(); foreach ($ShippingSpeedCategoriesGetFulfillmentPreviewRequest->getmember() as $memberShippingSpeedCategoriesIndex => $memberShippingSpeedCategories) { $parameters['ShippingSpeedCategories' . '.' . 'member' . '.' . ($memberShippingSpeedCategoriesIndex + 1)] = $memberShippingSpeedCategories; } } if ($request->isSetIncludeCODFulfillmentPreview()) { $parameters['IncludeCODFulfillmentPreview'] = $request->getIncludeCODFulfillmentPreview() ? "true" : "false"; } if ($request->isSetIncludeDeliveryWindows()) { $parameters['IncludeDeliveryWindows'] = $request->getIncludeDeliveryWindows() ? "true" : "false"; } return $parameters; } /** * Get Package Tracking Details * Gets the tracking details for a shipment package. * * @param mixed $request array of parameters for FBAOutboundServiceMWS_Model_GetPackageTrackingDetails request or FBAOutboundServiceMWS_Model_GetPackageTrackingDetails object itself * @see FBAOutboundServiceMWS_Model_GetPackageTrackingDetailsRequest * @return FBAOutboundServiceMWS_Model_GetPackageTrackingDetailsResponse * * @throws FBAOutboundServiceMWS_Exception */ public function getPackageTrackingDetails($request) { if (!($request instanceof FBAOutboundServiceMWS_Model_GetPackageTrackingDetailsRequest)) { require_once (dirname(__FILE__) . '/Model/GetPackageTrackingDetailsRequest.php'); $request = new FBAOutboundServiceMWS_Model_GetPackageTrackingDetailsRequest($request); } $parameters = $request->toQueryParameterArray(); $parameters['Action'] = 'GetPackageTrackingDetails'; $httpResponse = $this->_invoke($parameters); require_once (dirname(__FILE__) . '/Model/GetPackageTrackingDetailsResponse.php'); $response = FBAOutboundServiceMWS_Model_GetPackageTrackingDetailsResponse::fromXML($httpResponse['ResponseBody']); $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']); return $response; } /** * Convert GetPackageTrackingDetailsRequest to name value pairs */ private function _convertGetPackageTrackingDetails($request) { $parameters = array(); $parameters['Action'] = 'GetPackageTrackingDetails'; if ($request->isSetSellerId()) { $parameters['SellerId'] = $request->getSellerId(); } if ($request->isSetMWSAuthToken()) { $parameters['MWSAuthToken'] = $request->getMWSAuthToken(); } if ($request->isSetPackageNumber()) { $parameters['PackageNumber'] = $request->getPackageNumber(); } return $parameters; } /** * Get Service Status * Request to poll the system for availability. * Status is one of GREEN, RED representing: * GREEN: The service section is operating normally. * RED: The service section disruption. * * @param mixed $request array of parameters for FBAOutboundServiceMWS_Model_GetServiceStatus request or FBAOutboundServiceMWS_Model_GetServiceStatus object itself * @see FBAOutboundServiceMWS_Model_GetServiceStatusRequest * @return FBAOutboundServiceMWS_Model_GetServiceStatusResponse * * @throws FBAOutboundServiceMWS_Exception */ public function getServiceStatus($request) { if (!($request instanceof FBAOutboundServiceMWS_Model_GetServiceStatusRequest)) { require_once (dirname(__FILE__) . '/Model/GetServiceStatusRequest.php'); $request = new FBAOutboundServiceMWS_Model_GetServiceStatusRequest($request); } $parameters = $request->toQueryParameterArray(); $parameters['Action'] = 'GetServiceStatus'; $httpResponse = $this->_invoke($parameters); require_once (dirname(__FILE__) . '/Model/GetServiceStatusResponse.php'); $response = FBAOutboundServiceMWS_Model_GetServiceStatusResponse::fromXML($httpResponse['ResponseBody']); $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']); return $response; } /** * Convert GetServiceStatusRequest to name value pairs */ private function _convertGetServiceStatus($request) { $parameters = array(); $parameters['Action'] = 'GetServiceStatus'; if ($request->isSetSellerId()) { $parameters['SellerId'] = $request->getSellerId(); } if ($request->isSetMWSAuthToken()) { $parameters['MWSAuthToken'] = $request->getMWSAuthToken(); } if ($request->isSetMarketplace()) { $parameters['Marketplace'] = $request->getMarketplace(); } return $parameters; } /** * List All Fulfillment Orders * Gets the first set of fulfillment orders that are currently being * fulfilled or that were being fulfilled at some time in the past * (as specified by the query parameters). Also returns a NextToken * which can be used iterate through the remaining fulfillment orders * (via the ListAllFulfillmentOrdersByNextToken operation). * * If a NextToken is not returned, it indicates the end-of-data. * * If the QueryStartDateTime is set, the results will include all orders * currently being fulfilled, and all orders that were being fulfilled * since that date and time. * * @param mixed $request array of parameters for FBAOutboundServiceMWS_Model_ListAllFulfillmentOrders request or FBAOutboundServiceMWS_Model_ListAllFulfillmentOrders object itself * @see FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersRequest * @return FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersResponse * * @throws FBAOutboundServiceMWS_Exception */ public function listAllFulfillmentOrders($request) { if (!($request instanceof FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersRequest)) { require_once (dirname(__FILE__) . '/Model/ListAllFulfillmentOrdersRequest.php'); $request = new FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersRequest($request); } $parameters = $request->toQueryParameterArray(); $parameters['Action'] = 'ListAllFulfillmentOrders'; $httpResponse = $this->_invoke($parameters); require_once (dirname(__FILE__) . '/Model/ListAllFulfillmentOrdersResponse.php'); $response = FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersResponse::fromXML($httpResponse['ResponseBody']); $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']); return $response; } /** * Convert ListAllFulfillmentOrdersRequest to name value pairs */ private function _convertListAllFulfillmentOrders($request) { $parameters = array(); $parameters['Action'] = 'ListAllFulfillmentOrders'; if ($request->isSetSellerId()) { $parameters['SellerId'] = $request->getSellerId(); } if ($request->isSetMWSAuthToken()) { $parameters['MWSAuthToken'] = $request->getMWSAuthToken(); } if ($request->isSetMarketplace()) { $parameters['Marketplace'] = $request->getMarketplace(); } if ($request->isSetQueryStartDateTime()) { $parameters['QueryStartDateTime'] = $request->getQueryStartDateTime(); } if ($request->isSetFulfillmentMethod()) { $FulfillmentMethodListAllFulfillmentOrdersRequest = $request->getFulfillmentMethod(); foreach ($FulfillmentMethodListAllFulfillmentOrdersRequest->getmember() as $memberFulfillmentMethodIndex => $memberFulfillmentMethod) { $parameters['FulfillmentMethod' . '.' . 'member' . '.' . ($memberFulfillmentMethodIndex + 1)] = $memberFulfillmentMethod; } } return $parameters; } /** * List All Fulfillment Orders By Next Token * Gets the next set of fulfillment orders that are currently being * being fulfilled or that were being fulfilled at some time in the * past. * * If a NextToken is not returned, it indicates the end-of-data. * * @param mixed $request array of parameters for FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersByNextToken request or FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersByNextToken object itself * @see FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersByNextTokenRequest * @return FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersByNextTokenResponse * * @throws FBAOutboundServiceMWS_Exception */ public function listAllFulfillmentOrdersByNextToken($request) { if (!($request instanceof FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersByNextTokenRequest)) { require_once (dirname(__FILE__) . '/Model/ListAllFulfillmentOrdersByNextTokenRequest.php'); $request = new FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersByNextTokenRequest($request); } $parameters = $request->toQueryParameterArray(); $parameters['Action'] = 'ListAllFulfillmentOrdersByNextToken'; $httpResponse = $this->_invoke($parameters); require_once (dirname(__FILE__) . '/Model/ListAllFulfillmentOrdersByNextTokenResponse.php'); $response = FBAOutboundServiceMWS_Model_ListAllFulfillmentOrdersByNextTokenResponse::fromXML($httpResponse['ResponseBody']); $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']); return $response; } /** * Convert ListAllFulfillmentOrdersByNextTokenRequest to name value pairs */ private function _convertListAllFulfillmentOrdersByNextToken($request) { $parameters = array(); $parameters['Action'] = 'ListAllFulfillmentOrdersByNextToken'; if ($request->isSetSellerId()) { $parameters['SellerId'] = $request->getSellerId(); } if ($request->isSetMWSAuthToken()) { $parameters['MWSAuthToken'] = $request->getMWSAuthToken(); } if ($request->isSetMarketplace()) { $parameters['Marketplace'] = $request->getMarketplace(); } if ($request->isSetNextToken()) { $parameters['NextToken'] = $request->getNextToken(); } return $parameters; } /** * Update Fulfillment Order * The SellerFulfillmentOrderId must be the order ID of the original * order that needs to be updated. * * This DisplayableOrderDateTime will appear as the "order date" in * recipient-facing materials such as the packing slip. The format * must be timestamp. * * The DisplayableOrderId will appear as the "order id" in those * materials, and the DisplayableOrderComment will appear as well. * * ShippingSpeedCategory is the Service Level Agreement for how long it * will take a shipment to be transported from the fulfillment center * to the recipient, once shipped. no default. * The following shipping speeds are available for US domestic: * * Standard, 3-5 business days * * Expedited, 2 business days * * Priority, 1 business day * * Shipping speeds may vary elsewhere. Please consult your manual for published SLAs. * * * DestinationAddress is the address the items will be shipped to. * * FulfillmentAction indicates whether an order will be held or shipped. * Default is Hold. * * Hold if the order needs to be held but does not need to be shipped. * * Ship if the order is to be fulfilled and shipped out to the customer * immediately. * * FulfillmentPolicy indicates how unfulfillable items should be * handled. default is FillOrKill. * * FillOrKill if any item is determined to be unfulfillable * before any items have started shipping, the entire order is * considered unfulfillable. Once any part of the order has * started shipping, as much of the order as possible will be * shipped. * * FillAll never consider any item unfulfillable. Items must * either be fulfilled or merchant-cancelled. * * FillAllAvailable fulfill as much of the order as possible. * * NotificationEmailList can be used to provide a list of e-mail * addresses to receive ship-complete e-mail notifications. These * e-mails are customer-facing e-mails sent by FBA on behalf of * the seller. * * @param mixed $request array of parameters for FBAOutboundServiceMWS_Model_UpdateFulfillmentOrder request or FBAOutboundServiceMWS_Model_UpdateFulfillmentOrder object itself * @see FBAOutboundServiceMWS_Model_UpdateFulfillmentOrderRequest * @return FBAOutboundServiceMWS_Model_UpdateFulfillmentOrderResponse * * @throws FBAOutboundServiceMWS_Exception */ public function updateFulfillmentOrder($request) { if (!($request instanceof FBAOutboundServiceMWS_Model_UpdateFulfillmentOrderRequest)) { require_once (dirname(__FILE__) . '/Model/UpdateFulfillmentOrderRequest.php'); $request = new FBAOutboundServiceMWS_Model_UpdateFulfillmentOrderRequest($request); } $parameters = $request->toQueryParameterArray(); $parameters['Action'] = 'UpdateFulfillmentOrder'; $httpResponse = $this->_invoke($parameters); require_once (dirname(__FILE__) . '/Model/UpdateFulfillmentOrderResponse.php'); $response = FBAOutboundServiceMWS_Model_UpdateFulfillmentOrderResponse::fromXML($httpResponse['ResponseBody']); $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']); return $response; } /** * Convert UpdateFulfillmentOrderRequest to name value pairs */ private function _convertUpdateFulfillmentOrder($request) { $parameters = array(); $parameters['Action'] = 'UpdateFulfillmentOrder'; if ($request->isSetSellerId()) { $parameters['SellerId'] = $request->getSellerId(); } if ($request->isSetMWSAuthToken()) { $parameters['MWSAuthToken'] = $request->getMWSAuthToken(); } if ($request->isSetMarketplace()) { $parameters['Marketplace'] = $request->getMarketplace(); } if ($request->isSetSellerFulfillmentOrderId()) { $parameters['SellerFulfillmentOrderId'] = $request->getSellerFulfillmentOrderId(); } if ($request->isSetDisplayableOrderId()) { $parameters['DisplayableOrderId'] = $request->getDisplayableOrderId(); } if ($request->isSetDisplayableOrderDateTime()) { $parameters['DisplayableOrderDateTime'] = $request->getDisplayableOrderDateTime(); } if ($request->isSetDisplayableOrderComment()) { $parameters['DisplayableOrderComment'] = $request->getDisplayableOrderComment(); } if ($request->isSetShippingSpeedCategory()) { $parameters['ShippingSpeedCategory'] = $request->getShippingSpeedCategory(); } if ($request->isSetDestinationAddress()) { $DestinationAddressUpdateFulfillmentOrderRequest = $request->getDestinationAddress(); foreach ($DestinationAddressUpdateFulfillmentOrderRequest->getName() as $NameDestinationAddressIndex => $NameDestinationAddress) { $parameters['DestinationAddress' . '.' . 'Name' . '.' . ($NameDestinationAddressIndex + 1)] = $NameDestinationAddress; } } if ($request->isSetFulfillmentAction()) { $parameters['FulfillmentAction'] = $request->getFulfillmentAction(); } if ($request->isSetFulfillmentPolicy()) { $parameters['FulfillmentPolicy'] = $request->getFulfillmentPolicy(); } if ($request->isSetFulfillmentMethod()) { $parameters['FulfillmentMethod'] = $request->getFulfillmentMethod(); } if ($request->isSetShipFromCountryCode()) { $parameters['ShipFromCountryCode'] = $request->getShipFromCountryCode(); } if ($request->isSetNotificationEmailList()) { $NotificationEmailListUpdateFulfillmentOrderRequest = $request->getNotificationEmailList(); foreach ($NotificationEmailListUpdateFulfillmentOrderRequest->getmember() as $memberNotificationEmailListIndex => $memberNotificationEmailList) { $parameters['NotificationEmailList' . '.' . 'member' . '.' . ($memberNotificationEmailListIndex + 1)] = $memberNotificationEmailList; } } if ($request->isSetItems()) { $ItemsUpdateFulfillmentOrderRequest = $request->getItems(); foreach ($ItemsUpdateFulfillmentOrderRequest->getmember() as $memberItemsIndex => $memberItems) { $parameters['Items' . '.' . 'member' . '.' . ($memberItemsIndex + 1)] = $memberItems; } } return $parameters; } /** * Construct new Client * * @param string $awsAccessKeyId AWS Access Key ID * @param string $awsSecretAccessKey AWS Secret Access Key * @param array $config configuration options. * Valid configuration options are: *