A Read-Only Mode for a Catalogue During an Import
While an import replaces catalogue records, a shopper may see half old and half new data. The honest options are to say so, to freeze actions that depend on the data, or both. This article proposes a read-only mode as a conditional design, with a permissions matrix you can adapt. It does not describe any existing system.
What honest means here
Browsing can continue, but the page should not imply that what is shown is final. Any action that commits to a price, an option or availability should either be paused or checked again afterwards.
Import phases
Define phases in plain terms you can detect: Before (no import), Preparing (files validated, nothing changed), Replacing (records being swapped), Verifying (swap done, checks running), After (complete). Each needs a different set of permissions.
Import phase action permissions matrix
Permissions below are proposals. 'Allow' means normal behaviour, 'Warn' means allowed with a visible notice, 'Pause' means blocked with an explanation.
Browse category pages: Before allow, Preparing allow, Replacing warn, Verifying warn, After allow. View a product page: allow, allow, warn, warn, allow. Search and filter: allow, allow, warn, warn, allow. Add to a saved list: allow, allow, warn, warn, allow. Submit a quote request: allow, allow, pause, warn, allow. Download an existing quote: allow, allow, allow, allow, allow. Staff edit a single product: allow, warn, pause, pause, allow. Staff start another import: allow, pause, pause, pause, allow.
Existing downloaded quotes stay available, because they are records of what was already issued.
Branching choices
Branch A: short imports. If replacing is brief, a single notice may be enough and pausing quote submissions could be a short holding message. Branch B: long imports. Pause quote submissions and offer to keep the request as an enquiry to be confirmed afterwards, only if your process actually allows that. Branch C: uncertain phase. If the system cannot tell which phase it is in, treat it as Replacing. Unknown is the cautious state.
Hypothetical worked example
A fictional shop replaces 800 product records overnight. In Replacing, a shopper opens a product page and sees a notice: 'Product details are being updated. Information may change shortly.' They add the item to a saved list, which is allowed. They try to submit a quote request and see: 'Quote requests are paused while we finish updating. Your list is kept.' After Verifying finishes, the pause lifts. The saved list should be rechecked against the new records, and any item that no longer exists should be flagged rather than silently dropped.
Stop conditions
Stop the import and keep the previous records visible if validation fails in Preparing. Stop if Verifying finds records that do not match expected counts. Do not lift the pause on quote submissions until verification passes. If staff cannot determine the phase, do not start another import.
Acceptance checks
- In each phase, every row of the matrix can be exercised and behaves as written.
- A shopper never sees a notice in After, and always sees one in Replacing.
- Pause messages say what is paused, why, and what is kept, without promising a completion time you cannot verify.
- A saved list item missing after the import is shown as unavailable, not removed silently.
- A deliberately interrupted import leaves the notice in place until a person clears it, so a crash cannot imply completion.
- The matrix is reviewed by someone who does not work on the import, to confirm the wording is understandable.
Keep the matrix with the import runbook and update it whenever a new action type is added to the site. An action missing from the matrix has no agreed behaviour, and that gap is usually where honest browsing breaks down.