沃尔玛卖家 API "Bulk Item Setup"不起作用



我尝试使用Walmart API v4.2来发布一些项目。我使用了"批量项目设置";API方法来创建一些提要。我用了一些方法:

  • 发送二进制文件(在请求体中,for-data),头部"multipart/form-data"(这种方式在Walmart API文档中有描述)
  • 在请求体中发送字符串化对象,头部为'Content-Type': 'application/json',

Walmart API正确返回我feeddid。但这些方法都不起作用!创建feed后,我看到了"已提交"。在沃尔玛卖家中心的地位。但是这个状态在几分钟后就变成了"错误"。在错误栏,我看到"错误类型:数据错误"。并附有"数据不正常"的说明。请检查数据文件以确保格式正确。java.lang. nullpointerexception "

我使用我的后端NodeJs应用程序来做它。我用Axios来发出请求。我的代码示例:

async createFeed(wdpId, wdpSecret, accessToken, feedsData) {
try {
const string = JSON.stringify(feedsData);
const file = Buffer.from(string);
const formData = new FormData();
formData.append('file', file);
const baseToken = WalmartService.getBaseAuthToken(wdpId,              wdpSecret);
const options = {
params: {
feedType: 'MP_WFS_ITEM',
},
headers: {
Authorization: baseToken,
'WM_SEC.ACCESS_TOKEN': accessToken,
'WM_QOS.CORRELATION_ID': uuidv4(),
'WM_SVC.NAME': 'Walmart Marketplace',
Accept: 'application/json',
'Content-Type': 'application/json',
...formData.getHeaders(),
},      
};
return (
axios
.post(`${process.env.WALMART_API_BASEURL}/feeds`, formData, options)
.then((response) => {
return response.data;
})
.catch((error) => {
console.error(error.message);
throw new BadRequestException('Walmart error, ', error.message);
})
);
} catch (error) {
throw new BadRequestException('Can not create listing');
}
}

难以识别的问题根据你提供的信息。您可能需要检查的几件事

  1. 如果您正在追加/附加文件(正如我在代码中看到的那样),使用内容类型头为"multipart/form-data。此外,如果您将数据作为json字符串发送,请确保文件名具有.json扩展名。如果你不使用这个,它可能默认为xml,你会得到和你看到的一样的错误。

  2. 尝试使用rest客户端(如Postman)调用API,并验证调用是否成功。

  3. 如果你想发送的数据作为HTTP主体(而不是一个文件),这应该工作与内容类型作为应用程序/json。在他们的开发人员门户网站上没有记录,但它可以工作。

最新更新