Hi there!
So, is possible to automaticly apply a discount code received from URL parameter?
E.g.: /product?c=123456
Do you know a plugin or something similar?
Thanks!
if (!DataSettingsHelper.DatabaseIsInstalled())
return;
if (filterContext == null || filterContext.HttpContext == null || filterContext.HttpContext.Request == null)
return;
//don't apply filter to child methods
if (filterContext.IsChildAction)
return;
//only GET requests
if (!String.Equals(filterContext.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
return;
var discountService = EngineContext.Current.Resolve<IDiscountService>();
Uri uri = new Uri(pageUrl);
string discountcouponcode = HttpUtility.ParseQueryString(uri.Query).Get(SystemCustomerAttributeNames.DiscountCouponCode.ToLower());
if (!string.IsNullOrWhiteSpace(discountcouponcode))
{
var lastDiscountcouponcode = workContext.CurrentCustomer.GetAttribute<string>(SystemCustomerAttributeNames.DiscountCouponCode);
if (!String.IsNullOrWhiteSpace(discountcouponcode) && (String.IsNullOrWhiteSpace(lastDiscountcouponcode) || !lastDiscountcouponcode.ToLower().Equals(discountcouponcode.ToLower())))
{
var discount = discountService.GetDiscountByCouponCode(discountcouponcode);
bool isDiscountValid = discount != null &&
discount.RequiresCouponCode &&
discountService.IsDiscountValid(discount, workContext.CurrentCustomer, discountcouponcode);
if (isDiscountValid)
{
genericAttributeService.SaveAttribute(workContext.CurrentCustomer,
SystemCustomerAttributeNames.DiscountCouponCode, discountcouponcode);
}
}
}