API REST Seller

For the Marketplace be integrated, these services must be developed by Seller.

Simulation

This service is intended to retrieve information such as price, delivery of SLAs and inventory stock of the items that are available.

*** If the requested item isn't active or doesn't exist in the seller's database, the service mustn't return an error. It must returns the usual response, without any item information (ignore the item).

*** If the requested item hasn't stock at the moment, the service mustn't returns an error. It must returns the usual response, with stock's value = 0.

*** The service mustn't returns an error when quantity of stock requested is more than the available, or the stock = 0. It must returns the usual response, with the data according to quantity available.

*** The total freight is calculated by sum of the freight's values (shipmentInfos-> categories-> price) of each returned item by the service.

*** The response time must be less than 5 seconds.

URI /fulfillment-preview
Method POST
Payload Request FulfillmentPreview
Payload Response FulfillmentPreviewResponse

Place Order

This service is intended to create an order on Seller.

*** If Walmart send an order with a same marketPlaceOrderId(1) previously sent, the service should not create a new order. It must returns the same orderId(2) previously generated.

(1) marketPlaceOrderId - Walmart Order ID
(2) orderId - Seller Order ID

*** If the data was sent can't continue the operation, must return an error message with HTTP400 error code, Walmart immediately stops the attempts to integrate the order with Seller. Error response with HTTP 500 error code will send the order to a retry queue.

URI /fulfillment/order/create
Method POST
Payload Request Order
Payload Response OrderResponse

Payment Confirmation

This service is intended to notify the Seller that a payment of an order has been done.

*** If Walmart send a confirmation for an order that has already been confirmed, the service mustn't returns an error. It must returns the default response defined for the service.

*** If the data was sent can't continue the operation, must return an error message with HTTP400 error code, Walmart immediately stops the attempts to integrate the order with Seller. Error response with HTTP 500 error code will send the order to a retry queue.

*** If it was sent to confirm payment of delivery already shipped, the Seller must return an error Walmart ( HTTP4xx ) stating that the order has been delivered . Ex { "summary " : " . 51344498-338797 order was already shipped "} .

URI /fulfillment/order/confirm/{marketplaceOrderId}
Method POST
Payload Request ConfirmFulfillmentOrder
Payload Response ConfirmFulfillmentOrderResponse

Cancel Order

This service is intended to notify the Seller that an order has been canceled.

*** If Walmart send a cancellation for an order that has already been canceled or has passed the payment period, the service mustn't returns an error. It must returns the default response defined for the service.

*** If the data was sent can't continue the operation, must return an error message with HTTP400 error code, Walmart immediately stops the attempts to integrate the order with Seller. Error response with HTTP 500 error code will send the order to a retry queue.

URI /fulfillment/order/cancel/{marketplaceOrderId}
Method POST
Payload Request CancelFulfillmentOrder
Payload Response CancelFulfillmentOrderResponse

Connectivity Test

This service is intended to test whether the Seller API is online.

The response must be pong (all letters in tiny and without quotation marks), Can use Content-Type text/html.

URI /ping
Method GET
Payload Request don't have
Payload Response simple text: pong

Error Response

If some problem happen, the answer should follow the standard error. See the examples bellow:

XML format

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<error>
	<summary>The order "44556745-5584478" already was shipped.</summary>    		
</error>  

Json format

{
	"summary" : "The SLA "Sedex Teste" is invalid"
}				

**The "summary" attribute is required.

**The message must be intuitive with the error.

**The status must follow the default codes for unexpected errors: http://www.w3.org/Protocols/HTTP/HTRESP.html