Can you post the full stacktrace - I took a quick look at the code and it seems that the non-price variations were handed ...
at EPiServer.Commerce.Marketing.Internal.PromotionEngineContentLoader.CreateInMemoryOrderGroup(ContentReference entryLink, IMarket market, Currency marketCurrency)
at EPiServer.Commerce.Marketing.PromotionEngine.Evaluate(IEnumerable`1 entryLinks, IMarket market, Currency currency, RequestFulfillmentStatus requestFulfillmentStatus)
at EPiServer.Commerce.Marketing.IPromotionEngineExtensions.GetDiscountPrices(IPromotionEngine promotionEngine, IEnumerable`1 entryLinks, IMarket market, Currency marketCurrency, ReferenceConverter referenceConverter, ILineItemCalculator lineItemCalculator)
at Vertica.Pompdelux.Business.Features.Shared.Services.PricingService.GetDiscountPrice(Variation variation, IMarket market) in C:\Projects\POMPdeLUX\Development\src\Business\Features\Shared\Services\PricingService.cs:line 88
at Vertica.Pompdelux.Business.Features.Integration.RequestHandlers.IndexElasticProductsRequestHandler.MapToElasticProducts(CultureInfo currentCatalogCulture, Variation[] variations, Dictionary`2 categoryTree, Product product) in C:\Projects\POMPdeLUX\Development\src\Business\Features\Integration\RequestHandlers\IndexElasticProductsRequestHandler.cs:line 131
at Vertica.Pompdelux.Business.Features.Integration.RequestHandlers.IndexElasticProductsRequestHandler.Handle(IndexElasticProductsRequest request) in C:\Projects\POMPdeLUX\Development\src\Business\Features\Integration\RequestHandlers\IndexElasticProductsRequestHandler.cs:line 106
at Vertica.Pompdelux.Business.Infrastructure.RequestHandler.Mediator.RequestHandler`2.Handle(IRequest`1 request) in C:\Projects\POMPdeLUX\Development\src\Business\Infrastructure\RequestHandler\Mediator.cs:line 59
at Vertica.Pompdelux.Business.Infrastructure.RequestHandler.Mediator.Send[TResponse](IRequest`1 request) in C:\Projects\POMPdeLUX\Development\src\Business\Infrastructure\RequestHandler\Mediator.cs:line 20
at Vertica.Pompdelux.Business.Infrastructure.Api.BaseApiController.Send[TResponse](IRequest`1 request) in C:\Projects\POMPdeLUX\Development\src\Business\Infrastructure\Api\BaseApiController.cs:line 13
at Vertica.Pompdelux.Business.Features.Integration.Controllers.IntegrationApiController.IndexElasticProducts() in C:\Projects\POMPdeLUX\Development\src\Business\Features\Integration\Controllers\IntegrationApiController.cs:line 25
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
You just found a bug! I will log a bug for this and we will include the fix in upcoming releases.
Thank you to bringing this into out attention.
Regards,
/Q
No problem! :)
Can you update here when the fix is included in an upcoming release?
/Swensson
The bug is now fixed and will be available in upcoming releases - probably 10.4.x :)
The 10.3 was released just three days ago. Is the bug corrected in that version?
/Kristoffer
Hi
I have encountered an issue where the promotionEngine.GetDiscountPrices(...) throw a NullReferenceException if a variation has no pricing on it.
following the blogpost: http://world.episerver.com/blogs/Shannon-Gray/Dates/2016/10/calculating-discounted-pricing-with-episervers-new-promotion-engine/
we implemented a GetDiscountPrice method for getting the lowest discount price for a Variation in the given market.
Is this the intended behavior of the promotionEngine?
/Swensson