shopifyで共同購入のための文言を追加したいと相談を受けた時に、使用したコードです。
次のような相談を受けた上で制作しました。
- 製品を発注するには最低発注数があり、その在庫をかかえたくない。
そこで最低発注数になるまでは発送されない旨、あといくつの購入で発送されるかを表示できるようにしたい。 - 一人のお客様が最低発注数を頼むわけではなく、複数のお客様で注文した総数が最低発注数に達すれば、発送できるようになる。
実装した画面
最低発注数が5個の条件で実装した画面になります。
商品管理画面 - メタフィールド
注文数0のとき
商品管理画面 - 在庫
商品ページ
注文数2のとき
商品管理画面 - 在庫
商品ページ
注文数5の(最低発注数に達した)とき
商品管理画面 - 在庫
商品ページ
使用するための条件
この共同購入を利用するためには、次のような条件が必要です
- 設定の「メタフィールド」で「商品」のメタフィールドに最低購入数を設定する(キーは _purchase_number)
- 商品管理画面の在庫の「在庫を追跡する」「在庫切れの場合でも販売を続ける」にチェックを入れる
- 在庫数の最初の設定は「0」にする
在庫数の絶対値が最低購入数の値を超えたら、「すぐに発送できる」という文言が表示されるような仕様になっています。
一度発送して、また最低購入数の表示を出したい場合は、在庫数を再度0に設定すればよいです。
実装コード
コードをクリップボードにコピー
{%- assign variant = product.selected_or_first_available_variant -%}
{%- if variant.inventory_policy == 'continue' -%}
{%- assign inventoryAbs = variant.inventory_quantity | abs -%}
{%- if inventoryAbs < product.metafields.my_fields._purchase_number -%}
{%- assign remain = product.metafields.my_fields._purchase_number | minus: inventoryAbs -%}
<p>残り{% echo remain %}個購入されたら発送されます。</p>
{%- else -%}
<p>最低購入数に達してるので、すぐに発送されます。</p>
{%- endif -%}
{%- endif -%}