feat: Enable filtering admin products by variant EAN, UPC, and barcode (#12815)

* Add filters for variant ean, upc, and barcode in product queries and validators

* fix: Omit 'q' field from variants in product list and validation parameters

* Add tests for admin products filtering by variants ean, upc, and barcode

* Add changeset for filter admin products api by variant ean, upc, and barcode

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
Ante Primorac
2025-06-25 09:17:01 +02:00
committed by GitHub
co-authored by Oli Juhl
parent fbf33885f5
commit 6ca755ede7
4 changed files with 255 additions and 4 deletions
@@ -25,6 +25,9 @@ export const AdminGetProductVariantsParamsFields = z.object({
id: z.union([z.string(), z.array(z.string())]).optional(),
manage_inventory: booleanString().optional(),
allow_backorder: booleanString().optional(),
ean: z.union([z.string(), z.array(z.string())]).optional(),
upc: z.union([z.string(), z.array(z.string())]).optional(),
barcode: z.union([z.string(), z.array(z.string())]).optional(),
created_at: createOperatorMap().optional(),
updated_at: createOperatorMap().optional(),
deleted_at: createOperatorMap().optional(),
@@ -41,9 +44,13 @@ export const AdminGetProductVariantsParams = createFindParams({
.merge(applyAndAndOrOperators(AdminGetProductVariantsParamsFields))
export const AdminGetProductsParamsDirectFields = z.object({
variants: AdminGetProductVariantsParamsFields.merge(
applyAndAndOrOperators(AdminGetProductVariantsParamsFields)
).optional(),
variants: AdminGetProductVariantsParamsFields.omit({ q: true })
.merge(
applyAndAndOrOperators(
AdminGetProductVariantsParamsFields.omit({ q: true })
)
)
.optional(),
status: statusEnum.array().optional(),
})