1748510228
2025-05-27 22:16:00
Optimizelyを始めることは、時々混乱する可能性があります。 CMS 12とCommerce 14のプロジェクトを個別に作成するための明確な段階的なガイドを見つけるのは難しいことに気付きました。したがって、ここでは、スムーズに実装するのに役立つ詳細なウォークスルーを紹介します。
Visual Studio 2022、SQL Server Management Studio、PowerShellターミナルの準備ができて、始めましょう!
1.最初にすべての最適化に必要なツールをインストールします
まず第一に、いつものように、説明されているように必要なすべてのツールをインストールする必要があります ここ そして ここ 、あなたがすべて設定されている場合、このステップを無視してください
- テンプレートをインストール=>
dotnet new -i EPiServer.Templates - cli =>をインストールします
dotnet tool install EPiServer.Net.Cli --global --add-source https://nuget.optimizely.com/feed/packages.svc - nugetソース “https://api.nuget.optimizely.com/v3/index.json” Visual Studio> Tools> Options> Nuget Package Manager>パッケージソースを追加します。注:何らかの理由で、Optimizelyのドキュメントは、このステップが(少なくとも執筆時点で)必要であると明確に述べていません。ただし、スキップすると、Nugetパッケージを正しく管理できなくなります。それに言及する唯一の場所は、古いソース「https://nuget.episerver.com/feed/packages.svc/」をまだ参照しています。
2。ソリューションとプロジェクトを作成します
プロジェクト全体を作成するフォルダーに移動します。そこから、ソリューション、商取引のプロジェクト、およびCMS用の別のコマンドを作成するために必要なコマンドを実行します。
- ソリューション=>を作成します
dotnet new sln -n MyEcommerce -o MyEcommerce - 作成されたフォルダー=>に移動します
cd MyEcommerce - CMSプロジェクトを作成=>
dotnet new epi-cms-empty -n MyEcommerce.Web -o MyEcommerce.Web - Commerce Project =>を作成します
dotnet new razorclasslib -n MyEcommerce.Commerce -o MyEcommerce.Commerce、空のコマースプロジェクトのテンプレートがありますが、CMSプロジェクトの後にコマースプロジェクトをインストールする必要がある場合があるため、このように見せたいと思います。 - CMSプロジェクトをソリューション=>に追加します
dotnet sln add .MyEcommerce.Web - コマースプロジェクトをソリューション=>に追加します
dotnet sln add .MyEcommerce.Commerce
-n プロジェクト名
-o 出力ディレクトリ
これで、Visual Studio 2022でソリューションを開き、myeCommerce.webを右クリックしてスタートアッププロジェクトとして設定できます

次に、ソリューションを右クリックして「ソリューション用のNugetパッケージを管理」を選択し、右上隅にパッケージソースが「すべて」であることを確認します

両方のプロジェクト「myecommerce.commerce」の両方が「myecommerce.web」と同じ.netバージョンを持っていることを確認してください。たとえば、画像ベローでは、ターゲットフレームワークをnet9.0からnet8.0に変更し、microsoft.aspnetcore.components.webパッケージを9.0.3から8.0.16から更新する必要があります。

myecommerce.web.csproj /依存関係を右クリックしてから、「プロジェクトリファレンスを追加」を選択し、「myecommerce.commerce」を選択してリファレンスとして追加します
3。最適化するコマースを使用するようにプロジェクトを構成します
まず、nugetマネージャーを使用して「myecommerce.web」に「epirerver.cms」がインストールされているかどうかを確認してください。最新バージョンではない場合は更新します。次に、NUGETパッケージマネージャーで「Episerver.commerce」を検索し、両方のプロジェクトに最新バージョンをインストールします

「myecommerce.web」プロジェクトに移動してstartup.csを開きます。「.addcms()」を「addcommerce()」に呼び出します。

