> Documentation index: [Saleor](/llms.txt) · [This section](/developer/llms.txt)
> Source: https://docs.saleor.io/developer/products/lifecycle

# Products lifecycle

<a id="deleting-a-product"></a>

## Deleting a product

Deleting the product will have an effect on the following:

-   **Draft order:** the product will be removed from the draft order.
-   **Checkout:** the product will be removed from the checkout.
-   **Order data:** order lines will be preserved but the product photography will not be available.

<a id="changing-availability"></a>

## Changing availability

When a product in the **Checkout** or **Draft order** becomes unavailable, the order cannot be finalized.

<a id="changing-product-type"></a>

## Changing product type

Product types can not be changed after they are created, as there is no straightforward way to migrate the data. Each type can have different attributes, and mapping between them can be ambitious. To migrate a type we recommend creating a migration script.

<a id="webhook-triggers"></a>

## Webhook triggers

| Event Type |
| --- |
| `PRODUCT_CREATED` |
| `PRODUCT_UPDATED` |
| `PRODUCT_DELETED` |
| `PRODUCT_METADATA_UPDATED` |
| `PRODUCT_EXPORT_COMPLETED` |
| `PRODUCT_MEDIA_CREATED` |
| `PRODUCT_MEDIA_UPDATED` |
| `PRODUCT_MEDIA_DELETED` |
| `PRODUCT_VARIANT_CREATED` |
| `PRODUCT_VARIANT_UPDATED` |
| `PRODUCT_VARIANT_DELETED` |
| `PRODUCT_VARIANT_METADATA_UPDATED` |
| `PRODUCT_VARIANT_OUT_OF_STOCK` |
| `PRODUCT_VARIANT_BACK_IN_STOCK` |
| `PRODUCT_VARIANT_STOCK_UPDATED` |
| `PRODUCT_VARIANT_OUT_OF_STOCK_IN_CHANNEL` |
| `PRODUCT_VARIANT_BACK_IN_STOCK_IN_CHANNEL` |
| `PRODUCT_VARIANT_OUT_OF_STOCK_FOR_CLICK_AND_COLLECT` |
| `PRODUCT_VARIANT_BACK_IN_STOCK_FOR_CLICK_AND_COLLECT` |

See [complete list](/api-reference/webhooks/enums/webhook-event-type-async-enum.md#values) of webhooks
