Skip to main content
Skip to main content

softDelete - Product Module Reference


This documentation provides a reference to the softDelete method. This belongs to the Product Module.

This method is used to delete products. Unlike the delete method, this method won't completely remove the product. It can still be accessed or retrieved using methods like retrieve if you pass the withDeleted property to the config object parameter.

The soft-deleted products can be restored using the restore method.


import {
initialize as initializeProductModule,
} from "@medusajs/product"

async function deleteProducts (ids: string[]) {
const productModule = await initializeProductModule()

const cascadedEntities = await productModule.softDelete(ids)

// do something with the returned cascaded entity IDs or return them


The IDs of the products to soft-delete.
Configurations determining which relations to soft delete along with the each of the products. You can pass to its returnLinkableKeys property any of the product's relation attribute names, such as variant_id.
A context used to share resources, such as transaction manager, between the application and the module.


PromisePromise<void | Record<string, string[]>>Required
An object that includes the IDs of related records that were also soft deleted, such as the ID of associated product variants. The object's keys are the ID attribute names of the product entity's relations, such as variant_id, and its value is an array of strings, each being the ID of a record associated with the product through this relation, such as the IDs of associated product variants. If there are no related records, the promise resolved to void.
Was this section helpful?