# Core API: Products

Products use a draft/publish flow.
This means any updates made on a product created / mopdifies a draft(copy) of the product which can be worked on with many update requestsuntil finally when you want to publish / apply the changes the 'Publish product' endpont must be called for any change to take affect.
To get the product images use cdn: https://{environment}.media.ancon.io/{tenantId}/product/{productId}/{imageId}
Production does not have an environment prefix then just use https://media.ancon.io/{tenantId}/product/{productId}/{imageId}

## Endpoints

- [Get product list](https://ancon.dev/api/core/products/get-product-list.md): `GET /api/v1/Tenants/{tenantId}/Products`
- [Create product draft](https://ancon.dev/api/core/products/create-product-draft.md): `POST /api/v1/Tenants/{tenantId}/Products`
- [Update product](https://ancon.dev/api/core/products/update-product.md): `PUT /api/v1/Tenants/{tenantId}/Products/{productId}`
- [Delete product](https://ancon.dev/api/core/products/delete-product.md): `DELETE /api/v1/Tenants/{tenantId}/Products/{productId}`
- [Publish product](https://ancon.dev/api/core/products/publish-product.md): `PUT /api/v1/Tenants/{tenantId}/Products/{productId}/publish`
- [Update product availabilities](https://ancon.dev/api/core/products/update-product-availabilities.md): `PUT /api/v1/Tenants/{tenantId}/Products/{productId}/productAvailabilities`
- [Update product outlet shares](https://ancon.dev/api/core/products/update-product-outlet-shares.md): `PUT /api/v1/Tenants/{tenantId}/Products/{productId}/shares`
- [Create product variant](https://ancon.dev/api/core/products/create-product-variant.md): `POST /api/v1/Tenants/{tenantId}/Products/{productId}/variants`
- [Update product variant](https://ancon.dev/api/core/products/update-product-variant.md): `PUT /api/v1/Tenants/{tenantId}/Products/{productId}/variants/{variantId}`
- [Update product tags](https://ancon.dev/api/core/products/update-product-tags.md): `PUT /api/v1/Tenants/{tenantId}/Products/{productId}/tags`
- [Update product meta data](https://ancon.dev/api/core/products/update-product-meta-data.md): `PUT /api/v1/Tenants/{tenantId}/Products/{productId}/metadata`
- [Update sub products](https://ancon.dev/api/core/products/update-sub-products.md): `PUT /api/v1/Tenants/{tenantId}/Products/{productId}/SubProducts`
- [Get product details v1.1](https://ancon.dev/api/core/products/get-product-details-v1-1.md): `GET /api/v1.1/Tenants/{tenantId}/Products/{id}`

1 deprecated endpoint is left out of this index; their pages still exist and name the replacement.
