How WooCommerce handles this workflow
Deletes a product via the REST API, which by default moves it to the trash rather than permanently removing it, mirroring WordPress's own trash behavior for posts.
Request behavior and expectations
Passing a force parameter set to true skips the trash and permanently deletes the product outright, so that distinction matters for any automation that might need to recover a mistakenly deleted item.
Implementation details
A trashed product disappears from the storefront immediately but can still be restored from the WordPress admin trash, while a force-deleted product -- along with its variations, if it's a variable product -- cannot be recovered and would need to be rebuilt from scratch.
Use cases
Product deletion scenarios.
- Phase-out discontinued SKUs from external stores.
- Clean up test data after QA cycles.
- Unpublish products from a staging environment.
- Reset a product line for a rebrand in WooCommerce.
