Walmart API

I’ve been working with a client that wants to sell their products on Walmart.com. Working with the Walmart API has been a real challenge so far.

First off, Walmart provides no test environment. Want to test your item upload process? You upload items to the live site – better hope customers don’t find it and buy it before you’re ready. Want to test your order processing? You’ll have to get on Walmart.com, find one of your items, and place a live order. Who designs a system that doesn’t allow for testing?

Walmart doesn’t allow updating one item via their API. Instead, you have to build a batch of items to update and then send that batch (which they call a “feed”). Walmart has three different feeds for adding/updating an item, updating the quantity, and updating the price. Walmart, however, does not necessarily process those feeds in the order you send them. Have a new item and you want to update the price and quantity? You have to do the add, wait, wait, wait for Walmart to process that feed, and then send the price and quantity feed. Otherwise Walmart might process the price feed first and reject it all because the items don’t yet exist.

Have you managed to work out all your bugs while on a live site? Have you made sure you’re submitting feeds in a timely fashion? Do you think things will now go smoothly? Nope! Walmart might reject your feed for any number of reasons.

Sometimes Walmart just doesn’t feel like processing your feed. No reason or explanation, just rejected:

WallmartError1

Or maybe Walmart will like some of the items in your feed, but won’t like other items. Again, no real reason for this. You can sometimes resubmit the item and Walmart will take it:

walmart errors

Sometimes Walmart rejects your item for unexpected and unexplained reasons:Walmart errors 2

Sometimes Walmart rejects your item because it is feeling a little glitchy:

WalmartErrorGlitch

Sometimes Walmart rejects your item because it is a little busy:

WalmartErrorTimeout

 

Update 8/17/17: One very good thing about Walmart is that their customer support is strong. Emails we send get replies. Issues we bring up have been fixed in a timely manner. So while it was a bumpy road getting here, we’ve gotten all our products on Walmart and things are running smoothly.

Update 9/18/17: Here’s a fun error message:

MaxLengthError

Wonder which field it might be? Contacting support, they say it’s the product title. I replied that it can’t be – we’ve got several thousand items with titles longer than that. They reply, nope, impossible, has to be product title. It ended up being the model number field.

 

Update 10/5/17: Out of the blue, we went from 350k products live on Walmart to 160k live products. After some hectic emails with support, we got a vague “our pricing routines changed” answer. It seems Walmart thinks our prices aren’t competitive. They won’t tell you who they compare to or how much a price difference matters – just that price is a problem.

We spent two weeks looking into it, comparing our prices to Amazon/EBay/etc. Looking at different prices, wondering if Walmart is comparing Apples to Apples.

Then today we’re suddenly back to 350k live products. We didn’t change anything.

Update 3/14/18: Suddenly none of our orders on Walmart are acknowledged. None of our shipping information is being uploaded. Frantically rushing around trying to figure out why our code is not working – my code is fine, it’s Walmart’s API that is suddenly not working. We email support, they say “Yep, it’s on our end. We’re working on it.” We check after 8 hours, still not working. 24 hours, still not working. 48 hours, suddenly working again. They didn’t bother to tell us they had fixed it.

Update 4/4/18: We updated the price on several 100,000 items. Most of them update, but we can see there are some that did not. We compare our database to the downloaded Walmart catalog and find 18,000 items that didn’t update price. I flag those to update price. They still don’t update. Flag and update again, still not changing.
I go to the Walmart site directly and I see the price on the item is correct there. It’s the Walmart dashboard (what they call Seller Center) that doesn’t work. That’s good – the customer isn’t seeing the right price, but it’s really bad in that we have no way of knowing if our prices on Walmart are correct.
It’s been over two weeks now – Walmart says they’ve fixed the issue. I say nope and give them a dozen examples of ones that are still wrong. Still not fixed at this point.

Update 4/4/18: Walmart will let you override shipping options on an item by item basis, but they provide next to no documentation. Comically, the documentation on how to setup the XML shows spreadsheets rather than XML. SMH.

So after a lot of tries, I got it to work. Here’s the XML to remove the Next Day shipping option from an item. Hope it helps someone.

<ShippingOverrides>
<ShippingOverrideAction>REPLACE_ALL</ShippingOverrideAction>
<shippingOverride>
<ShippingOverrideIsShippingAllowed>No</ShippingOverrideIsShippingAllowed>
<ShippingOverrideShipMethod>ONE_DAY</ShippingOverrideShipMethod>
<ShippingOverrideShipRegion>STREET_48_STATES</ShippingOverrideShipRegion>
<ShippingOverrideshipPrice>0.00</ShippingOverrideshipPrice>
</shippingOverride>
</ShippingOverrides>
</MPOffer>
</MPItem>
</MPItemFeed>

5 thoughts on “Walmart API

  1. Hi Todd,

    We’re are also experiencing the same issues as you.

    Question:

    We’re automating the order process: https://developer.walmart.com/img/orders/OrderRefundProcess.png

    Since Walmart API doesn’t have a test environment, for us to be able to create a handler for the 2nd green rectangle on the flowchart above, we’re planning to use a dummy api response for the Get All Released Orders API endpoint. But once we’re done, we want to test if our integration really works. Is there no other way but to have a real queued order so Get All Released Orders API endpoint will return a list of orders that we could fulfill?

    Like

    1. Not that I ever figured out. No test environment so you need real orders. I was creating orders myself and then cancelling them. You CAN try to cancel an order that is not really there, you’ll get an error message that it’s not there, which is a little bit of help.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s