次の方法で共有


テーマの概要

この記事では、Microsoft Dynamics 365 Commerce のオンライン サイトの概観について説明します 。

Dynamics 365 Commerce テーマ (テーマ パック とも呼ばれる) は、販売者とその顧客向け eコマース ページを構成するサイトのデザインとモジュールの外観と外観を定義します。 各 eコマース サイトに設定できるテーマ パックは 1 つのみです。

スタイル プリセット

テーマ パックは、各プリセットごとに異なるスタイルのセットを定義する、1つまたは複数のスタイル プリセットを含むことができます。 スタイル プリセットにはには、個々のモジュールのスタイルと、ブランドのアクセント カラーなどのグローバル スタイルの両方が含まれます。 たとえば、テーマ パックには、「軽い」テーマと「暗い」テーマ、または「クラシックな」ルック アンド フィールと「ヴィンテージ」のルック アンド フィールのスタイル プリセットが含まれている場合があります。 スタイル プリセットの定義と名前付けは、テーマの開発者によって決定されます。

スタイル プリセットは、ブランドの色やフォントなどのグローバル カスケード スタイル シート (CSS) の値をサポートしています。 また、個々のモジュールのテキストの色とサイズを含むモジュール固有の CSS 値もサポートしています。 サイトごとに構成できるスタイル プリセットは 1 つだけです。 ただし、変更が必要な場合は、CSS 値を Commerce サイト ビルダーで上書きして、カスタム スタイルのプリセットとして保存できます。 スタイル プリセットの変更の例には、さまざまなモジュールが使用するデフォルトのグローバル ブランド アクセント カラーの変更、または特定のモジュールのフォント サイズの変更が含まれます。 影響を受けるモジュールがサイト ページにレンダリングされるときはいつでも、常に新しいカスタム値を使用します。

テーマには、モジュールのスタイル設定に使用できる SCSS (サッシー カスケード スタイル シート ) ファイルが含まれます。 SCSS ファイルには、オプションでモジュール ビュー拡張子およびモジュール定義拡張子を含めることもできます。 このようにして、モジュールは、選択されたテーマに基づいて、異なるビューをレンダリングできます。

テーマを作成した後、サンドボックスまたは制作サイトにアップロードできます。 次の図の例に示すように、新しいサイトを作成するときにテーマパックを選択します。

Commerce のサイト ビルダー の新しいサイト ダイアログ ボックスのテーマ パック フィールド。

テーマ パックが選択していないサイトを既に配置している場合は、特別な&set=showThemePack クエリ文字列パラメーターを使用して、Commerce のサイト ビルダーの一般サイト設定ページでテーマを設定できます。 テーマを設定した後に保存して公開を選択してください。 選択したテーマ パックは、Microsoft Dynamics 365 のサポートに連絡して変更する必要があります。

Commerce のサイト ビルダーの一般サイト設定ページで選択したテーマ パック。

テーマを設定する場合は、Commerce のサイト ビルダーの追加構成が必要です。 拡張機能のサイト設定ページで、下図の例のように、テーマがサイトで選択されたテーマ パックと一致することを確認します。

Commerce のサイト ビルダーの拡張機能サイト設定ページのテーマ フィールド。

Commerce のサイト ビルダーでは、追加のCSS上書きファイルを アップロードすることもできます。 このようにして、テーマにコードを変更して再公開することなく、サイト ビルダーで選択したテーマの上に直接変更を加えることができます。 このオプションは、小さくて簡単な変更を行う必要がある場合に役立ちます。 ただし、これらの変更を最終的にテーマ コードに移行することをお勧めします。 すべてのサイトページに追加の CSS オーバーライド ファイルが読み込まれると、パフォーマンスへの影響が小さくなる可能性があります。

カスタム テーマを作成するための一般的なガイドライン

  • yarn msdyn365 add-theme NEW_THEME_NAMECLI (コマンド ライン インターフェイス) を使用して、新しいテーマを作成できます。 このコマンドは、/src/themes/ フォルダーにテーマを作成します。
  • スタイル ディレクトリの下に、テーマの SCSS エントリ ポイント ファイルがあります。 このファイルは、命名パターン THEME_NAME.theme.scss を使用します。
  • テーマは特別なモジュールとして作成されます。 これらには、テーマのフレンドリ名と説明、およびテンプレートの React コンポーネントを含む定義ファイルが含まれています。
  • テーマに含めることができる SCSS ファイルの数に制限はありません。
  • テーマ エントリ ポイントは、相対パスを使用して他の SCSS ファイルをインポートできます。

ベスト プラクティス

  • モジュール ライブラリ モジュールは、Bootstrap 4 クラスを使用して構築されます。 したがって、すべてのテーマに Bootstrap 4 または Bootstrap 4 RTL を SCSS フレームワークとして含めることをお勧めします。

  • Font Awesome グリフ アイコンを使用して構築されたモジュール ライブラリ モジュールを利用する場合は、SCSS ファイルに font-awesome を含める必要があります。 次の例では、Bootstrap および font-awesome を SCSS ファイルに含める方法を示しています。

    $fa-font-path: 'https://use.fontawesome.com/releases/v5.2.0/webfonts' !default;
    @import "bootstrap/scss/bootstrap";
    

参照テーマからテーマを作成する

