public Uri Create()
        {
            var cart            = _klarnaCheckoutUtils.GetCart();
            var merchant        = _klarnaCheckoutUtils.GetMerchant();
            var supportedLocale = _klarnaCheckoutUtils.GetSupportedLocale();
            var gui             = _klarnaCheckoutUtils.GetGui();
            var options         = _klarnaCheckoutUtils.GetOptions();
            var shippingAddress = _klarnaCheckoutUtils.GetShippingAddress();

            var klarnaOrder = new KlarnaCheckoutOrder
            {
                Cart             = cart,
                Merchant         = merchant,
                Gui              = gui,
                Options          = options,
                ShippingAddress  = shippingAddress,
                Locale           = supportedLocale.Locale,
                PurchaseCountry  = supportedLocale.PurchaseCountry,
                PurchaseCurrency = supportedLocale.PurchaseCurrency
            };

            var dictData  = klarnaOrder.ToDictionary();
            var connector = Connector.Create(_klarnaSettings.SharedSecret, BaseUri);
            var order     = new Klarna.Checkout.Order(connector);

            order.Create(dictData);

            var location = order.Location;

            var kcoOrderRequest = GetKcoOrderRequest(_workContext.CurrentCustomer, location);

            _klarnaRepository.Insert(kcoOrderRequest);

            return(location);
        }
        public Order Fetch(Uri resourceUri)
        {
            try
            {
                var klarnaOrderId = _klarnaCheckoutUtils.GetOrderIdFromUri(resourceUri);
                var connector     = Connector.Create(_klarnaSettings.SharedSecret, BaseUri);
                var order         = new Klarna.Checkout.Order(connector, klarnaOrderId);

                order.Fetch();

                return(order);
            }
            catch (Exception ex)
            {
                throw new KlarnaCheckoutException("Error fetching klarna order: " + resourceUri, ex);
            }
        }
        public Uri Create()
        {
            var cart = _klarnaCheckoutUtils.GetCart();
            var merchant = _klarnaCheckoutUtils.GetMerchant();
            var supportedLocale = _klarnaCheckoutUtils.GetSupportedLocale();
            var gui = _klarnaCheckoutUtils.GetGui();
            var options = _klarnaCheckoutUtils.GetOptions();
            var shippingAddress = _klarnaCheckoutUtils.GetShippingAddress();

            var klarnaOrder = new KlarnaCheckoutOrder
            {
                Cart = cart,
                Merchant = merchant,
                Gui = gui,
                Options = options,
                ShippingAddress = shippingAddress,
                Locale = supportedLocale.Locale,
                PurchaseCountry = supportedLocale.PurchaseCountry,
                PurchaseCurrency = supportedLocale.PurchaseCurrency
            };

            var dictData = klarnaOrder.ToDictionary();
            var connector = Connector.Create(_klarnaSettings.SharedSecret, BaseUri);
            var order = new Klarna.Checkout.Order(connector);

            order.Create(dictData);

            var location = order.Location;

            var kcoOrderRequest = GetKcoOrderRequest(_workContext.CurrentCustomer, location);
            _klarnaRepository.Insert(kcoOrderRequest);

            return location;
        }
        public Order Fetch(Uri resourceUri)
        {
            try
            {
                var klarnaOrderId = _klarnaCheckoutUtils.GetOrderIdFromUri(resourceUri);
                var connector = Connector.Create(_klarnaSettings.SharedSecret, BaseUri);
                var order = new Klarna.Checkout.Order(connector, klarnaOrderId);

                order.Fetch();

                return order;
            }
            catch (Exception ex)
            {
                throw new KlarnaCheckoutException("Error fetching klarna order: " + resourceUri, ex);
            }
        }