Appearance
Discover the storefront structured-settings contract
GET
/rest/v1/storefront-config
Returns a typed, sectioned map of backend-owned storefront settings. The non-boolean sibling of GET /rest/features: it carries parameter values (numbers, lists, strings) grouped into named sections rather than capability on/off flags. Section listing derives its values live from the storefront config (products_list_limit / pageLimitsArray() / products_list_max), and section loyalty exposes the points-to-cash redemption ratio live from Registry (ESHOP.SPEND_POINTS / ESHOP.REWARD_CASH), and section shipping exposes the free-shipping promo-banner threshold live from Registry (ESHOP.TRANS_COST_LIMIT) — a DISPLAY value only, never the charged shipping cost — and section videoShowcase exposes how many reels the homepage strip should render (VIDEOSHOWCASE.HOMEPAGE_LIMIT), advisory only and not enforced by GET /rest/cms/reel, and section priceTracking exposes the EU Omnibus reference-price switch and the merchant's copy for it live from Registry (PRICE_TRACK.ENABLED / DISCOUNT_LABEL / DISCOUNT_BADGE_LABEL), and section appUpdate exposes, per mobile platform, the minimum supported app version and the store listing to update from live from Registry (APP_UPDATE.ANDROID_MINIMUM_VERSION / ANDROID_STORE_URL / IOS_MINIMUM_VERSION / IOS_STORE_URL) — the app compares its own version, the server never does, and section home exposes which slider group the merchant chose for an external frontend's home hero and how many of its sliders to show live from Registry (HOME_EXTERNAL.HERO_SLIDESHOW_GROUP_ID / HERO_SLIDESHOW_LIMIT), so they track whatever the deployment configures with no rebuild. Whether the point system is switched on at all is a capability gate, not a value — read the loyalty boolean on GET /rest/features for that. Read-only and global (not per-user/locale); no server-side enforcement (pure values).
Responses
Successful operation
application/json
JSON "success": true, "data": { "listing": { "perPageDefault": 36, "perPageOptions": [ [ 9, 18, 36, 72 ] ], "perPageMax": 72 }, "loyalty": { "spendPoints": 518, "rewardCashPerUnit": 8 }, "shipping": { "freeShippingThreshold": 65 }, "videoShowcase": { "homepageLimit": 8 }, "priceTracking": { "enabled": true, "discountLabel": { "additionalProperties": "string" }, "badgeLabel": { "additionalProperties": "string" } }, "appUpdate": { "android": { "minimumVersion": "1.4.0", "storeUrl": "https://play.google.com/store/apps/details?id=com.example.shop" }, "ios": { "minimumVersion": "1.4.0", "storeUrl": "https://apps.apple.com/app/id0000000000" } }, "home": { "heroSliderGroupId": 4, "heroSliderLimit": 8 } }
{
}