diff --git a/packages/core/types/src/product/common.ts b/packages/core/types/src/product/common.ts index 4fc9bc8c99..3969fc5d1a 100644 --- a/packages/core/types/src/product/common.ts +++ b/packages/core/types/src/product/common.ts @@ -697,6 +697,10 @@ export interface FilterableProductProps * The handles to filter products by. */ handle?: string | string[] + /** + * The skus to filter products by. + */ + sku?: string | string[] /** * The IDs to filter products by. */ @@ -1239,7 +1243,7 @@ export interface UpdateProductOptionValueDTO { /** * @interface - * + * * Inventory kit for creating a product variant. */ export interface CreateProductVariantInventoryKit { diff --git a/packages/medusa/src/api/store/products/validators.ts b/packages/medusa/src/api/store/products/validators.ts index 74cd966450..8f3fd9c7cf 100644 --- a/packages/medusa/src/api/store/products/validators.ts +++ b/packages/medusa/src/api/store/products/validators.ts @@ -28,7 +28,10 @@ export const StoreGetProductParams = createSelectParams().merge( export const StoreGetProductVariantsParamsFields = z.object({ q: z.string().optional(), id: z.union([z.string(), z.array(z.string())]).optional(), - options: z.object({ value: z.string().optional(), option_id: z.string().optional() }).optional(), + sku: z.union([z.string(), z.array(z.string())]).optional(), + options: z + .object({ value: z.string().optional(), option_id: z.string().optional() }) + .optional(), created_at: createOperatorMap().optional(), updated_at: createOperatorMap().optional(), deleted_at: createOperatorMap().optional(), @@ -64,10 +67,12 @@ export const StoreGetProductsParams = createFindParams({ z .object({ variants: z - .object({ options: z - .object({ value: z.string().optional(), option_id: z.string().optional() }) + .object({ + value: z.string().optional(), + option_id: z.string().optional(), + }) .optional(), }) .merge(applyAndAndOrOperators(StoreGetProductVariantsParamsFields))