公開日:2024年8月21日

MakeShopで特定の商品ページにだけテンプレを使う方法

MakeShopでネットショップを構築しているのですが、特定の商品だけに表示したい内容がありました。

しかし、MakeShopのデフォルトの機能にはそのような機能は見つかりません。

そこで、下記のようにカスタムを行いました。

1.モジュールを追加

モジュールを追加

モジュールを追加し、そのモジュールの中に表示させたいHTMLコードを記載します。

後ほど、追加したモジュールタグ(この例では「$module.mixture」)を使用しますので、覚えておいてください。

2.デザイン編集画面の商品詳細に下記のコードを追記

HTML

Makeshopのテンプレート編集で商品詳細に追加したHTMLコード

<div style="display:none;" id="mixture"><{$module.mixture}></div>

上記のコードで、さきほど作成したモジュールの中身が<div id =”mixture”></div>内に表示されます。

このままだと全てのページで表示されてしまうので、一旦「display:none;」で非表示にしておきます。

JavaScript

Makeshopのテンプレート編集で商品詳細に追加したJavaScriptコード

// dd 要素を取得
var ddElement = document.querySelector('.item-description dd');

// <module.mixture> タグが存在するか確認
if (ddElement.innerHTML.includes('<module.mixture>')) {

    // <div style="display:none;" id="mixture"></div> を取得
    var hiddenDiv = document.getElementById('mixture');

    // id="mixture" の div を表示する
    hiddenDiv.style.display = 'block';
        
    // class="border-top" を追加する
    hiddenDiv.classList.add('border-top');
}

上記のコードでは、商品説明欄の中に「<module.mixture>」という言葉があるかどうかを調べ、もし存在していれば、非表示になっている「<div style=”display:none;” id=”mixture”><div>の中身を表示する仕組みになっています。

3.商品管理画面から特定の商品にタグを追加する

あとは、特定の商品の商品説明欄に<module.mixture>を挿入すればOKです。

この記事のURLをコピー

関連情報

メールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。