Create an Item Report (Deprecation In Process)
Deprecation & Report Support Update
The pre-generated Supplier Reports is in the process of being deprecated.
Suppliers who are looking to get Item Data in bulk should use the On Request API Reporting Platform. This will provide Suppliers with more relevant reports:
- Item Product Reports: Provides all of the items a Supplier sells to Walmart Customers in a single report with relevant attributes & insights (e.g. Content Quality Scores & Insights, Key Information on Walmart.com Shopping Experience)
- Primary Key: GTIN 14
- Item Configurations Report: Provides all of the different item configurations that a Supplier sells to Walmart and all of the related Supply Chain and Logistics Information; such as Cost, Supply Item Status Code; and the Trade Item Hierarchy
- Primary Key: Walmart Item Number
The new reporting platform allows for larger data sets to be sent to suppliers, as well as additional capabilities such as filtering to be applied to reports.
API Information
All suppliers can generate an item report that provides information on all the items they have set up in their catalog that are sold to Walmart.
To get an item report:
- Call the GET Item Report request and specify the required query parameters in the request:
type
andversion
.- Specify the report type; for example,
vendor_item
. - Specify the current report version; for example,
2
.
- Specify the report type; for example,
- Input the query parameters in the request; for example, call the following for the sample values assigned above:
/v3/getReport?type=vendor_item&version=2
The response provides an item report in comma-separated value (CSV) format with all the field values per the response schema.
Origin of Report Content: Walmart or Supplier
Some of the information in the Item report comes from the vendor, and some originates from Walmart. The table below shows the supplier item report fields that originate from Walmart or the supplier.
Origin: Walmart | Origin: Supplier |
---|---|
Vendor ID, Availability Status, Lifecycle Status, Publish Status, BuyBox Shipping Price, BuyBox Item Price, WPID, Item ID, WM#, GTIN, UPC, Primary Image URL, Shelf Name, Primary Cat Path,Item Creation Date, Last Update on Date, Item Page URL, Reviews Count, Average Rating, Status Change Reason, Available Inventory Units | SKU, Product Name, Product Category, Short Description, Long Description, Cost, Price, Currency, Ship Methods, Offer Start Date, Offer End Date, Product Tax Code, Shipping Weight, Shipping Weight Unit |
To view descriptions for each field, see the response schema in the GET Item Report request API reference.
What’s in the Item Report CSV File?
The response contains the compressed comma-separated value (CSV) file as an attachment, with values for all of the fields listed in the response schema in the GET Item Report request API reference.
The Content-Disposition
header contains the name of the report; for example, filename=ItemReport_742202_2020-03-31T012243.0960000.zip
.
The report file title includes the supplier’s vendor ID, such as 742202, and the file generation timestamp.
OPTIONAL: Parse CSV File with Java
To format the comma-separated value (CSV) file, suppliers can use Java code to parse the response to a comma-separated value (CSV) file.
The example below demonstrates the use of the header and the body to process the response.
Example: Java code to parse CSV file
if (response.getStatus() == Response.Status.OK.getStatusCode() && response.hasEntity()) { InputStream inputStream = (InputStream)response.getEntity(); try { String header = response.getHeaderString("Content-Disposition"); if(header != null && !("").equals(header)) { if(header.contains("filename")){ //header value will be something like: //attachment; filename=10000000354_2016-01-15T23:09:54.438+0000.zip int length = header.length(); String fileName = header.substring(header.indexOf("filename="),length); System.out.println("filenameText " + fileName); String [] str = fileName.split("="); System.out.println("fileName: " + str[1]); //replace "/Users/anauti1/Documents/" below with your values File reportFile = new File("/Users/anauti1/Documents/" + str[1].toString()); OutputStream outStream = new FileOutputStream(reportFile); byte[] buffer = new byte[8 * 1024]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { outStream.write(buffer, 0, bytesRead); } IOUtils.closeQuietly(inputStream); IOUtils.closeQuietly(outStream); } } } catch (Exception ex){ System.out.print("Exception: " + ex.getMessage()); }
}
Updated about 15 hours ago