CRM · Store list, filters & exports
The centre’s store directory with module-aware filters, a CSV export of the full store dataset, and a bulk QR export for store-level loyalty QR codes.
| Area | CRM |
| Routes | crm.commerces · crm.commerces.index |
| Centre modules | crm |
| Staff levels | root · admin · manager · scmanager · storeManager · weboperator |
| Models | commerce · user |
| UI label | title.header.crm.commerces / menu.navbar.shop.show |
| Coverage | 4 use cases · 2 happy · 3 failure |
How it works
modelFilters filters each filter option by the modules it declares, so e.g. Yardi- or Fideliza-specific filters only appear where those modules are on. exportQr downloads QR assets and exportCsv uses the shared export pipeline; canExport is limited to root/admin/manager and canImport to root/admin only — tighter than canEdit. checkUsersRelationship is a safety check before deletion: it looks for customers attached to the store.
Use cases
Why someone opens this (4)
- Maintaining the store directory that feeds the app’s store list and map.
- Exporting all store QR codes to print in-store loyalty signage.
- Finding stores missing a Yardi tenant code before a sales export.
- Sending a store its back-office access information.
Path map
flowchart LR F(["Store list, filters and exports"]):::feat F --> H1["Store QR codes exported"]:::ok F --> H2["Access information emailed to a store"]:::ok F -.-> X1["Deleting a store with customers attached"]:::bad F -.-> X2["QR export fails"]:::bad F -.-> X3["Access-information email fails"]:::bad classDef feat fill:#157068,stroke:#157068,color:#ffffff,font-weight:bold classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13
Happy paths
Store QR codes exported
- User filters the store list as needed and triggers the QR export.
exportQrfetches the QR assets and the download starts.
Access information emailed to a store
- User triggers the access-information action for a store.
crm.commerce-access-information.sent-successconfirms the email was queued.
Failure paths
Deleting a store with customers attached
Cause —
checkUsersRelationshipfinds customers linked to the store.What happens —
crm.commerce-access-information.users-related-error(‘you are trying to remove a store with customers associated’) and the delete is not confirmed.
QR export fails
Cause — API/download error.
What happens —
crm.commerces.qr-errorasks the user to retry later.
Access-information email fails
Cause — API error.
What happens —
.catch(() => setUpResponse('error'))→crm.commerce-access-information.sent-error(a generic ‘An error has occurred’).
QA checklist
Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.
- ✅ Store QR codes exported
- ✅ Access information emailed to a store
- ⛔ Deleting a store with customers attached
- ⛔ QR export fails
- ⛔ Access-information email fails
Implementation
app/controllers/crm/commerces/index.jsapp/routes/crm/commerces/index.jsapp/enums/commerces-filters.jsapp/abilities/commerce.js
Translation keys (7)
Key English title.header.crm.commercesStores menu.navbar.shop.showShops list commerces.newNew store crm.commerces.qr-errorThere was an error trying to download the information requested, please try again later crm.commerce-access-information.sent-successThe commerce access information has been sent successfully crm.commerce-access-information.sent-errorAn error has occurred crm.commerce-access-information.users-related-errorAn error has occurred, you are trying to remove a store with customers associated.
Related
- Same area — Customer list & filtering · Customer create & edit · Customer deletion with unsubscribe notice · Customer CSV export with column picker · Customer CSV import · Children CSV import · AI natural-language customer filter · Save current filters as a segment · Segment list, refresh & export · Segment builder with automatic tag actions · Segment categories · User tags (user types) · Customer receipts tab & ticket-stamp generation · Customer loyalty — raffle tickets · Customer loyalty — cards & stamps · Customer loyalty — rewards · Customer loyalty — coupon exchanges · Customer children (dependants) · Receipt verification queue · Store create & edit · Store CSV import · Store labels (store types) · Customer action log (dormant)
- Shares data with — Activity editor (loyalty mechanics, rules & targeting) · Proposal editor (content, coupon, push, AI images) · Multicentre proposals · Store sales declaration & month closing · Sales status overview & Yardi export · Annual sales statement · Intranet communications (threads, confirmations, authorisations) · Files management
Generated from doc/feature-inventory.json · id crm-commerce-list · commit 276788ca6