|
|
@@ -17,11 +17,21 @@ export const facetValueCollectionFilter = new CollectionFilter({
|
|
|
ui: {
|
|
|
component: 'facet-value-form-input',
|
|
|
},
|
|
|
+ label: [{ languageCode: LanguageCode.en, value: 'Facet values' }],
|
|
|
+ },
|
|
|
+ containsAny: {
|
|
|
+ type: 'boolean',
|
|
|
+ label: [{ languageCode: LanguageCode.en, value: 'Contains any' }],
|
|
|
+ description: [
|
|
|
+ {
|
|
|
+ languageCode: LanguageCode.en,
|
|
|
+ value: 'If checked, product variants must have at least one of the selected facet values. If not checked, the variant must have all selected values.',
|
|
|
+ },
|
|
|
+ ],
|
|
|
},
|
|
|
- containsAny: { type: 'boolean' },
|
|
|
},
|
|
|
code: 'facet-value-filter',
|
|
|
- description: [{ languageCode: LanguageCode.en, value: 'Filter by FacetValues' }],
|
|
|
+ description: [{ languageCode: LanguageCode.en, value: 'Filter by facet values' }],
|
|
|
apply: (qb, args) => {
|
|
|
const ids = args.facetValueIds;
|
|
|
|
|
|
@@ -89,7 +99,7 @@ export const variantNameCollectionFilter = new CollectionFilter({
|
|
|
term: { type: 'string' },
|
|
|
},
|
|
|
code: 'variant-name-filter',
|
|
|
- description: [{ languageCode: LanguageCode.en, value: 'Filter by ProductVariant name' }],
|
|
|
+ description: [{ languageCode: LanguageCode.en, value: 'Filter by product variant name' }],
|
|
|
apply: (qb, args) => {
|
|
|
let translationAlias = `variant_name_filter_translation`;
|
|
|
const nanoid = customAlphabet('123456789abcdefghijklmnopqrstuvwxyz', 6);
|
|
|
@@ -126,4 +136,25 @@ export const variantNameCollectionFilter = new CollectionFilter({
|
|
|
},
|
|
|
});
|
|
|
|
|
|
-export const defaultCollectionFilters = [facetValueCollectionFilter, variantNameCollectionFilter];
|
|
|
+export const variantIdCollectionFilter = new CollectionFilter({
|
|
|
+ args: {
|
|
|
+ variantIds: {
|
|
|
+ type: 'ID',
|
|
|
+ list: true,
|
|
|
+ ui: {
|
|
|
+ component: 'product-selector-form-input',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ code: 'variant-id-filter',
|
|
|
+ description: [{ languageCode: LanguageCode.en, value: 'Manually select product variants' }],
|
|
|
+ apply: (qb, args) => {
|
|
|
+ return qb.andWhere('productVariant.id IN (:...variantIds)', { variantIds: args.variantIds });
|
|
|
+ },
|
|
|
+});
|
|
|
+
|
|
|
+export const defaultCollectionFilters = [
|
|
|
+ facetValueCollectionFilter,
|
|
|
+ variantNameCollectionFilter,
|
|
|
+ variantIdCollectionFilter,
|
|
|
+];
|