# 商品に、選べる無料のおまけ商品をつけたい

**URL:** <https://community.shopify.com/t/topic/370065>\
**Category:** 総合的なディスカッション\
**Created:** [October 30, 2024, 6:26am UTC](https://community.shopify.com/t/topic/370065 "2024-10-30T06:26:25Z")\
**Posts on this page:** 2\
**Page:** 1

## AI-generated summary

ユーザーが特定商品の購入時に、複数の無料おまけ商品から選択できるキャンペーンの実装方法を相談しています。

**提案された実装方法:**
- おまけ商品を価格0円で設定し、「ノベルティ」タグを付与
- ノベルティ商品ページへの直接アクセスを防ぐため、トップページへ強制リダイレクト
- 対象商品に「ノベルティ付与対象商品」タグを設定
- カート画面でdata属性を使い対象商品を識別し、おまけ選択肢を表示
- cart.jsでカート内容を監視し、対象商品なしでノベルティのみ追加される不正を防止
- Shopify FlowとRun Codeで注文後の処理を自動化(ノベルティのみの注文はキャンセル)

**注意点:**
- コードカスタマイズが必要
- Shopifyの仕組みに詳しい人は突破可能なため、厳密な制御にはカスタムアプリ開発が必要
- 有料アプリを使わない範囲での実現方法として提案されています

<div class="post-metadata">

**Author:** ![dm546](https://avatars.discourse-cdn.com/v4/letter/d/46a35a/32.png) [@dm546](https://community.shopify.com/u/dm546)\
**Post date:** [October 30, 2024, 6:26am UTC](https://community.shopify.com/t/topic/370065/1 "2024-10-30T06:26:25Z")

</div>

特定の商品を購入する際に

購入フローの中で、選べる無料のおまけ商品をつけるキャンペーンを実施したいです。

その際、複数のおまけからお客様側で希望を選択いただいて、

決済する流れとしたいのですが、どのような機能を使うことで実現しますでしょうか。

ノベルティやギフトラッピングの選択のような機能が近いと思うのですが、

なるべく有料アプリを使用しない範囲で実現できることはありませんでしょうか。

定期便商品の初回購入時に実現を検討しています。

---

<div class="post-metadata">

**Author:** ![Qcoltd](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/qcoltd/32/900_2.png) [@Qcoltd](https://community.shopify.com/u/Qcoltd)\
**Post date:** [November 15, 2024, 3:13am UTC](https://community.shopify.com/t/topic/370065/2 "2024-11-15T03:13:09Z")

</div>

@dm546 様

しっかりした仕組みにしようとするとコードカスタマイズがかなり発生しそうですが、

下記のようにすることで実現できると思います。

※ただし、今からお伝えする方法では、

Shopifyの仕組みを熟知している方であれば、突破して自由に無料商品を注文できてしまいます。

これを防ぐような厳密な仕組みを作ろうと思うとカスタムアプリの開発が必要になってくると思います。

1. おまけ商品の対象となる商品を、価格0円で用意します。
2. おまけ商品には、商品タグ「ノベルティ」をつけておきます。
3. コードカスタマイズを行い、商品タグ「ノベルティ」がついた商品の商品詳細ページにアクセスがあった場合、トップページに強制リダイレクトをするようにします。
4. 次に、ノベルティ付与の対象となる商品に「ノベルティ付与対象商品」という商品タグをつけます。(商品タイプが使えるならその方が後工程が楽になりますが、使えないかもしれないので、汎用性が高いタグの方で説明します。)
5. カート画面のコードカスタマイズを行い、「ノベルティ付与対象商品」がカートにある時、それが分かるようにカート内の商品情報にdata属性で目印をつけます。その目印がある時だけ「無料おまけの選択肢」が表示されるようにします。
6. 「無料おまけの選択肢」で選択された商品は、cart.jsを通じて、カート投入されるようにします。
7. さらに、コードカスタマイズを行い、JSでカートページのHTMLをチェックするようにし、ノベルティ付与対象商品が存在しないのに、ノベルティがカートに入っていないかを監視します。不正がある場合は、カートの内容を強制的にクリアします。こうすることで、ノベルティをカートに入れた後に、ノベルティ付与対象商品をカートから削除して、ノベルティだけ得ようとする行為を阻止します。(cart.jsでは商品タグの情報は取得できないため、cartのHTMLを取得します。商品タイプを利用する場合は、cart.jsのみで解決できます。)
8. 最後にセーフティネットとして、Shopify FlowとShopify FlowのRun Codeを利用して、注文内に、ノベルティ付与対象商品がないのに、ノベルティが注文に含まれている場合に、発送を保留にしたり、ストアオーナーにアラームメールを通知したり、注文をキャンセルしたりします。

ご参考まで。

(キュー田辺)
