CRM · Store CSV import

Bulk store create/update from CSV with ~30 mappable attributes including address, categories, social handles, IBAN, fiscal name, tenant code, Fideliza code, surfaces and gift-card settings.

AreaCRM
Routescrm.commerces.import
Centre modulescrm
Staff levelsroot · admin · commerce
Modelscommerce · load
UI labelimport-csv.column-database
Coverage3 use cases · 1 happy · 3 failure

How it works

Same engine as the customer import but with the store attribute list and no channel requirement. Notably mappable: company-reference-number, fideliza-code, tenant-code, pin, sale-price, surface, showcase-surface, commerce-admins, commerce-tags, gift-card-active, gift-card-fiscal-name. The tightest permission of any import — root/admin only.

Use cases

Why someone opens this (3)

  • Onboarding a centre’s full tenant list in one pass.
  • Bulk-updating tenant codes before enabling the Yardi export.
  • Mass-assigning store labels or administrators.

Path map

flowchart LR
    F(["Store CSV import"]):::feat
    F --> H1["Stores bulk-updated"]:::ok
    F -.-> X1["Duplicate column mapping"]:::bad
    F -.-> X2["Rows rejected"]:::bad
    F -.-> X3["Insufficient permission"]:::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

Stores bulk-updated

  1. Admin downloads the store template, fills it and uploads.
  2. Columns auto-map; the match key is set to id (default for non-user models).
  3. load.validate() passes and the import job is queued.
  4. Store directory reflects the changes.

Failure paths

QA checklist

Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.

  • ✅ Stores bulk-updated
  • ⛔ Duplicate column mapping
  • ⛔ Rows rejected
  • ⛔ Insufficient permission

Implementation


Generated from doc/feature-inventory.json · id crm-commerce-import · commit 276788ca6