1

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] を各製品に固有のものに変更する必要があります。これには、個別の製品として表示されるように、明細項目のプロパティを持つものも含まれます。

何に変更しますか?

4

1 に答える 1

1

異なるラインアイテムプロパティを持つラインアイテム間の唯一の違いは、ラインアイテムプロパティ自体です。

ハッシュに一意のキーを作成するには、プロパティを何らかの方法でエンコードし(存在する場合)、キーの最後に追加します。単純なハッシュ関数でうまくいくはずです。同じ広告申込情報のプロパティを持つ商品は同じハッシュを持つため、それに応じてスタックする必要があります。

于 2012-09-13T01:09:06.013 に答える