shopifyで共同購入の仕様を実現

shopifyで共同購入の仕様を実現

shopifyで共同購入のための文言を追加したいと相談を受けた時に、使用したコードです。
次のような相談を受けた上で制作しました。

  • 製品を発注するには最低発注数があり、その在庫をかかえたくない。
    そこで最低発注数になるまでは発送されない旨、あといくつの購入で発送されるかを表示できるようにしたい。
  • 一人のお客様が最低発注数を頼むわけではなく、複数のお客様で注文した総数が最低発注数に達すれば、発送できるようになる。

実装した画面

最低発注数が5個の条件で実装した画面になります。

商品管理画面 - メタフィールド

注文数0のとき

商品管理画面 - 在庫

商品ページ

注文数2のとき

商品管理画面 - 在庫

商品ページ

注文数5の(最低発注数に達した)とき

商品管理画面 - 在庫

商品ページ

使用するための条件

この共同購入を利用するためには、次のような条件が必要です

  1. 設定の「メタフィールド」で「商品」のメタフィールドに最低購入数を設定する(キーは _purchase_number)
  2. 商品管理画面の在庫の「在庫を追跡する」「在庫切れの場合でも販売を続ける」にチェックを入れる
  3. 在庫数の最初の設定は「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 -%}

arrow_circle_up