Skip to content

Instantly share code, notes, and snippets.

View mauro-vieira's full-sized avatar

Mauro Vieira Gonçalves mauro-vieira

View GitHub Profile
// Promotions processors
this.For<ConditionAwareItemDiscountProcessor<BuyQuantityGetItemDiscount>>().Use<MyCustomDiscountProcessor>();
public class MyCustomDiscountProcessor : BuyQuantityGetItemDiscountProcessor
{
private readonly IAccountManager _accountManager;
public MyCustomDiscountProcessor(CollectionTargetEvaluator targetEvaluator,
FulfillmentEvaluator fulfillmentEvaluator, LocalizationService localizationService,
RedemptionDescriptionFactory redemptionDescriptionFactory, IAccountManager accountManager)
: base(targetEvaluator, fulfillmentEvaluator, localizationService, redemptionDescriptionFactory)
{
this._accountManager = accountManager;
[ContentType(
DisplayName = "My custom discount",
GUID = "EDC495FD-8A76-4106-B32E-6EAF9666E170",
AvailableInEditMode = false)]
[AvailableContentTypes(Include = new[] { typeof(PromotionData) })]
public class MyCustomDiscount : EPiServer.Commerce.Marketing.Promotions.BuyQuantityGetItemDiscount
{
/// <summary>
/// The account number for the customer who will apply the promotion
/// </summary>
using EPiServer.Tracking.Commerce;
using EPiServer.Tracking.Commerce.Data;
using EPiServer.Tracking.Core;
//...
namespace Project.CheckoutAndOrderManagement.Implementation.Areas.CheckoutAndOrder.Controllers.Pages
{
[Authorize]
public class CartPageController : PageController<CartPageType>
{
using EPiServer;
using EPiServer.Commerce.Catalog.Linking;
using EPiServer.Commerce.Order;
using EPiServer.Core;
using EPiServer.Globalization;
using EPiServer.ServiceLocation;
using EPiServer.Tracking.Commerce;
using EPiServer.Tracking.Commerce.Data;
using Mediachase.Commerce;
using Mediachase.Commerce.Catalog;
using EPiServer;
using EPiServer.Commerce.Order;
using EPiServer.Core;
using EPiServer.Globalization;
using EPiServer.Tracking.Commerce;
using EPiServer.Tracking.Commerce.Data;
using EPiServer.Tracking.Core;
using EPiServer.Web.Mvc;
using EPiServer.Web.Routing;
using Mediachase.BusinessFoundation.Data;
[CommerceTracking(TrackingType.Basket)]
public ActionResult Index(CartPageType currentPage, string cartName)
{
//This is my cart controller
}
using EPiServer.Commerce.Catalog.ContentTypes;
using EPiServer.Find.ClientConventions;
using EPiServer.Find.Commerce;
public class CustomCatalogContentClientConventions : CatalogContentClientConventions
{
protected override void ApplyPricingConventions(TypeConventionBuilder<IPricing> conventionBuilder)
{
conventionBuilder
.ExcludeField(x => x.PriceReference);
public class BaseVariantType : VariationContent, IBaseVariant
{
[JsonIgnore]
[IgnoreMetaDataPlusSynchronization]
[Display(GroupName = "Pricing", Name = "Prices", Order = 100)]
[UIHint("pricecollection")]
public virtual ContentReference PriceReference { get; set; }
[JsonIgnore]
[IgnoreMetaDataPlusSynchronization]
public interface IBaseVariant : ICommerce, IAssetContainer, IPricing, IStockPlacement
{
...
}