Hello,
Regrettably, this can't be achieved right out of the box. you will have to customize the control displaying the options a bit. You need to modify the following method:
LoadProductOptions()in the file \CMSModules\Ecommerce\Controls\ProductOptions\ShoppingCartItemSelector.ascx.cs. There are the product options loaded and displayed on the live site. you would have to check if the current user is a global administrator and skip the processing of some field, if he is not. A second approach is to change the OptionCategoryInfoProvider.GetSKUOptionCategories method by overriding it with a custom e-commerce handler. More information on this topic can be found under the links below:
Code customizations in 6.0Code customizations in the e-commerce moduleAPI changes from 5.5R2 to 6.0E-commerce custom providersAPI referenceHere is a sample of an provider object override:
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);
}
}
}
You could also add a custom field to the product option table to indicate, if the field should be displayed on the live site or not. If you'd like more details on this, please reply to this post.
Best regards,
Boris Pocatko