mappedroleにCommerce仮想ロールを含めるようにappsettings.development.jsonを更新します。
"MappedRoles": {
"Items": {
"CmsEditors": {
"MappedRoles": [ "WebEditors", "WebAdmins" ]
},
"CmsAdmins": {
"MappedRoles": [ "WebAdmins" ]
},
"Administrators": {
"MappedRoles": [ "WebAdmins", "Admins" ]
},
"CommerceAdmins": {
"MappedRoles": [ "WebAdmins" ]
},
"CatalogManagers": {
"MappedRoles": [ "WebAdmins" ]
},
"CustomerServiceRepresentatives": {
"MappedRoles": [ "WebAdmins" ]
},
"MarketingManagers": {
"MappedRoles": [ "WebAdmins" ]
},
"OrderManagers": {
"MappedRoles": [ "WebAdmins" ]
},
"ReportManagers": {
"MappedRoles": [ "WebAdmins" ]
}
}
}
4.データベースを構成します
CLIまたはグラフィカルインターフェイスを使用してプロジェクトをOptimizelyに作成すると、MyeCommerce.Web/App_Dataフォルダーでデータベースが.mdfファイルとして作成されますが、開発用プロジェクトを作成するときに適切に機能しないため、SQL Serverを使用するように切り替えます。
myecommerce.web/app_dataフォルダーに移動し、そこに作成されたファイルを削除してから、appsettings.development.jsonを開き、ConnectionStringsセクションを削除します
PowerShellを開き、MyeCommerce.Webプロジェクトに移動します cd .MyEcommerce.Web CLIを使用してCMSデータベースを作成する次のように、最初にSQL Server Management Studioからサーバー名をコピーして次のコマンドに置き換えると、AppSettings.jsonにデータベースと接続文字列が作成されます。
dotnet-episerver create-cms-database MyEcommerce.Web.csproj -S
-s サーバー名
-e 統合セキュリティとして接続文字列を作成します
-dn データベース名
これでプロジェクトを実行でき、管理者ユーザーの作成を依頼します。何らかの理由で作成するように要求しない場合は、このコマンドを使用して、ユーザー名、電子メール、パスワードを交換する管理者ユーザーを作成します
dotnet-episerver add-admin-user MyEcommerce.Web.csproj -u MyUSer -e [email protected] -p MyUser123* -c EPiServerDB
-u ユーザー
-e メール
-P パスワード
-C 接続文字列
プロジェクトを実行してバックオフィスでログインできることをテストします https:// localhost:5000/episerver/cms またはWhaterverはあなたのLocalHostです
次に、Commerceデータベースを作成しましょう
dotnet-episerver create-commerce-database MyEcommerce.Web.csproj -S
5. CMSコンテンツタイプを追加します
ここでは、基本ページとブロックコンテンツタイプのみを追加します。ここにはいくつかのコンテンツタイプが欠落していることに注意してください。MyeCommerce.Web>モデルでクラスにそれぞれを追加します。
[ContentType(
DisplayName = "Block Base",
GUID = "{E81F6E18-B49D-472D-9504-6FBE4DF8C631}"
)]
public class BlockBase: BlockData
{
}
[ContentType(
DisplayName = "Page Base",
GUID = "{8C654336-F62A-46A4-9E62-F7456DD4D32E}"
)]
public class PageBase: PageData
{
[Display(
Name = "Heading",
Description = "The main heading of the page."
)]
public virtual string Heading { get; set; }
}
6.基本的なコマースコンテンツタイプを追加します
これらのクラスをmyecommerce.commerce>モデルに追加します。それぞれが独自のクラスファイルに、クラスごとに1つのプロパティのみを含めたことに注意してください。特定の要件に従ってカスタマイズする必要があります。
CatalogContentType(
DisplayName = "Bundle Base",
GUID = "{CCF26036-A7EF-40F2-8E69-AFB57BE00902}"
)]
public class BundleBase: BundleContent
{
[Display(
Name = "Bundle description"
)]
[UIHint(UIHint.Textarea)]
public virtual string Description { get; set; }
}
[CatalogContentType(
DisplayName = "Catalog Base",
GUID = "{31B74E5C-7B0C-4538-A311-B30325AF27B2}"
)]
public class CatalogBase: CatalogContent
{
[Display(
Name = "Catalog Description"
)]
[UIHint(UIHint.Textarea)]
public virtual string Description { get; set; }
}
[CatalogContentType(
DisplayName = "Category Base",
GUID = "{C310EC9C-F987-48ED-931F-285229743089}"
)]
public class CategoryBase: NodeContent
{
[Display(
Name = "Category description"
)]
[UIHint(UIHint.Textarea)]
public virtual string Description { get; set; }
}
[CatalogContentType(
DisplayName = "Package Base",
GUID = "{8CFE8AAC-F359-4B8C-8D9E-98BCA64F166D}"
)]
public class PackageBase: PackageContent
{
[Display(
Name = "Package description"
)]
[UIHint(UIHint.Textarea)]
public virtual string Description { get; set; }
}
[CatalogContentType(
DisplayName = "Product Base",
GUID = "{085AFC91-E49A-42E8-A146-4E8F7FBBD43A}"
)]
public class ProductBase: ProductContent
{
[Display(
Name = "Product description"
)]
[UIHint(UIHint.Textarea)]
public virtual string Description { get; set; }
}
[CatalogContentType(
DisplayName = "Variant Base",
GUID = "{BEB277AE-D586-4CC1-ACCF-0A47855FCFC6}"
)]
public class VariantBase: VariationContent
{
[Display(
Name = "Variant description"
)]
[UIHint(UIHint.Textarea)]
public virtual string Description { get; set; }
}
7。移行を行います
今すぐコマース編集モードに移動した場合 https:// localhost:5000/episerver/commerce/catalog このエラーが表示される場合があります。
「URL/URIでコンテンツのロードに失敗しました:epi.cms.contentdata:///-1073741823__catalogcontent」
これは、カタログルートを作成する移行ステップがまだ欠落しているために起こります

プロジェクトを開始したとき、あなたはのようなURLにリダイレクトされた可能性があります https:// localhost:5000/sipererver/commerce/episerver/commerce/migrate?automigrate = true、
ただし、何らかの理由で、Optimizelyは間違ったURLにリダイレクトされているため、詳細を確認すると、Episerver/Commerceが2回であることがわかります。 https:// localhost:5000/episerver/commerce/migrate?automigrate = true 、次に、この移行ページを表示する必要があります。

移行が完了した場合、このステップは終了します
8。コマースコンテンツを作成します
そしてボイラ!セットアップが完了しました。今すぐ編集モードに移動できます https:// localhost:5000/episerver/commerce/catalog 各カタログを作成するには、各カタログ内でバリアント、バンドル、パッケージ、カテゴリを備えた製品を作成できます
これで、CMS「MyeCommerce.Web」を処理するプロジェクトがあり、同じソリューションでコマース「MyeCommerce.commerce」を処理するもう1つのプロジェクトがあります。

2025年5月27日
#CMS #12とCommerce #14を始めましょう初心者のガイドt