dm546
1
特定の商品を購入する際に
購入フローの中で、選べる無料のおまけ商品をつけるキャンペーンを実施したいです。
その際、複数のおまけからお客様側で希望を選択いただいて、
決済する流れとしたいのですが、どのような機能を使うことで実現しますでしょうか。
ノベルティやギフトラッピングの選択のような機能が近いと思うのですが、
なるべく有料アプリを使用しない範囲で実現できることはありませんでしょうか。
定期便商品の初回購入時に実現を検討しています。
Qcoltd
2
@dm546 様
しっかりした仕組みにしようとするとコードカスタマイズがかなり発生しそうですが、
下記のようにすることで実現できると思います。
※ただし、今からお伝えする方法では、
Shopifyの仕組みを熟知している方であれば、突破して自由に無料商品を注文できてしまいます。
これを防ぐような厳密な仕組みを作ろうと思うとカスタムアプリの開発が必要になってくると思います。
- おまけ商品の対象となる商品を、価格0円で用意します。
- おまけ商品には、商品タグ「ノベルティ」をつけておきます。
- コードカスタマイズを行い、商品タグ「ノベルティ」がついた商品の商品詳細ページにアクセスがあった場合、トップページに強制リダイレクトをするようにします。
- 次に、ノベルティ付与の対象となる商品に「ノベルティ付与対象商品」という商品タグをつけます。(商品タイプが使えるならその方が後工程が楽になりますが、使えないかもしれないので、汎用性が高いタグの方で説明します。)
- カート画面のコードカスタマイズを行い、「ノベルティ付与対象商品」がカートにある時、それが分かるようにカート内の商品情報にdata属性で目印をつけます。その目印がある時だけ「無料おまけの選択肢」が表示されるようにします。
- 「無料おまけの選択肢」で選択された商品は、cart.jsを通じて、カート投入されるようにします。
- さらに、コードカスタマイズを行い、JSでカートページのHTMLをチェックするようにし、ノベルティ付与対象商品が存在しないのに、ノベルティがカートに入っていないかを監視します。不正がある場合は、カートの内容を強制的にクリアします。こうすることで、ノベルティをカートに入れた後に、ノベルティ付与対象商品をカートから削除して、ノベルティだけ得ようとする行為を阻止します。(cart.jsでは商品タグの情報は取得できないため、cartのHTMLを取得します。商品タイプを利用する場合は、cart.jsのみで解決できます。)
- 最後にセーフティネットとして、Shopify FlowとShopify FlowのRun Codeを利用して、注文内に、ノベルティ付与対象商品がないのに、ノベルティが注文に含まれている場合に、発送を保留にしたり、ストアオーナーにアラームメールを通知したり、注文をキャンセルしたりします。
ご参考まで。
(キュー田辺)