我希望你们一切都好。我目前正在致力于集成,并面临使用 Shopify API 和 node.js 将 Shopify 订单的订单状态从“未履行”更改为“已履行”的挑战。我已经参考了 API 文档,并正在寻求更多指导,因为我的方法遇到了问题。
这是我目前的方法:
我向 /admin/api/2024-01/orders/{order_id}/fulfillments.json 发出 POST 请求。 在请求正文中,我包括:
const fulfillmentData = {
message: null,
notify_customer: true,
tracking_info: {
number: trackingNumber,
url: `https://company/EU/en/parcel-tracking?match=${trackingNumber}`,
company: "company"
},
line_items: currentOrder.line_items.map(lineItem => ({
id: lineItem.id,
quantity: lineItem.quantity,
})),
location_id: locationId
};
但是,我收到错误响应,具体来说:
请求失败,状态代码 400 { 错误:{ 履行:'必需的参数丢失或无效' } }
我非常感谢任何可以帮助我解决此问题的指导、代码示例或其他详细信息。
提前谢谢您!
最终对我有用的解决方案是使用 shopify-api-node 库。这是解决我的问题的代码:
const fulfillmentDetails = await shopify.order.fulfillmentOrders(orderId);
const fulfillmentOrderId = fulfillmentDetails[0].id;
const fulfillmentLineitemIds = fulfillmentDetails[0].line_items.map(item => ({
id: item.id,
quantity: item.quantity
}));
const updateParams = {
line_items_by_fulfillment_order: [
{
fulfillment_order_id: fulfillmentOrderId,
fulfillment_order_line_items: fulfillmentLineitemIds
}
],
tracking_info: {
number: trackingNumber,
url: `https://company.eu/EU/en/parcel-tracking?match=${trackingNumber}`,
company: 'company'
},
notify_customer: true,
origin_address: null,
message: 'Delivery status: ' + trackingNumber
};
const updateFulfillment = await shopify.fulfillment.createV2(updateParams);