使用PrestaShop WebService创建地址时id_country参数必填报错
PrestaShop 1.7.8.9 WebService创建地址报错"id_country required"的解决办法
问题描述
使用PrestaShop 1.7.8.9版本WebService创建地址,请求路径为{{webservice_url}}/api/addresses?output_format=JSON,请求体已传入id_country: "8",但仍收到报错:parameter "id_country" required。
可能原因及解决方案
1. JSON格式错误
你提供的请求体存在语法错误:缺少开头的{,且末尾多了一个},导致服务器无法正确解析JSON,从而读取不到id_country参数。
修复后的正确请求体:
{ "address": { "id": 9, "id_customer": 0, "id_manufacturer": 0, "id_supplier": 1, "id_warehouse": 0, "id_country": 8, "id_state": 35, "alias": "supplier", "company": "Fashion", "lastname": "supplier", "firstname": "supplier", "vat_number": "", "address1": "767 Fifth Ave.", "address2": "", "postcode": "10153", "city": "New York", "other": "", "phone": "(212) 336-1440", "phone_mobile": "", "dni": "", "deleted": 0, "date_add": "2023-08-11 07:50:47", "date_upd": "2023-08-11 07:50:47" } }
2. 参数类型不匹配
PrestaShop的id_country字段为整数类型,你传入的是字符串"8",部分场景下服务器可能无法自动转换,导致识别失败。建议将所有ID类参数改为数字类型(去掉引号),如"id_country": 8、"id_state": 35等。
3. 请求头未正确设置
确保请求头包含Content-Type: application/json,否则服务器会将请求体视为普通文本,无法解析出JSON参数。
4. API权限不足
检查WebService密钥是否拥有addresses资源的CREATE权限,可在PrestaShop后台的「WebService」设置中验证并调整权限。
内容的提问来源于stack exchange,提问作者Chanrithisak Phok
相关产品推荐
相关产品推荐

