After P6.4, three commerce-related plugins may be active on the same site:
| Plugin | Model | When to use |
|---|---|---|
| Commerce | Commerce fieldtype on any collection | New sites — content-first products, tickets, memberships |
| Shopping Cart | shop_products collection | Legacy demo / existing Shop installs |
| Events | events collection + RSVP API | Legacy events / free RSVP without Commerce field |
Shelf compatibility
All three can coexist because Commerce registers payment_shelf as an alias of commerce_shelf. Shopping Cart and Events continue to call get_plugin_service('payment_shelf') unchanged.
Migration path (recommended)
- Activate Commerce; configure providers (migrates from Payments settings).
- Run the Commerce migration wizard to copy legacy Shop/Events entries into Commerce fieldtype values (idempotent).
- Or add Commerce fieldtype manually and re-create/import entries.
- Use Commerce cart/checkout template functions for new storefront pages.
- Deactivate Shopping Cart / Events when no longer needed (optional — not required in P6.4).
What not to do
- Do not run two parallel carts on the same storefront (Commerce cart vs Shop cart).
- Do not delete Shop/Events plugins in P6.4 — they remain supported.