Shopify で新しい「項目のプロパティ」を使用する製品を考慮に入れるように、Rails アプリに取り組んでいます。
私たちのアプリの一部は、顧客の注文全体を見て、すべての注文に含まれる特定の製品の合計数を計算します。
そのため、同じ製品を含む 3 つの注文がある場合、アプリは 3 つの注文すべてを組み合わせた合計数量を含む 1 つの製品をリストに表示します。キレイで摘みやすい。
ただし、明細項目のプロパティを持つ製品をリスト内の個別の製品に分けて、これらをプロパティで表示できるようにしたいです。
Order オブジェクトからプロパティを取得できます。また、同じ製品が複数回注文され、異なる品目プロパティが添付されている可能性があることもわかっています。
しかし、order.line_item で、これが「別の製品」であることがわかりますか? つまり、同じ製品であるが特性が異なる場合、特性自体を除いて、それらがどのように異なるかを教えてください。
ラインアイテムの例:
"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] を各製品に固有のものに変更する必要があります。これには、個別の製品として表示されるように、明細項目のプロパティを持つものも含まれます。
何に変更しますか?