※ これから記載する事項は、私が所属する会社とは切関係のない事柄です。
今回の記事では commerce-on-lightning という SFDX コマンドのプラグインを利用してストアの設定や決済の設定、商品のアップロードを行い、スクラッチ環境で D2C Commerce の開発ができるようにしていきたいと思います。
前提
- SFDX コマンドはインストール済み
- お持ちの組織の DevHub 組織を有功化しておいてください
- 今回は DevHub 組織としてDeveloper Edition を利用しました。
手順
1. コードの修正とインストール
通常は sfdx plugins:install @salesforce/commerce
コマンドでインストールすれば可能なのですが、現在進行形で開発が進んでいるということでまだバグがありました。(2022/12時点)
そのため下記の手順でローカルで修正して使うことをおすすめします。
追記:
(v244.0.7 では正しく動いていることを確認できました。)
-
まずは下記コードでレポジトリをクローンします。
git clone git@github.com:forcedotcom/commerce-on-lightning.git
-
ルートフォルダで下記コードを実行してプラグインをインストールします。
sfdx plugins:link .
その他レポジトリに対するコントリビュートに関してはこちら。
自分の DevHub 組織が英語じゃない場合は下記の内容も追加
-
config/b2b-project-scratch-def.json
とconfig/b2c-project-scratch-def.json
に下記コードを追加。(サンプル)"country": "us", "language": "en_US",
2. 依存プラグインのインストール
上記のプラグイン内で利用されているプラグインです。
sfdx plugins:install shane-sfdx-plugins
3. スクラッチ組織の作成
今回は DevHub
というエイリアスを持つ DevHub 組織を利用して、sampleScratch
というエイリアスを持つスクラッチ組織を作成します。
下記コマンドでスクラッチ組織の作成します。
D2C の環境を作成するので、タイプとして b2c
を設定しています。またユーザのアカウント名は任意ですが、DevHub 組織内でユニークにする必要があるので、MacOS の組み込み変数の $RANDOM
を利用して $RANDOM@1commerce.com
のフォーマットで指定しました。
sfdx commerce:scratchorg:create -t b2c -a sampleScratch -u "$RANDOM@1commerce.com" -v DevHub
Tips: 作成時に便利なコマンドを紹介しておきます。
## 作成した組織を一覧表示する
sfdx force:org:list
## 作成した組織をブラウザで開く
sfdx force:org:open -u sampleScratch
## 作成した組織を削除する
sfdx force:org:delete -u sampleScratch
## (SFDXプロジェクト内で)作成した組織をコマンドのデフォルトとして設定する
sfdx config:set defaultusername=sampleScratch
4. ストアの作成・設定
ここが今回の一番重要な部分です。
下記コマンドで、作成したスクラッチ環境にストアを作成し、諸々の設定を行います。
ここでは 1commerce
という名前のサイトを作成しています。また今回は D2C のサイトの作成なのでタイプとしては b2c
を指定し、さらに samplebuyer$RANDOM@1commerce.com
というアカウント名のバイヤー(フロントサイトから買い物するアカウント)を作成します。
sfdx commerce:store:create -n 1commerce -o b2c -u sampleScratch -v DevHub -b "samplebuyer$RANDOM@1commerce.com"
コマンドが完了すると、ターミナル上に下記のような文字列が表示されていれば完了です。これらの情報はフロントサイトにログインする際に利用できます。
5. 作成したストアの確認
4. ストアの作成・設定
で表示された communityUrl
にアクセスし、ログイン画面を表示します。
さらにここで username
と password
の値でログインできることが確認できます。(もし入れなかったら「Forgot your passowrd?」からパスワードを登録し直してみてください。)
追加の設定
サードパーティ決済の設定
下記コマンドで Stripe のサンプルコードをスクラッチ環境に設定することが可能です。Stripe 以外の選択肢はこちらのフォルダ名になります。
sfdx commerce:payments:quickstart:setup -p Stripe -n 1commerce -u sampleScratch
ログインしていなくてもサイトを表示できるようにする
デフォルトではログインしてないとフロントサイトは表示できませんが、ログインなしてフロントを表示できるようにするためには下記の手順で設定を行います。
-
作成したストア(1commerce)の設定画面に遷移して「Experience Builder」をクリックします。
-
エクスペリエンスビルダーの設定から「Guest users can see and interact with the site without logging in」にチェックを入れます。
-
最後に右上の「Publish」ボタンをクリックして設定を反映させます。
-
ログインしていない状態でもフロントサイトが表示されるが確認できます。
もし上記の設定でできなかった場合は、ヘルプを見て設定が入っているか再確認いてください。
自分の環境にソースコードを修正できるようにする(VS Code)
ここではスクラッチ組織にデプロイされているソースをローカルにダウンロードする方法を紹介します。