商品価格レンダリングのカスタマイズ

概要

商品価格レンダリング Scriban テンプレートの概要。

商品価格レンダリングには、Scriban テンプレートの形式のレンダリング バリアントが含まれています。商品価格レンダリングには独自のデフォルトのレンダリング バリアント ルートとデフォルトのレンダリング バリアント (/sitecore/Content/<tenant>/<site>/Presentation/Rendering Variants/Product Price) があり、マークアップを生成するために Scriban テンプレートを使用します。Scriban テンプレートを変更することはできますが、この場合、ソフトウェアのアップグレード時にカスタマイズがオーバーライドされないように、新しいカスタム レンダリング バリアントを作成することをお勧めします。レンダリングのラベルを変更することもできます。

注記

商品価格非推奨レンダリングは、既存のサイトでのみ使用でき、レンダリング バリアントの Scriban テンプレートではなく MVC ビューに基づいています。

次のコードは、デフォルトのレンダリング バリアント内で定義された商品価格レンダリングの Scriban テンプレートを示しています。調整価格と表示価格が MVC モデルに渡され、埋め込みアイテム o_model を使用してレンダリング バリアントおよび Scriban テンプレートで使用できます。

{{ # The <div> element to show the error message. }} 
{{ if o_model.error_message}}
    <div class="error-message">
      {{o_model.error_message}}
    </div>
{{else
    if i_datasource 
    if o_model.is_on_sale
        percentLead = i_datasource.SavingsLeadText.raw
        savingsMessage = percentLead + ' ' + o_model.savings_percentage + '%'
    }}
    <input type="hidden" value="{{savingsMessage}}" id="productprice-savingsmessage" />
    {{end}}        
    <div class="price-info" productid="{{o_model.product_id}}" listprice="{{o_model.formatted_list_price}}" adjustedprice="{{o_model.formatted_adjusted_price}}" isonsale="{{o_model.is_on_sale}}">
        <div class="price-now-before">
            <div class="price-with-savings">
                <h3>
                    <span data-bind="text: priceNow"></span>
                    <span data-bind="text: savingsMessage"></span>
                </h3>
            </div>
            <div class="price-before">
                <h3>
                    <span data-bind="text: priceBefore"></span>
                </h3>
            </div>
        </div>
        <div class="price-only">
            <h3>
                <span data-bind="text: priceNow"></span>
            </h3>
        </div>
    </div>
{{else
  if o_pagemode.is_experience_editor_editing
 '[No Data source has been selected]'
end
end
end}}

商品価格 Scriban テンプレートでは、次の図に示すように、埋め込まれたアイテム o_model を通じて、ProductPriceRenderingModel に含まれているプロパティとオブジェクトにアクセスします。

商品価格レンダリング モデルの図