This is a complete reference for all appsettings.json settings under the Merchello key. These settings control everything from store currency to checkout behavior, product rendering, digital downloads, and background job timing.
Enables the integrated Shopify-style checkout at /checkout. Set false for headless installs with custom checkout frontends.
EnableProductRendering
bool
true
Enables product route hijacking via ProductContentFinder. Products render at root-level URLs (e.g., /my-product). Set false for headless installs.
InstallSeedData
bool
false
Shows the seed data installer in the backoffice. Essential data types are always installed regardless.
StoreCurrencyCode
string
"USD"
ISO 4217 currency code for the store's base currency (e.g., "GBP", "EUR"). All prices are stored in this currency.
DefaultShippingCountry
string?
null
ISO 3166-1 alpha-2 country code. Used as the default shipping country when no customer preference is set.
DisplayPricesIncTax
bool
false
When true, storefront prices include applicable tax (VAT/GST). Products are always stored as net prices internally.
ShowStockLevels
bool
false
When true, shows exact stock counts (e.g., "50 available"). When false, shows only "In Stock" or "Out of Stock".
InvoiceNumberPrefix
string
"INV-"
Prefix for generated invoice numbers.
DefaultRounding
MidpointRounding
AwayFromZero
Rounding strategy for monetary calculations. AwayFromZero (2.5 rounds to 3) is standard for commerce. ToEven is banker's rounding.
OrderGroupingStrategy
string?
null
Custom order grouping strategy. Leave null for default warehouse-based grouping. Set to "vendor-grouping" or a fully qualified type name for custom strategies.
ShippingAutoSelectStrategy
string
"cheapest"
How shipping options are auto-selected during checkout. Values: "cheapest", "fastest", "cheapest-then-fastest".
LowStockThreshold
int
10
Products with stock at or below this value (but > 0) are considered "low stock". Used in filters and inventory management.
MaxProductOptions
int
5
Maximum number of options per product. Higher values cause exponential variant generation.
MaxOptionValuesPerOption
int
20
Maximum number of values per option.
ProductDescriptionDataTypeKey
Guid?
null
GUID of the Umbraco Data Type for the product description rich text editor. If null, a default is created on startup.
DefaultMemberGroup
string
"MerchelloCustomer"
Member group for customers who create accounts during checkout. Created automatically if it does not exist.
DefaultMemberTypeAlias
string
"Member"
Umbraco member type alias used when creating members during checkout.
DownloadTokenSecret
string
""
HMAC secret for signing download tokens (digital products). Must be at least 32 characters for production. Generate with: Guid.NewGuid().ToString("N") + Guid.NewGuid().ToString("N")
DefaultDownloadLinkExpiryDays
int
30
Days before download links expire. 0 = never expires. Products can override this individually.
DefaultMaxDownloadsPerLink
int
0
Maximum downloads per link. 0 = unlimited. Products can override individually.
An array of virtual path prefixes where Merchello looks for product Razor views. When a product has ViewAlias = "Gallery", Merchello resolves to ~/Views/Products/Gallery.cshtml.
Store identity and contact information used in checkout, emails, and invoices:
{"Merchello":{"Store":{"Name":"My Store","Email":"orders@example.com","Phone":"+1 555 123 4567","LogoUrl":"/media/logo.png","WebsiteUrl":"https://store.example.com","Address":"123 Commerce Street\nNew York, NY 10001","TermsUrl":"/terms","PrivacyUrl":"/privacy"}}}
Setting
Description
Name
Store name shown in checkout header and emails.
Email
Default from address for store emails.
Phone
Phone number shown in checkout and email footers.
LogoUrl
URL to the store logo for checkout and emails.
WebsiteUrl
Base URL for generating download links and email links.
Address
Physical address for invoices and email footers. Supports newlines.
TermsUrl
URL to terms and conditions page.
PrivacyUrl
URL to privacy policy page.
Note: Store settings can also be managed through the backoffice UI, where they are persisted to the database. The backoffice values override appsettings.json values.