LoginSignup
14
12

More than 3 years have passed since last update.

【Salesforce Commerce Cloud】 デベロッパーのトレーニングを受けてきました。

Last updated at Posted at 2019-04-12

挨拶

こんにちは、イエノカドです。
今回、Salesforce が提供しているCommerce Cloud Digital Developerのトレーニングを受講してきました。
あまり情報も載っていないので、備忘録として記述していきます。
結果的に4日間のトレーニングを受講した1週間後には、Commerce Cloud Digital Developerの資格を取得できました。

Salesforce Commerce Cloudとは

  • セールスフォース・ドットコムが2016年6月に買収したデマンドウェアの製品を基盤とした製品
  • クラウドECプラットフォーム
  • グローバル企業が導入している(アディダス, クロックス, アシックス

Commerce Cloudの開発環境を得るためには

  • Commerce Cloud Digital Developer のトレーニングを受講する(受講終了後、2週間後に開発環境が利用できなくなります)
  • Commerce Cloudのサービスのライセンス契約をする(契約料についてはレベニューシェアですが、契約できる企業はある一定基準の売上を満たしている企業と思われる)
  • Salesforce Commerce Cloudのパートナー企業となる(資格保有者が4人いる企業がなれるそうです)

開発環境

  • eclipse(Neon)
  • Windows 10 Pro

トレーニングの4日間の中で何を教えてもらえるか

  • Commerce Cloudのカスタマイズ方法(プログラミング)
    • Javascriptコントローラ
    • ISMLテンプレート

基本的に上記内容の通り、Commerce Cloudはサーバー言語がJavascriptで
テンプレートエンジンがISML(HTMLのようなもの)というものです。

トレーニングの中ではJavascriptでサーバー上の処理を書きますが、
JQueryみたいな書き方は基本なく、生書きするようなイメージです。

  • Javascriptコントローラ
JShowProduct.js
'use strict';

// テンプレートエンジンの呼び出し
var ISML = require('dw/template/ISML');
// 関数を新しい名前で設定できる
var guard = require('storefront_controllers/cartridge/scripts/guard');
// 商品マネージャー
var ProductMgr = require('dw/catalog/ProductMgr');

function start() {
    var parameterMap = request.httpParameterMap;
    // Getパラメータ「pid」から値を取得
    var parameterId = parameterMap.pid.stringValue
    // pidから商品データを取得 
    var product = ProductMgr.getProduct(parameterId);
    if (product == null) {
       // 商品情報がnullの場合、テンプレートにメッセージを渡す
       ISML.renderTemplate('productnotfound.isml', {message: 'product with id ' + parameterId +' not found'});  
    } else {
       // 商品データを取得できた場合、商品データをテンプレート変数に設定
       ISML.renderTemplate('productfound.isml', {myProduct: product});
    }
}

// URLの設定
exports.Start = guard.ensure(['get'], start);
  • Javascriptコントローラが実行されるURL
http://xxxx.demandware.net/on/demandware.store/Sites-xxx-Site/default/JShowProduct-Start
  • ISMLテンプレート(「pid」がnullの場合)
productnotfound.isml
<h1> ${pdict.message}  </h1>
  • 表示結果
    image.png

  • ISMLテンプレート(「pid」がある場合)

productfound.isml
<iscomment>Using a custom tag</iscomment>
<isdecorate template="product/pt_productdetails">
    <iscomment> Using the producttile custom tag </iscomment>
    <isinclude template="util/modules.isml" >   
    <isproducttile product="${pdict.myProduct}" showswatches="${true}" showpricing="${true}" showquickview="${false}">
</isdecorate>

<h1> ${pdict.myProduct.name} </h1>
  • 表示結果 image.png

まとめ

  • 基本的にはJavascriptHTML, CSSの理解があればコードは書けそう。
  • ただし、Commerce Cloudならではのお作法(ISML等)があるため、そこは色々試して知っていかなければならない。
  • Commerce Cloudライセンスを契約することはかなり大手(グローバル)企業でないと無理そう。
  • トレーニング費用が個人ではなかなかお高い額のため、「ちょっとやってみたい」ができない。
  • 2019/6/18現在はコードの書き方が少し変わっており、サーバーサイドはNode.jsを基盤として書かれています。

Commerce Cloud カスタマイズのための情報等がまだまだ日本語では少ないため、今後も調べていき、発信したいと思います。

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12