調査で知ったのでメモとして。
前提と問題
- Shopify開発ストア使用
- customer.order_countで何らかの処理を行いたい
上記前提で以下の問題が発生します。
- customer.order_countが常に0で値が取れない
customer.order_count
理由
I believe this is because you’re using a “bogus gateway”. Let me if it works as expected using an alternative payment like “cash on delivery”.
Your intuition about expected behaviour in a dev store is correct: the total_spent field will only include data for non-test transactions. The orders on your test store have been processed with the bogus gateway which is why they’re not contributing to your Revenue and not included in your customers’ total_spent field. The same qualification applies for the orders_count field.
上記のように、テスト注文ではカウントされないとのことです。また、total_spentも使えません。
対応策
{{ customer.orders.size }}でorderの数は取得できるので、そちらを使うことで似た動作を作れると思います。
もっとも、この点から開発テスト用に使っていたアカウントでは、{{ customer.orders.size }}とorder_countに差異が生まれることになり、何かの折に問題の原因になるかもしれません。
結び
開発ストアの場合は、以下のように有料プランにしないと実際の取引が試せません(おそらく代引きも同様)。
そのため有料プランにせず決済プロバイダと契約していない段階で、order_countやtotal_spentを利用する機能の開発は難しいと思います。
実際の取引を使用して開発ストアをテストする必要がある場合は、ストアを有料プランに移行する必要があります。
1人がこの記事を評価
役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。
連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。