我正在使用 noCommerce 1.9 并将代码的“HasOneOfTheseProductVarientsInTheCart”部分修改为:
case DiscountRequirementEnum.HasOneOfTheseProductVariantsInTheCart:
{
if (customer != null)
{
CustomerSession customerSession = IoC.Resolve<ICustomerService>().GetCustomerSessionByCustomerId(customer.CustomerId);
if (customerSession != null)
{
var restrictedProductVariants = IoC.Resolve<IProductService>().GetProductVariantsRestrictedByDiscountId(discount.DiscountId);
var cart = IoC.Resolve<IShoppingCartService>().GetShoppingCartByCustomerSessionGuid(ShoppingCartTypeEnum.ShoppingCart, customerSession.CustomerSessionGuid);
bool found = false;
int totalfound = 0;
foreach (ProductVariant restrictedPv in restrictedProductVariants)
{
foreach (ShoppingCartItem sci in cart)
{
if (restrictedPv.ProductVariantId == sci.ProductVariantId)
{
// found = true;
totalfound++;
if (sci.Quantity > 1)
{
totalfound++;
}
break;
}
}
/*if (found)
{
break;
}*/
}
if (totalfound>1)
return true;
}
}
}
break;
它运作良好,因为我在系统中定义了产品变体 id,并且它只应用折扣。
我希望能够以 20 英镑的价格购买 2 件商品和以全价购买 1 件单件商品(11.99 英镑)。
所以基本上每个奇数都是全价。
我的问题是我当前的代码也改变了主页上的价格..所以折扣似乎适用于其他地方..
有任何想法吗?