Delete a virtual brand
Remove a disposable virtual brand from the active location after confirming the destructive dialog. The refreshed Virtual brands list no longer shows the deleted brand.
In this article
Use this guide when a temporary or obsolete virtual brand should be removed from Harbor Soho or another active location, not when you are updating the main TPV brand.
The action is permissioned and confirmed. Antylogic deletes the virtual brand for the current URL context, refreshes the table, and leaves linked image files untouched.
Before you start
- You are signed in with an active organisation.
- Harbor Soho, or the required location, is the active location.
- You can open `${APP_DEEPLINK_BASE}${ORG_ID}/${LOCATION_ID}/location/brands`.
- A disposable virtual brand exists in the same location context.
- Your user has `brand:manage`. Users with only `brand:view` can see the list but cannot delete a virtual brand.
- For documentation captures, create a temporary `TPV_DELETE_BRAND_NAME` and delete only that brand. Do not delete the main demo brand if it may be selected as the active TPV brand.
Instructions
- 1.
Open Virtual brands
Open the location brand settings page and wait for the Virtual brands table to load. Confirm that the disposable brand is visible before starting the delete flow.
- 2.
Open the brand actions
Find the disposable brand row and open its row actions menu. The Delete action is available only when the user has `brand:manage`.
- 3.
Choose Delete
Select Delete from the row actions. The app opens a destructive confirmation dialog instead of deleting the brand immediately.
- 4.
Confirm deletion
Confirm the dialog to remove the brand from the current location. On success, the dialog closes, a success notification is shown, and the Virtual brands list is refreshed.
- 5.
Verify the list
Check the Virtual brands table again and confirm that the temporary brand no longer appears. If the request fails, the dialog stays open and an error notification is shown.
Validations and limits
- The delete action is not shown for view-only users, and the backend also requires `brand:manage`.
- The request only deletes a brand that belongs to the current URL context. A location route does not delete organisation-scoped brands.
- A successful delete returns `204 No Content` and invalidates the Virtual brands list query.
- The delete is physical: the `virtual_brand` row is removed and there is no undo step in the reviewed implementation.
- If the deleted brand was selected in TPV settings, `tpv_settings.brand_id` is set to `NULL` by the database relationship.
- Files referenced by the brand, such as logos or cover images, are not deleted by this action.
- No operator-facing organisation screen for deleting organisation-scoped virtual brands was found, so this guide covers the location surface.
Expected result
The disposable virtual brand is removed from the active location, the table refreshes, and TPV settings no longer reference it if it was selected as the active brand.