nopSolutions/nopCommerce · error · NopException
No available shipping options
Error message
No available shipping options
What it means
Thrown during shipping option preparation when no shipping options or pickup points are available for the cart. The plugin calls PrepareShippingOptionsAsync which delegates to nopCommerce's shipping rate computation; if the result is null or empty, there is no way to fulfill the order.
Source
Thrown at src/Plugins/Nop.Plugin.Payments.PayPalCommerce/Services/PayPalCommerceServiceManager.cs:668
var shipping = new Shipping
{
Name = new() { FullName = CommonHelper.EnsureMaximumLength(fullName, 300), },
Address = address
};
if (details.Placement == ButtonPlacement.PaymentMethod && !isApplePay)
{
shipping.Type = details.IsPickup
? ShippingType.SHIPPING.ToString().ToUpper() //PICKUP_IN_STORE option doesn't work for some reason
: ShippingType.SHIPPING.ToString().ToUpper();
return shipping;
}
var (shippingOptions, pickupPoints) = await PrepareShippingOptionsAsync(details);
if (!shippingOptions?.Any() ?? true)
throw new NopException("No available shipping options");
var selectedShippingOption = shippingOptions.FirstOrDefault();
if (!string.IsNullOrEmpty(selectedOptionId))
{
var existingOption = shippingOptions
.FirstOrDefault(option => string.Equals(option.Name, selectedOptionId, StringComparison.InvariantCultureIgnoreCase))
?? throw new NopException("Selected shipping option is unavailable");
selectedShippingOption = existingOption;
}
if (selectedShippingOption is null)
throw new NopException("Selected shipping option is unavailable");
PickupPoint pickupPoint = null;
if (selectedShippingOption.IsPickupInStore)
{
pickupPoint = await pickupPoints.FirstOrDefaultAwaitAsync(async point =>View on GitHub (pinned to 64bdf2ff08)
Solutions
- Verify at least one shipping rate computation method is installed and active in nopCommerce (Configuration > Shipping > Providers)
- Check that the configured shipping methods cover the customer's shipping destination country and region
- Test shipping rate calculation independently for the customer's address to confirm providers return rates
- Ensure shipping provider plugins (e.g., UPS, USPS, FedEx) have valid API credentials and are operational
- Verify restricted shipping zones are not excluding the customer's destination
Defensive patterns
Strategy: validation
Validate before calling
// Check shipping options availability before PayPal flow
var shippingOptions = await _shippingService
.GetShippingOptionsAsync(cart, shippingAddress, "", storeId);
if (!shippingOptions.ShippingOptions.Any())
{
return Error("No shipping options available for the selected address");
} Try / catch
var (result, error) = await manager.PrepareShippingAsync(settings, details, selectedOptionId, isApplePay);
if (!string.IsNullOrEmpty(error))
{
if (error == "No available shipping options")
return View("NoShippingOptions");
} Prevention
- Always verify at least one shipping rate computation method is active
- Test shipping rate calculation for all destination countries you serve
- Ensure shipping provider API credentials are valid and monitored
- Set up fallback free shipping or flat-rate options for uncovered regions
When it happens
Trigger: PrepareShippingAsync calls PrepareShippingOptionsAsync(details) which returns null or an empty list; the null-coalescing check '!shippingOptions?.Any() ?? true' evaluates to true.
Common situations: No shipping rate computation method is active or configured; all configured shipping providers returned no rates for the destination; the shipping address country/region is not covered by any shipping method; shipping rate computation plugins are misconfigured or their external APIs are down.
Related errors
- Selected shipping option is unavailable
- Exchange ratio not set for weight [{targetMeasureWeight.Name
- Shipping total couldn't be calculated
- Plugin not configured
- Merchant PayPal ID not set
AI-assisted analysis of nopSolutions/nopCommerce@64bdf2ff08 (2026-08-13).
Data as JSON: /api/errors/19cb3ec6eb9e8e64.
Report an issue: GitHub.