提供されている参照の 1 つ (Fabrikam、Starter、Adventure Works、または Adventure Works) のコピーから新しいテーマを開始し、適切な変更を行することをお勧めします。 これらの参照テーマには、モジュール ライブラリのすべての SCSS スタイルが既に含まれています。 まったく新しいテーマから始める場合、すべてのモジュールのスタイルを再定義する必要があります。

Fabrikam および Starter テーマは、モジュール ライブラリの一部として含まれており、クローン CLI コマンドを使用してコピーできます。 次に例を示します。

yarn msdyn365 clone fabrikam my-new-theme

メモ

システムはテーマを特別なモジュールとして扱うため、クローン コマンドは自動的に新しいクローン テーマを \src\modules ディレクトリに配置します。 次に、新しいテーマを手動で \src\themes ディレクトリに移動する必要があります。 \src\themes ディレクトリが存在しない場合は、手動で作成できます。

Adventure Works テーマはモジュール ライブラリに含まれていません。 代わりに、拡張機能としてリリースされています Adventure Works テーマのインストール方法については、Adventure Works テーマのインストール を参照してください。 クローン CLI コマンドは、Adventure Works テーマでは機能しません。 ただし、ソース コードをテーマ ディレクトリにコピーして、必要に応じて変更することができます。

このセクションでは、カスタム テーマに対して推奨される構造を示します。

次の項目をインポートまたは定義します。

  • フォントとグリフ アイコン

  • ミックスインと機能:

    • ブートストラップ: コンポーネントとユーティリティを除く依存関係
    • 共有コンポーネント: コンポーネントとユーティリティを除く依存関係
    • カスタム テーマのミックスインと機能
  • テーマ変数:

    • カスタム テーマ変数
    • ブートストラップ: デフォルトのテーマ変数 (フォールバック)
  • コンポーネントとモジュールの SCSS:

    • 共有コンポーネント: コンポーネント
    • カスタム コンポーネントとモジュール
  • ユーティリティ:

    • ブートストラップ、共有コンポーネント、およびカスタム ユーティリティ

モジュール テーマのフック

モジュールごとに、モジュール名と一致するクラス名が定義されています。 このようにして、どのテーマでもモジュールをターゲットにできます。 このクラス名は、React コンポーネントによってレンダリングされる最も外側の要素に適用される最初のクラス名である必要があります。 より詳細なテーマ オプションを可能にするために、開発者はモジュールの要素または機能に追加のクラス名を指定できます。 このようにして、カスタム テーマはそれらの要素または機能をターゲットにすることができます。

カスタム テーマ

カスタム テーマは、Dynamics 365 Commerce オンライン SDK を使用して作成できます。 その後、それらは /src/themes/ フォルダーに保存できます。 詳細については、テーマの作成を参照してください。

テーマ内での RTL および LTR のサポート

eコマース サイトで、右から左 (RTL) と左から右 (LTR) の両方の言語をサポートする必要がある場合があります。 テーマは、異なる RTL および LTR SCSS ファイルを指定する機能をサポートしています。

メモ

テーマ内の RTL および LTR のサポートは、Dynamics 365 Commerce リリース 10.0.15 で利用できます。

各テーマには yarn msdyn365 add-theme コマンドライン インターフェイス (CLI) コマンドを使用して作成された styles\THEME_NAME.theme.scss ファイルがあります。 たとえば、yarn msdyn365 add-theme spring を使用して「spring」という新しいテーマを作成すると、テーマの SCSS コードを含むファイル「\src\themes\spring\styles\spring.theme.scss」が作成されます。 SCSSファイルは、yarn start または yarn pack コマンドの使用時に CSS ファイルにコンパイルされ、サイト ページのレンダリングに使用されます。

SCSS ファイルの特定の RTL または LTR バージョンをサポートするには、RTL サポートの場合は THEME_NAME.rtl.theme.scss、LTR サポートの場合はTHEME_NAME.ltr.theme.scss というファイル命名規則を使用して、追加のファイルを指定できます。 ページがレンダリングされると、ブラウザの言語設定に従って適切な CSS ファイルが参照されます。 単単一言語のサポートのみが必要な場合は、デフォルトの THEME_NAME.theme.scss ファイルを使用してください。

RTL および LTR のベスト プラクティス

RTL および LTR レイアウトで使用される CSS コードは、いくつかのプロパティを除いて一般的に同じであるため、それらの異なるプロパティをそれぞれの「テーマ」ファイルで指定し、RTL および LTR SCSS ファイルの両方によって「基本スタイル」ファイルを作成して共有 (およびインポート) することができます・

  • THEME_NAME-rtl.theme.scss - RTL レイアウトの特定のプロパティが含まれています。
  • THEME_NAME-ltr.theme.scss - LTR レイアウトの特定のプロパティが含まれています。
  • base-style.scss - 共有スタイルが含まれており、2 つの THEME_NAME ファイルにインポートされます。

追加リソース

新しいテーマの作成

テーマ設定の構成

テーマ スタイル プリセットの構成

テーマを拡張してモジュール拡張機能を追加する

テーマのモジュール ライブラリ コンポーネントをオーバーライドする

基準テーマからテーマを拡張する

カスタマイズ コードへのカスタム リソースの追加する

CLI コマンド リファレンス