public UpdatedSaleSummary UpdateShipRateQuote(string customerToken, string methodKey) { var tokenKey = customerToken.DecryptWithMachineKey(); var customerKey = new Guid(tokenKey); var customerBase = _merchelloContext.Services.CustomerService.GetAnyByKey(customerKey); var preparation = customerBase.Basket().SalePreparation(); preparation.RaiseCustomerEvents = false; var shipment = customerBase.Basket().PackageBasket(preparation.GetShipToAddress()).FirstOrDefault(); var quote = shipment.ShipmentRateQuoteByShipMethod(methodKey); if (quote != null) { preparation.ClearShipmentRateQuotes(); preparation.SaveShipmentRateQuote(quote); } var invoice = preparation.PrepareInvoice(); var summary = new UpdatedSaleSummary() { TotalLabel = "Total", InvoiceTotal = ModelExtensions.FormatPrice(invoice.Total, _currency.Symbol), TaxTotal = ModelExtensions.FormatPrice(invoice.TaxLineItems().Sum(x => x.TotalPrice), _currency.Symbol), DiscountsTotal = ModelExtensions.FormatPrice(invoice.DiscountLineItems().Sum(x => x.TotalPrice), _currency.Symbol), ShippingTotal = ModelExtensions.FormatPrice(invoice.ShippingLineItems().Sum(x => x.TotalPrice), _currency.Symbol) }; return summary; }
public UpdatedSaleSummary UpdateShipRateQuote(string customerToken, string methodKey) { var tokenKey = customerToken.DecryptWithMachineKey(); var customerKey = new Guid(tokenKey); var customerBase = _merchelloContext.Services.CustomerService.GetAnyByKey(customerKey); var checkoutManager = customerBase.Basket().GetCheckoutManager(); var shippingManager = checkoutManager.Shipping; var customerManager = checkoutManager.Customer; var paymentManager = checkoutManager.Payment; var shipment = customerBase.Basket().PackageBasket(customerManager.GetShipToAddress()).FirstOrDefault(); var quote = shipment.ShipmentRateQuoteByShipMethod(methodKey); if (quote != null) { shippingManager.ClearShipmentRateQuotes(); shippingManager.SaveShipmentRateQuote(quote); } var invoice = paymentManager.PrepareInvoice(); var summary = new UpdatedSaleSummary { TotalLabel = "Total", InvoiceTotal = ModelExtensions.FormatPrice(invoice.Total, _currency), TaxTotal = ModelExtensions.FormatPrice(invoice.TaxLineItems().Sum(x => x.TotalPrice), _currency), DiscountsTotal = ModelExtensions.FormatPrice(invoice.DiscountLineItems().Sum(x => x.TotalPrice), _currency), ShippingTotal = ModelExtensions.FormatPrice(invoice.ShippingLineItems().Sum(x => x.TotalPrice), _currency) }; return summary; }