Kenticoの公式フォーラムで私の答えを見つけてください。
[フォーラムリンク][1]
私たちのフォーラムはstackoverflowよりも頻繁に監視されているので、そこで議論を続けることをお勧めします;)
よろしく、ボリス、ケンティコ
アップデート:
リンクを無効にする必要がある場合の完全な答えは次のとおりです。
残念ながら、これは箱から出してすぐに達成することはできません。オプションを表示するコントロールを少しカスタマイズする必要があります。次の方法を変更する必要があります。
LoadProductOptions()
ファイル\CMSModules\ Ecommerce \ Controls \ ProductOptions\ShoppingCartItemSelector.ascx.csにあります。ライブサイトにロードおよび表示される製品オプションがあります。現在のユーザーがグローバル管理者であるかどうかを確認し、そうでない場合は、一部のフィールドの処理をスキップする必要があります。2番目のアプローチは、カスタムeコマースハンドラーでオーバーライドすることにより、OptionCategoryInfoProvider.GetSKUOptionCategoriesメソッドを変更することです。このトピックの詳細については、以下のリンクを参照してください。
投稿に2つ以上のリンクを投稿することはできないため、関連するリンクはフォーラムの投稿にあります。
プロバイダーオブジェクトのオーバーライドのサンプルを次に示します。
using System;
using System.Collections.Generic;
using System.Web;
using CMS.WorkflowEngine;
using CMS.SettingsProvider;
using CMS.Ecommerce;
using CMS.EcommerceProvider;
/// <summary>
/// Summary description for Class1
/// </summary>
[MyHandlers]
public partial class CMSModuleLoader {
private class MyHandlers: CMSLoaderAttribute {
public override void Init() {
OrderInfoProvider.ProviderObject = new MyEcommerceCustomHandler();
WorkflowEvents.Approve.After += WorkflowEvents_Publish_Handler;
}
private static void WorkflowEvents_Publish_Handler(object sender, EventArgs e) {
//insert custom code here
}
}
public class MyEcommerceCustomHandler: OrderInfoProvider {
protected override string GetInvoiceInternal(int orderId) {
return base.GetInvoiceInternal(orderId);
}
}
}
製品オプションテーブルにカスタムフィールドを追加して、フィールドをライブサイトに表示するかどうかを示すこともできます。