问题描述
对于包含 2 个或更多相同商品的订单,Walmart 在使用 API 时会将它们分成 1 个数量的行。例如:
<order
xmlns="http://walmart.com/mp/v3/orders">
<purchaSEOrderId>xxx</purchaSEOrderId>
<customerOrderId>xxx</customerOrderId>
<customerEmailId>xxx</customerEmailId>
<orderDate>xxx</orderDate>
<mart>Walmart.com</mart>
<shippingInfo>...</shippingInfo>
<orderLines>
<orderLine>
<lineNumber>1</lineNumber>
<item>
<productName>xxx</productName>
<sku>xxx</sku>
</item>
<charges>.....</charge>
</charges>
<orderLineQuantity>
<unitOfMeasurement>EACH</unitOfMeasurement>
<amount>1</amount>
</orderLineQuantity>
<statusDate>2021-03-31T22:30:46.890Z</statusDate>
<orderLinestatuses>
<orderLinestatus>
<status>AckNowledged</status>
<statusQuantity>
<unitOfMeasurement>EACH</unitOfMeasurement>
<amount>1</amount>
</statusQuantity>
</orderLinestatus>
</orderLinestatuses>
<originalCarrierMethod>267</originalCarrierMethod>
<fulfillment>....</fulfillment>
</orderLine>
<orderLine>
<lineNumber>1</lineNumber>
<item>
<productName>xxx</productName>
<sku>xxx</sku>
</item>
<charges>....</charge>
</charges>
<orderLineQuantity>
<unitOfMeasurement>EACH</unitOfMeasurement>
<amount>1</amount>
</orderLineQuantity>
<statusDate>2021-03-31T22:30:46.891Z</statusDate>
<orderLinestatuses>
<orderLinestatus>
<status>AckNowledged</status>
<statusQuantity>
<unitOfMeasurement>EACH</unitOfMeasurement>
<amount>1</amount>
</statusQuantity>
</orderLinestatus>
</orderLinestatuses>
<originalCarrierMethod>xxx</originalCarrierMethod>
<fulfillment>...</fulfillment>
</orderLine>
</orderLines>
上面有多个第 1 行。
我的第一个想法是以沃尔玛 API 返回订单的确切方式提交它:
<orderShipment xmlns="http://walmart.com/mp/v3/orders">
<orderLines>
<orderLine>
<lineNumber>1</lineNumber>
<orderLinestatuses>
<orderLinestatus>
<status>Shipped</status>
<statusQuantity>
<unitOfMeasurement>Each</unitOfMeasurement>
<amount>1</amount>
</statusQuantity>
<trackingInfo>
<shipDateTime>2021-04-01T11:47:40</shipDateTime>
<carrierName>
<carrier>FedEx</carrier>
</carrierName>
<methodCode>Standard</methodCode>
<carrierMethodCode>67</carrierMethodCode>
<trackingNumber>xxxx</trackingNumber>
<trackingURL>https://www.fedex.com/</trackingURL>
</trackingInfo>
</orderLinestatus>
</orderLinestatuses>
</orderLine>
<orderLine>
<lineNumber>1</lineNumber>
<orderLinestatuses>
<orderLinestatus>
<status>Shipped</status>
<statusQuantity>
<unitOfMeasurement>Each</unitOfMeasurement>
<amount>1</amount>
</statusQuantity>
<trackingInfo>
<shipDateTime>2021-04-01T11:47:40</shipDateTime>
<carrierName>
<carrier>FedEx</carrier>
</carrierName>
<methodCode>Standard</methodCode>
<carrierMethodCode>67</carrierMethodCode>
<trackingNumber>xxxx</trackingNumber>
<trackingURL>https://www.fedex.com/</trackingURL>
</trackingInfo>
</orderLinestatus>
</orderLinestatuses>
</orderLine>
</orderLines>
</orderShipment>
但是 API 返回以下错误:
OrderLine has more than one entry for the same lineNumber. Please check the lineNumber 1
接下来我尝试将它们合并为一个请求:
<orderShipment xmlns="http://walmart.com/mp/v3/orders">
<orderLines>
<orderLine>
<lineNumber>1</lineNumber>
<orderLinestatuses>
<orderLinestatus>
<status>Shipped</status>
<statusQuantity>
<unitOfMeasurement>Each</unitOfMeasurement>
<amount>2</amount>
</statusQuantity>
<trackingInfo>
<shipDateTime>2021-04-01T11:53:48</shipDateTime>
<carrierName>
<carrier>FedEx</carrier>
</carrierName>
<methodCode>Standard</methodCode>
<carrierMethodCode>67</carrierMethodCode>
<trackingNumber>xxxxx</trackingNumber>
<trackingURL>https://www.fedex.com/</trackingURL>
</trackingInfo>
</orderLinestatus>
</orderLinestatuses>
</orderLine>
</orderLines>
</orderShipment>
Unable to process this request. The Line: 1 of PO: xxxx doesn't have enough quantity to ship requested quantity :: 2 qtyAvailabletoShip :: 1
我想不出另一种方法来运送这个?如果有人能提供任何线索,我将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)