📄️ Create a product
Creates a product that does not exist on the platform Corso is connected to. The `handle` identifies the product, so sending the same handle again updates it in place instead of creating a duplicate, and the response is a `200` rather than a `201`. Every variant must carry at least one option or a `sku`, and all variants must use the same set of option names. Use the returned `productId` for subsequent reads, updates, and deletes.
📄️ Get a product
Retrieve a single product by its Corso ID. Only products created through this API are returned, and deleted ones come back with `deletedOn` set.
📄️ Replace a product
Replaces a product identified by its Corso ID. Only products created through this API can be updated. The body carries the product's full representation, so any field omitted from it is cleared and any variant omitted from it is marked as removed. The `handle` cannot be changed.
📄️ Delete a product
Marks a product and all of its variants as removed. Only products created through this API can be deleted. History is retained, so existing orders and claims that reference the product stay intact.