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:
1 parent
fbf33885f5
commit
6ca755ede7
4 files changed
+255
-4
No files matched your search
@@ -24,6 +24,18 @@ export interface AdminProductVariantParams
|
||||
* out of stock.
|
||||
*/
|
||||
allow_backorder?: boolean
|
||||
/**
|
||||
* Filter by variant ean(s).
|
||||
*/
|
||||
ean?: string | string[]
|
||||
/**
|
||||
* Filter by variant upc(s).
|
||||
*/
|
||||
upc?: string | string[]
|
||||
/**
|
||||
* Filter by variant barcode(s).
|
||||
*/
|
||||
barcode?: string | string[]
|
||||
/**
|
||||
* Apply filters on the variant's creation date.
|
||||
*/
|
||||
@@ -46,5 +58,5 @@ export interface AdminProductListParams
|
||||
/**
|
||||
* Apply filters on the product variants.
|
||||
*/
|
||||
variants?: AdminProductVariantParams
|
||||
variants?: Omit<AdminProductVariantParams, "q">
|
||||
}
|
||||
@@ -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(),
|
||||
})
|
||||
|
||||
|
||||
Reference in new issue
Block a user