Enable Store Page Specific Restaurant
Based on a request on Slack, we want to enable the store page by restaurant ID instead of an on/off flipper for all restaurants. We will apply this for all restaurants later; for now, we prefer a flipper per outlet because the Commercial team is still converting packages to include photos and package groups. We will just try to support this transition if Flipper is available.
Backend
Backend needs to create an API that returns an array of restaurant IDs enabled in Flipper, plus the actor who made the change.
API: {base_api}/restaurants/store_page_list.json
Response:
{
"data": [
"997",
"837",
"933",
"280",
"..."
],
"success": true,
"message": null
}
This is just example, please explore Flipper for easier implementation on backend side.

Frontend (Android/iOS)
On the frontend side, implement behavior similar to group-landing-page deeplink handling.
Implementation details:
- Store the
store_page_listarray in local persistent storage. - Android: use
SharedPreferences(or encrypted preferences if required by policy). - iOS: use
UserDefaults(or Keychain only if policy requires secure storage). - Refresh strategy:
- Fetch on app launch.
- Refresh every 6 hours in the background while app is active.
- Force refresh when user opens a restaurant detail page and the local cache is older than 6 hours.
Routing behavior:
- If
restaurant_idexists in the cached array, open the new store page. - If
restaurant_iddoes not exist in the cached array, open the existing (old) store page.
Testing and Rollout Plan
Test cases:
- Restaurant ID exists in API response -> app opens new store page.
- Restaurant ID does not exist -> app opens old store page.
- API failure/timeouts -> app falls back to old store page.
- Cache expired -> app refreshes list before routing.
- Flipper toggle changed -> updated behavior after next refresh.
Rollout strategy:
- Phase 1: Internal QA and staging validation.
- Phase 2: Enable a small set of restaurants in production (pilot).
- Phase 3: Expand to additional restaurants in batches.
- Phase 4: Enable globally after Commercial package-group migration is stable.