Ugh, the API for selling on Jet.com as just as bad as the Walmart API.
At least Jet has a test environment unlike Walmart. That would be an improvement – if it worked. It doesn’t:
- While you can upload items to the test API, it just tells if you they uploaded or not. It doesn’t actually show you what the item is going to look like on Jet.
- Items that upload just fine in the test environment can suddenly have errors when uploading to the live environment. For example, the test environment does not enforce image requirements that the live environment does.
- You are required to mark an item as Published on the live system. This function does not work on the test system. Don’t spend a lot of time trying to figure out why your Publish API call does not work. It’s not you, it’s them.
- The test system will let you upload an item without any pricing. You might think then that this is allowed in the live system. It’s not.
- You can, at least, create test orders in Jet and import them. That’s a big improvement over Walmart. But, as I discovered when we went live, the JSON data in live is slightly different than the test JSON. Line item detail in live data starts at entry #2. Entry #1 in live data is some header information. That’ll break your order receiving, order acknowledgement, and order shipping calls.
The biggest problem with Jet though is speed. They only update their portal once per day. Want to know if your price change worked? If your uploaded order is available for purchase? If your quantity change worked? You have to wait 24 hours to see if any of that changes in the portal. Funny, they require us to accept orders within 15 minutes, but only update us once a day.
If that wasn’t bad enough, it can take up to 72 hours for Jet to accept a new item. When you first upload it, Jet puts it in a limbo called “Under Review”. You have to wait and see if it makes it out or not. And, compounding the badness of this, if there is something wrong with what you uploaded, it will sit there in limbo forever. And, even badder badder, there is NO error reporting to tell you what happened. It just sits there. You have to open a ticket with customer support, after waiting 72 hours, and ask why your item, that uploaded just fine in the test system, is being rejected by the live system. Maybe they get back to you in a day or two. Then you fix the problem, upload the item,… and wait another 72+ hours to see if the fix worked.
Update 9/18/17: Consider yourself lucky if Jet updates items in 72 hours. It can be much slower than that. As an example, we have 50,000 items under review. In a week, Jet only got 600 of them to the live status.
Update 10/1/2017: Yep, still about 750 items a week is all they get live. It’s been 8 weeks, we have 6,000 items live. It’ll take a little over 10 years to get all of our items approved by Jet.
Update 10/5/2017: Noticed that all of our Jet orders we’re coming through as FedEx Ground and Standard Shipping. FedEx ground is not a carrier we had specified in their portal. Found it a little hard to believe that no one had requested rushed shipping. Dropped Jet an email. Jet says “Oops”, they were pulling our shipping information incorrectly. They’ll take care of the angry customers that requested expedited shipping but didn’t get it.
Update 11/29/17: The Jet portal continues to be a real mess. It reports that only 26,000 of our 400,000 items are live, but after talking with support and checking, it seems that the majority of our products are live. The portal is just wrong. That’s a problem.
The portal also provides no way to manually mark an order as shipped. We have some rare cases on our side we’re the data is not there, but we need to mark the item as shipped anyways. There is no way to do that in the portal – you have to write code and make an API call.
Portal also provides no way to deal with a return. Again, you have to do an API call. Not a huge problem, but annoying that a user can’t go into their portal and just handle a problem. It requires programming to get the simplest of things done. Even then the portal doesn’t really work. You’ll get a success message from the API call, but the portal will still show the return as incomplete. You can look at the raw data and see that it is complete in the portal, but the portal doesn’t mark it as complete for several minutes.