日本語版
最新ニュース
企業

Optimizely Commerce 14 でのカスタム広告申込情報価格設定の実装

多くのエンタープライズ コマース実装では、ビジネス ユーザーは多くの場合、特に顧客サービス業務、B2B 交渉、または手動注文作成時に、カート レベルで製品価格を上書きできる柔軟性を必要とします。 最近、クライアントからの要望がありました。 スーパー管理者 (特別な CMS/コマース ロール) には、 各品目の価格をカートページから直接表示。 例えば:商品のデフォルト価格が 1000ドル、スーパー管理者はこれを次のように変更できるはずです。 900ドル、 850ドル、または任意のカスタム値 - この価格が価格表に定義されていない場合でも、。 このカスタム価格設定は、以下の場合にも引き続き正しく機能する必要があります。 プロモーション エンジン 税金の計算 再計算ワークフロー 注文合計 この要件をクリーンかつ安全に満たすには、オーバーライドする方法が必要でした。 掲載価格 Commerce の価格設定パイプラインと連携した方法で、品目レベルで設定します。 このブログで説明しています コマースネイティブの正しい方法 カスタムの品目価格設定を実装します。 カスタム価格プロセッサーを使用する カスタム価格設定を適切に実装するには、以下を介して Commerce の価格設定パイプラインに接続する必要があります。 IPlacedPriceProcessor 1 -…

Optimizely Commerce 14 でのカスタム広告申込情報価格設定の実装

1764356607
2025-11-28 15:08:00

多くのエンタープライズ コマース実装では、ビジネス ユーザーは多くの場合、特に顧客サービス業務、B2B 交渉、または手動注文作成時に、カート レベルで製品価格を上書きできる柔軟性を必要とします。

最近、クライアントからの要望がありました。 スーパー管理者 (特別な CMS/コマース ロール) には、 各品目の価格をカートページから直接表示

例えば:
商品のデフォルト価格が 1000ドル、スーパー管理者はこれを次のように変更できるはずです。 900ドル850ドル、または任意のカスタム値 – この価格が価格表に定義されていない場合でも、

このカスタム価格設定は、以下の場合にも引き続き正しく機能する必要があります。

  • プロモーション エンジン

  • 税金の計算

  • 再計算ワークフロー

  • 注文合計

この要件をクリーンかつ安全に満たすには、オーバーライドする方法が必要でした。 掲載価格 Commerce の価格設定パイプラインと連携した方法で、品目レベルで設定します。

このブログで説明しています コマースネイティブの正しい方法 カスタムの品目価格設定を実装します。

カスタム価格プロセッサーを使用する

カスタム価格設定を適切に実装するには、以下を介して Commerce の価格設定パイプラインに接続する必要があります。 IPlacedPriceProcessor

1 – ラインアイテムにカスタム価格を保存します

スーパー管理者がカート ページの価格を更新すると、次のようになります。

lineItem.Properties["SuperAdminCustomPrice"] = customPrice.ToString(); // SuperAdminCustomPrice is meta field
_cartRepository.SaveCart(cart);

このプロパティはカート/アイテムとともに保持されます。

2 – カスタム価格プロセッサーを実装する

[ServiceConfiguration(typeof(IPlacedPriceProcessor))]
public class SuperAdminPriceProcessor : DefaultPlacedPriceProcessor
{
    public override void ApplyPlacedPrice(
        IOrderGroup orderGroup,
        IOrderForm orderForm,
        ILineItem lineItem,
        IMarket market)
    {
        // Allow Commerce to set its default price
        base.ApplyPlacedPrice(orderGroup, orderForm, lineItem, market);

        // Check for Super Admin’s custom price
        if (!lineItem.Properties.ContainsKey("SuperAdminCustomPrice"))
        {
            return;
        }

        if (decimal.TryParse(
            lineItem.Properties["SuperAdminCustomPrice"].ToString(),
            out var customPrice))
        {
            // Save original Commerce price for audit/rollback
            lineItem.Properties["OriginalPlacedPrice"] = lineItem.PlacedPrice;

            // Apply custom override
            lineItem.PlacedPrice = customPrice;
        }
    }
}

3 – UI での見た目

カート ページの[価格の編集]オプションは、カスタム プロパティを更新するだけです。

if (User.IsInRole("SuperAdmin"))
{
    lineItem.Properties["SuperAdminCustomPrice"] = newPrice;
}

これはまさにクライアントが必要としていたものでした。
クリーンで本番環境でも安全な方法 スーパー管理者による品目の価格の上書き コマース機能を損なうことなく。

ありがとう、

スニル・クマール

2025 年 11 月 28 日

#Optimizely #Commerce #でのカスタム広告申込情報価格設定の実装

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。