※ これから記載する事項は、私が所属する会社とは切関係のない事柄です。
今回の記事では B2B/B2B2C Commerce の開発を行う際に役に立ちそうな情報を列挙していきたいと思います。
商品の登録
商品の登録は管理画面のインポートからもできますが、今回は commerce-on-lightning を利用する方法を紹介します。
下記のコマンドではローカルの ~/Desktop/Alpine-small.csv
という商品登録用 CSV を sampleScratch
という組織の 1commerce
サイトにアップロードしています 。
sfdx commerce:products:import -n 1commerce -u sampleScratch -c ~/Desktop/Alpine-small.csv
商品登録用の CSV に関してはサンプルやヘルプも参考にしてください。また、S3 などでホスティングせずに Salesforce の CMS を利用する場合の画像のアップロード方法はこちらの記事が非常に参考になりました。(アップロード方法の公式ヘルプはこちらです)
※ CMS の画像と商品を紐づける方法は調べ中ですので、わかり次第追記します。
検索インデックス作成
商品を登録したらフロントサイトで検索できるようにインデックスを作成する必要があります。こちらも管理画面から可能なのですが、商品登録と同様に、commerce-on-lightning を利用する方法を紹介します。
下記コマンドでは、 sampleScratch
という組織の 1commerce
サイトの検索インデックスを作成しています。
sfdx commerce:store:search:start -n 1commerce -u sampleScratch
カスタムコンポーネント作成時の API
B2B/B2B2C コマース共に LWC(Lightning Web Component) を利用してフロントサイトの開発を行うことができますが、その際に LWC (=クライアントサイド)から API をコールする際はプリビルドされている Javascript API を利用する必要があります。その API の一覧がこちらです。
例えば、アプリケーションのコンテキスト情報をとってくるための API があります。これを呼ぶ際は下記のように Javascript API を利用する必要があります。
import { getAppContext } from 'commerce/contextApi';
async function foo(){
const appContext = await getAppContext();
const { taxType } = appContext;
}
LWC の開発方法に関しては以前書いた Qiita 記事内の「VS Codeでの開発方法」などを参考にしてくだい。
Apex/フローでのカスタム
チェックアウトの中で送料や税金の計算などに独自のロジックを入れたり、外部サービスを呼びたい場合があると思います。そういった場合、B2B/B2B2C Commerce ではApex を利用してカスタマイズすることができます。それぞれのインテグレーションアーキテクチャについてはヘルプを参照してください。
チェックアウトやカートの中で下記のポイントでカスタマイズを入れることが可能です。
配送
税金
支払い
B2B においては上記に加えて下記のポイントがあり、さらに、チェックアウトフローはフローで作成されているため、より柔軟な開発が可能になっています。
在庫
- カート内のアイテムの在庫を確認します
- サンプルコード
価格
- カート内の価格を計算してカートアイテムに書き込みます
- サンプルコード
フロントサイト利用時の Apex ログ
フロントサイトからのアクセス時の Apex のデバックをしたい時があるかと思います。その際の手順を紹介します。