How to delete a catalog
Remove an active, editable catalog from Harbor Soho or an organisation scope while preserving historical service reads and moving active service references to the default catalog when replacement is required.
In this article
Catalog deletion is a controlled cleanup action. It removes the catalog from active lists, but Antylogic does not physically delete the products, product types, allergens, specifications or tax categories behind it.
When the catalog is already assigned to services, Antylogic asks for a second confirmation. That confirmation moves active services to the default catalog and preserves historical service data with a snapshot when versioned reads require it.
Before you start
- Sign in with an active `orgId`; for a location catalog, select the target `locationId`, such as Harbor Soho.
- Have `catalog:manage` for the catalog owner scope. `catalog:view` is enough to inspect catalogs, but not to delete them.
- Choose an active, editable, non-default catalog that belongs to the scope opened by the route.
- For the replacement flow, every affected location must have a different active default catalog available.
- Run this flow only in the documentation demo session. If `SETUP_CATALOG_DELETE_NAME` points to a default seeded catalog such as `Soho Menu`, prepare a temporary non-default assigned catalog first.
Instructions
- 1.
Open the catalog list
Open `/location/catalogs?tab=catalogs&catalogs_query={name}` for a location catalog, or `/organization/catalogs?tab=catalogs&catalogs_query={name}` for an organisation catalog. Confirm that the row appears in the Catalogs tab and belongs to the scope you can manage.
- 2.
Start deletion
Choose `Delete` from the catalog row, or open the catalog detail and use the fixed footer `Delete` button. Antylogic opens `Delete Catalog` with the message `Catalog {name} will be deleted.`
- 3.
Confirm the first prompt
Select `Delete`. If no active services use the catalog, Antylogic soft-deletes it, removes it from active catalog lists and shows the deletion success state.
- 4.
Confirm replacement when requested
If services still use the catalog, the modal changes to `Replace and delete Catalog`. Review the assigned service count, affected locations and default replacement catalog name or names, then select `Replace and delete` only when active services should move to the default catalog.
- 5.
Verify the active list
Return to the filtered catalog list. The deleted catalog should no longer appear. Active service references now point to the default catalog, while historical or versioned service data can keep a deleted snapshot of the old catalog.
Validations and limits
- The delete request sends no JSON body. The only delete-specific parameter is `confirm_replacement=true` in the query string.
- A successful delete returns `204 No Content`. The client does not expect a response body.
- Default catalogs cannot be deleted. If the target is default, Antylogic reports `The default item can't be deleted.`
- Location routes can delete only editable catalogs owned by that location. Organisation routes can delete only editable organisation catalogs.
- System, inherited, already deleted, historical and read-only catalog rows must not be deleted from this screen.
- If replacement is required, the second request must call the same endpoint with `confirm_replacement=true`. Any other query value behaves as not confirmed.
- If an affected location has no active default catalog available for replacement, deletion does not complete.
- Soft delete sets `catalogs.deleted_at`, so normal lists filter the catalog out without physically deleting related products or taxonomy data.
Expected result
The catalog is removed from active catalog lists. Active services use the default replacement catalog, and historical service reads remain traceable through preserved snapshot data when needed.