我们正在开发我们的 Rails 应用程序,以便将使用 Shopify 上新的“行项目属性”的产品考虑在内。
我们应用程序的一部分将客户订单视为一个整体,然后计算所有订单总共包含多少特定产品。
因此,您有 3 个带有相同产品的订单,然后我们的应用程序将在列表中显示单个产品,其中包含所有 3 个订单的总数量。很好,很容易采摘。
但是,我想将具有订单项属性的产品分离到列表中的单独产品中,以便这些产品可以与属性一起显示。
我可以从 Order 对象中获取属性,我知道同一产品可以多次出现在订单中,并附加了不同的订单项属性。
但是 order.line_item 上的什么告诉我这是“不同的产品”?即相同的产品但不同的属性,除了属性本身之外,还有什么告诉他们appart?
示例行项目:
"line_items": [
{
"fulfillment_service": "manual",
"fulfillment_status": null,
"grams": 200,
"id": 466157049,
"price": "199.00",
"product_id": 632910392,
"quantity": 1,
"requires_shipping": true,
"sku": "IPOD2008GREEN",
"title": "IPod Nano - 8gb",
"variant_id": 39072856,
"variant_title": "green",
"vendor": null,
"name": "IPod Nano - 8gb - green",
"variant_inventory_management": "shopify",
"properties": [
{
"name": "Custom Engraving",
"value": "Happy Birthday"
}
]
},
这是我们的代码在添加对订单项属性的支持之前的样子。
def build_products_list(orders)
products = {}
orders.each do |order|
order.line_items.each do |item|
products[item.name] = {} unless products[item.name]
products[item.name]['sku'] = item.sku
products[item.name]['qty'] = (products[item.name]['qty'] ? products[item.name]['qty'] : 0) + item.quantity
end
end
products
end
因此,我需要将 products[item.name] 更改为每个产品的唯一名称,包括那些具有订单项属性的产品,以便它们显示为单独的产品。
改成什么?