public OrderItem ToOrderItem(string currency, IProduct product, ProductSelectionBase selection) { var item = mapper.Map <OrderItem>(product); var baseprice = product.BasePrice?.GetInCurrency(configuration, currency?.ToString()) ?? 0; var opt = selection?.Option; if (opt != null) { var option = product.Options.ElementAtOrDefault(opt.index); var extra = option?.BasePrice?.GetInCurrency(configuration, currency?.ToString()) ?? 0; item.Option = new OrderItemOption { Value = opt.value, SKU = option?.SKU, Title = option?.Title, OptionId = option?.Id, ExtraPrice = extra }; } item.Price = item.Price ?? new Amount(); item.Price.Base = baseprice; item.Price.TaxRateExcluded = product.TaxRateExcluded ?? 0; item.Price.TaxRateIncluded = product.TaxRateIncluded ?? 0; item.Quantity = selection.Quantity; item.ProductId = product.Id; return(item); }
public OrderItem ToOrderItem(IOrder order, IProduct product, ProductSelectionBase selection) { return(ToOrderItem(order.Currency, product, selection)); }