{"record":{"id":"47b95058e39e952f","repo":"nopSolutions/nopCommerce","slug":"shipping-rate-computation-method-could-not-be-load","errorCode":null,"errorMessage":"Shipping rate computation method could not be loaded","messagePattern":"Shipping rate computation method could not be loaded","errorType":"exception","errorClass":"NopException","httpStatus":null,"severity":"error","filePath":"src/Libraries/Nop.Services/Orders/OrderTotalCalculationService.cs","lineNumber":1138,"sourceCode":"        var store = await _storeContext.GetCurrentStoreAsync();\n        if (customer != null)\n            shippingOption = await _genericAttributeService.GetAttributeAsync<ShippingOption>(customer, NopCustomerDefaults.SelectedShippingOptionAttribute, store.Id);\n\n        if (shippingOption != null)\n        {\n            //use last shipping option (get from cache)\n            (shippingTotal, appliedDiscounts) = await AdjustShippingRateAsync(shippingOption.Rate, cart, shippingOption.IsPickupInStore);\n        }\n        else\n        {\n            //use fixed rate (if possible)\n            Address shippingAddress = null;\n            if (customer != null)\n                shippingAddress = await _customerService.GetCustomerShippingAddressAsync(customer);\n\n            var shippingRateComputationMethods = await _shippingPluginManager.LoadActivePluginsAsync(await _workContext.GetCurrentCustomerAsync(), store.Id);\n            if (!shippingRateComputationMethods.Any() && !_shippingSettings.AllowPickupInStore)\n                throw new NopException(\"Shipping rate computation method could not be loaded\");\n\n            if (shippingRateComputationMethods.Count == 1)\n            {\n                var shippingRateComputationMethod = shippingRateComputationMethods[0];\n\n                var shippingOptionRequests = (await _shippingService.CreateShippingOptionRequestsAsync(cart,\n                    shippingAddress,\n                    store.Id)).shipmentPackages;\n\n                decimal? fixedRate = null;\n                foreach (var shippingOptionRequest in shippingOptionRequests)\n                {\n                    //calculate fixed rates for each request-package\n                    var fixedRateTmp = await shippingRateComputationMethod.GetFixedRateAsync(shippingOptionRequest);\n                    if (!fixedRateTmp.HasValue)\n                        continue;\n\n                    if (!fixedRate.HasValue)","sourceCodeStart":1120,"sourceCodeEnd":1156,"githubUrl":"https://github.com/nopSolutions/nopCommerce/blob/64bdf2ff08c8b39e65717bcf974fb43dc2ef68f2/src/Libraries/Nop.Services/Orders/OrderTotalCalculationService.cs#L1120-L1156","documentation":"Thrown by OrderTotalCalculationService (GetShoppingCartShippingTotal path) when no active shipping rate computation method plugin is loaded for the store/customer AND AllowPickupInStore is false. The service cannot compute a fixed shipping rate without at least one computation plugin or a pickup fallback. It is a configuration error, not a transient failure.","triggerScenarios":"Calculating a cart's shipping total when LoadActivePluginsAsync returns no shipping rate computation methods and _shippingSettings.AllowPickupInStore is disabled. Happens on checkout/shopping-cart pages and any GetShoppingCartShippingTotalAsync call for a cart that needs shipping.","commonSituations":"No shipping rate computation plugin installed or enabled (e.g., Shipping.FixedByWeightByTotal disabled) and pickup-in-store turned off; plugin restricted to a specific store/customer role that excludes the current context; misconfigured LimitToStores/LimitedToRoles on the shipping plugin.","solutions":["Install and enable at least one shipping rate computation plugin (e.g., Fixed or FixedByWeightByTotal) for the relevant store.","Alternatively enable AllowPickupInStore in shipping settings so the fallback path is available.","Check the plugin's LimitToStores and LimitedToRoles so it is active for the current store/customer.","Verify the plugin is marked active (IsPluginActive) and its system name is registered."],"exampleFix":"// before\nvar (shippingTotal, _) = await _orderTotalCalculationService.GetShoppingCartShippingTotalAsync(cart, false);\n\n// after\nvar methods = await _shippingPluginManager.LoadActivePluginsAsync(customer, storeId);\nif (!methods.Any() && !_shippingSettings.AllowPickupInStore)\n{\n    // guide the user: enable a shipping plugin or pickup-in-store\n    throw new InvalidOperationException(\"No shipping method is configured.\");\n}\nvar (shippingTotal, _) = await _orderTotalCalculationService.GetShoppingCartShippingTotalAsync(cart, false);","handlingStrategy":"validation","validationCode":"var methods = await _shippingPluginManager.LoadActivePluginsAsync(await _workContext.GetCurrentCustomerAsync(), store.Id);\nif (!methods.Any() && !_shippingSettings.AllowPickupInStore)\n{\n    // guide the user: enable a shipping plugin or pickup-in-store\n    throw new InvalidOperationException(\"No shipping method is configured.\");\n}\n\nvar (shippingTotal, _) = await _orderTotalCalculationService.GetShoppingCartShippingTotalAsync(cart, false);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Install and enable at least one shipping rate computation plugin per store.","Alternatively enable AllowPickupInStore as a fallback.","Check LimitToStores/LimitedToRoles so the plugin covers the active store/customer."],"tags":["shipping","plugin","configuration","checkout"],"backgroundTag":null,"analyzedSha":"64bdf2ff08c8b39e65717bcf974fb43dc2ef68f2","analyzedAt":"2026-08-13T21:19:38.062Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}