カスタムフルフィルメントオプションを作成する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore XCフルフィルメント プラグインは、デフォルトのフルフィルメント オプション (Commerceコントロール パネルに表示される) をサポートしています。これらの各フルフィルメント オプションは、次の表にまとめられているように、Commerce Connectで定義された既定のShippingOptionType値にマップされます。

フルフィルメントオプション

配送オプションタイプ

配信先住所

ShipToAddress(出荷先住所)

Deliver Items Individually - 荷物の分割

LineShippingオプション

デジタル配信

エレクトロニックデリバリー

メモ

「店舗から受け取る」フルフィルメントオプションタイプは現在サポートされていません。

一部のSitecore XC実装では、カスタム フルフィルメント オプションが必要な場合があります。このトピックでは、Commerce Engineを拡張して特定のフルフィルメント ビジネス要件を満たすカスタム フルフィルメント プラグインを作成する方法に関するガイダンスを提供します。

Commerce Engineを拡張してカスタムフルフィルメントオプションを含め、それをCommerceコントロールパネル に追加してストアフロントで利用できるようにする必要があります。

Commerce Engineを拡張してカスタムフルフィルメントオプションを使用する

カスタムフルフィルメントオプションをCommerceコントロールパネルに追加し、データをCommerce Engineデータベースと同期したら、Commerce Engineフルフィルメントプラグインを拡張して、新しいカスタムフルフィルメントオプションを処理できるようにする必要があります。

Commerce Engineフルフィルメント プラグインを拡張するには:

  1. カスタムフルフィルメントオプション( MyCustomFulfillmentComponent.csなど)の新しいクラスを作成し、適切なプロパティ(StoreID、StoreAddressなど)があることを確認します。

    また、JsonConverter属性を含め、作成するJsonConverterを指定する必要があります (次の手順で)。

    [JsonConverter(typeof(MyCustomFulfillmentComponentConverter))] 
        public class MyCustomFulfillmentComponent : FulfillmentComponent 
        { 
       
    }
  2. 新しいカスタム フルフィルメント コンポーネントのJSONコンバーターを作成します (Sitecore XC FulfillmentCOmponentConverter.csファイルをガイドとして使用できます)。

    public class MyCustomFulfillmentComponentConverter : JsonConverter 
    { 
          
         public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) 
         { 
              if (reader.TokenType == JsonToken.Null) 
              { 
                   return null; 
              } 
     
              var jObject = JObject.Load(reader); 
              var type = (string)jObject.Property("@odata.type"); 
              type = Regex.Replace(type, "[#]", string.Empty); 
              FulfillmentComponent target = null; 
              if (type.Equals("MyNamespace.MyCustomFulfillmentComponent", StringComparison.OrdinalIgnoreCase)) 
              { 
                   target = new PhysicalFulfillmentComponent(); 
              } 
    
              var jObjectReader = jObject.CreateReader(); 
              jObjectReader.Culture = reader.Culture; 
              jObjectReader.DateParseHandling = reader.DateParseHandling; 
              jObjectReader.DateTimeZoneHandling = reader.DateTimeZoneHandling; 
              jObjectReader.FloatParseHandling = reader.FloatParseHandling; 
              serializer.Populate(jObjectReader, target); 
    
              return target; 
           } 
            
    } 
  3. フルフィルメントを処理するパイプライン (たとえば、フルフィルメントをカートやカート品目に追加する) にパイプライン ブロックを追加して、パイプラインが新しいカスタム フルフィルメント オプションを処理できるようにします。

カスタムフルフィルメントオプションのためのCE Connectの拡張

また、Commerce Engine Connectを拡張して、新しいカスタム フルフィルメント オプションを処理する必要もあります。

CE Connectを拡張して新しいカスタムフルフィルメントオプションを処理するには:

  1. AddShippingInfoToCartパイプラインプロセッサを拡張して、新しいカスタムフルフィルメントオプションを含めます。

  2. TranslateCartToEntityパイプラインプロセッサを拡張して、新しいカスタムフルフィルメントオプションを含めます。

  3. GetShippingOptionsパイプラインプロセッサを拡張して、新しいカスタムフルフィルメントオプションを含めます。

  4. 拡張します GetShippingMethods pipeline processor to include the new custom fulfillment option.

手記

ストアフロントサイトのユーザーインターフェースコードを変更して、新しいフルフィルメントオプションを反映させる必要があります。

カスタムフルフィルメントオプションをコマースコントロールパネルに追加する

Commerceコントロール パネルは、Commerce Engine、ビジネス ツール、ストアフロントのCommerce設定を構成するためのSitecore XPツール スイートの中心的な場所です。

次の手順に従って、カスタムフルフィルメントオプションをコマースコントロールパネルに追加します。

  1. Sitecoreスタート画面から、コンテンツ エディターを開きます。

  2. 左側のペインのsitecore/Commerce/Commerce Control Panel/Shared Settings/Fulfillment Option Typesフォルダに移動し、メインペインの フルフィルメントオプションタイプ をクリックします。

    Fulfillment option types in the Commerce Control Panel.
  3. ダイアログウィンドウで、新しいフルフィルメントオプションタイプの名前(My Custom Fulfillmentなど)を入力し、OK]をクリックします。

  4. フルフィルメント オプション タイプウィンドウで、フルフィルメント オプション タイプの名前とID (5など) を指定し、変更を保存します。

  5. sitecore/Commerce/Commerce Control Panel/Shared Settings/Fulfillment Optionsフォルダに移動し、メインペインの[フルフィルメントオプションをクリックします。

    Fulfillment option in the Commerce Control Panel.
  6. [フルフィルメント オプションウィンドウで、前に作成したフルフィルメント オプションの種類を選択し、必要に応じて説明を追加して、変更を保存します。

  7. sitecore/Commerce/Commerce Control Panel/Storefront Settings/Commerce Engine Default Storefront/Fulfillment Configurationフォルダに移動します。

  8. カスタムフルフィルメントオプションを選択し、> アイコンをクリックして 選択済み ペインに移動し、変更を保存します。

  9. 「コンテンツ アイテムの同期」トピックで説明されているように、SitecoreデータベースとCommerce Engineデータベース間でコンテンツ アイテムを同期して、変更をCommerce Engineにプッシュします。Sync content path APIサンプルを使用して、コンテンツ ツリー全体を同期します。

この記事を改善するための提案がある場合は、 お知らせください!