浏览代码

feat(admin-ui): Product & variant lists can be filtered by name & sku

Closes #2519
Michael Bromley 2 年之前
父节点
当前提交
74293cb597
共有 23 个文件被更改,包括 85 次插入67 次删除
  1. 25 25
      packages/admin-ui/i18n-coverage.json
  2. 1 1
      packages/admin-ui/src/lib/catalog/src/components/product-list/product-list.component.html
  3. 23 10
      packages/admin-ui/src/lib/catalog/src/components/product-list/product-list.component.ts
  4. 1 1
      packages/admin-ui/src/lib/catalog/src/components/product-variant-list/product-variant-list.component.html
  5. 35 12
      packages/admin-ui/src/lib/catalog/src/components/product-variant-list/product-variant-list.component.ts
  6. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/ar.json
  7. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/cs.json
  8. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/de.json
  9. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/en.json
  10. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/es.json
  11. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/fa.json
  12. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/fr.json
  13. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/he.json
  14. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/hr.json
  15. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/it.json
  16. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/ne.json
  17. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/pl.json
  18. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/pt_BR.json
  19. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/pt_PT.json
  20. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/ru.json
  21. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/uk.json
  22. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/zh_Hans.json
  23. 0 1
      packages/admin-ui/src/lib/static/i18n-messages/zh_Hant.json

+ 25 - 25
packages/admin-ui/i18n-coverage.json

@@ -1,94 +1,94 @@
 {
 {
-  "generatedOn": "2023-12-18T15:00:22.906Z",
-  "lastCommit": "4f42cf168eaee02eb73d6e70a6355265a88c4a05",
+  "generatedOn": "2023-12-19T10:42:11.831Z",
+  "lastCommit": "c4bd4847c06633538301a20d0efd946d7fd08f30",
   "translationStatus": {
   "translationStatus": {
     "ar": {
     "ar": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 760,
       "translatedCount": 760,
       "percentage": 100
       "percentage": 100
     },
     },
     "cs": {
     "cs": {
-      "tokenCount": 761,
-      "translatedCount": 570,
+      "tokenCount": 760,
+      "translatedCount": 571,
       "percentage": 75
       "percentage": 75
     },
     },
     "de": {
     "de": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 760,
       "translatedCount": 760,
       "percentage": 100
       "percentage": 100
     },
     },
     "en": {
     "en": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 760,
       "translatedCount": 760,
       "percentage": 100
       "percentage": 100
     },
     },
     "es": {
     "es": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 760,
       "translatedCount": 760,
       "percentage": 100
       "percentage": 100
     },
     },
     "fa": {
     "fa": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 760,
       "translatedCount": 760,
       "percentage": 100
       "percentage": 100
     },
     },
     "fr": {
     "fr": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 757,
       "translatedCount": 757,
-      "percentage": 99
+      "percentage": 100
     },
     },
     "he": {
     "he": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 760,
       "translatedCount": 760,
       "percentage": 100
       "percentage": 100
     },
     },
     "hr": {
     "hr": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 759,
       "translatedCount": 759,
       "percentage": 100
       "percentage": 100
     },
     },
     "it": {
     "it": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 760,
       "translatedCount": 760,
       "percentage": 100
       "percentage": 100
     },
     },
     "ne": {
     "ne": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 749,
       "translatedCount": 749,
-      "percentage": 98
+      "percentage": 99
     },
     },
     "pl": {
     "pl": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 399,
       "translatedCount": 399,
-      "percentage": 52
+      "percentage": 53
     },
     },
     "pt_BR": {
     "pt_BR": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 759,
       "translatedCount": 759,
       "percentage": 100
       "percentage": 100
     },
     },
     "pt_PT": {
     "pt_PT": {
-      "tokenCount": 761,
-      "translatedCount": 608,
+      "tokenCount": 760,
+      "translatedCount": 607,
       "percentage": 80
       "percentage": 80
     },
     },
     "ru": {
     "ru": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 760,
       "translatedCount": 760,
       "percentage": 100
       "percentage": 100
     },
     },
     "uk": {
     "uk": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 595,
       "translatedCount": 595,
       "percentage": 78
       "percentage": 78
     },
     },
     "zh_Hans": {
     "zh_Hans": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 540,
       "translatedCount": 540,
       "percentage": 71
       "percentage": 71
     },
     },
     "zh_Hant": {
     "zh_Hant": {
-      "tokenCount": 761,
+      "tokenCount": 760,
       "translatedCount": 386,
       "translatedCount": 386,
       "percentage": 51
       "percentage": 51
     }
     }

+ 1 - 1
packages/admin-ui/src/lib/catalog/src/components/product-list/product-list.component.html

@@ -49,7 +49,7 @@
     ></vdr-bulk-action-menu>
     ></vdr-bulk-action-menu>
     <vdr-dt2-search
     <vdr-dt2-search
         [searchTermControl]="searchTermControl"
         [searchTermControl]="searchTermControl"
-        [searchTermPlaceholder]="'catalog.filter-by-name' | translate"
+        [searchTermPlaceholder]="'settings.search-by-product-name-or-sku' | translate"
     />
     />
     <vdr-dt2-column [heading]="'common.id' | translate" id="id" [hiddenByDefault]="true" [sort]="sorts.get('id')">
     <vdr-dt2-column [heading]="'common.id' | translate" id="id" [hiddenByDefault]="true" [sort]="sorts.get('id')">
         <ng-template let-product="item">
         <ng-template let-product="item">

+ 23 - 10
packages/admin-ui/src/lib/catalog/src/components/product-list/product-list.component.ts

@@ -5,6 +5,7 @@ import {
     FacetValueFormInputComponent,
     FacetValueFormInputComponent,
     JobQueueService,
     JobQueueService,
     JobState,
     JobState,
+    LogicalOperator,
     ModalService,
     ModalService,
     NotificationService,
     NotificationService,
     ProductListQueryDocument,
     ProductListQueryDocument,
@@ -97,19 +98,31 @@ export class ProductListComponent
         this.configure({
         this.configure({
             document: ProductListQueryDocument,
             document: ProductListQueryDocument,
             getItems: data => data.products,
             getItems: data => data.products,
-            setVariables: (skip, take) => ({
-                options: {
-                    skip,
-                    take,
-                    filter: {
+            setVariables: (skip, take) => {
+                const searchTerm = this.searchTermControl.value;
+                let filterInput = this.filters.createFilterInput();
+                if (searchTerm) {
+                    filterInput = {
                         name: {
                         name: {
-                            contains: this.searchTermControl.value,
+                            contains: searchTerm,
                         },
                         },
-                        ...this.filters.createFilterInput(),
+                        sku: {
+                            contains: searchTerm,
+                        },
+                    };
+                }
+                return {
+                    options: {
+                        skip,
+                        take,
+                        filter: {
+                            ...(filterInput ?? {}),
+                        },
+                        filterOperator: searchTerm ? LogicalOperator.OR : LogicalOperator.AND,
+                        sort: this.sorts.createSortInput(),
                     },
                     },
-                    sort: this.sorts.createSortInput(),
-                },
-            }),
+                };
+            },
             refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],
             refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],
         });
         });
     }
     }

+ 1 - 1
packages/admin-ui/src/lib/catalog/src/components/product-variant-list/product-variant-list.component.html

@@ -23,7 +23,7 @@
     />
     />
     <vdr-dt2-search
     <vdr-dt2-search
         [searchTermControl]="searchTermControl"
         [searchTermControl]="searchTermControl"
-        [searchTermPlaceholder]="'catalog.filter-by-sku' | translate"
+        [searchTermPlaceholder]="'settings.search-by-product-name-or-sku' | translate"
     />
     />
     <vdr-dt2-column [heading]="'common.id' | translate" id="id" [hiddenByDefault]="true" [sort]="sorts.get('id')">
     <vdr-dt2-column [heading]="'common.id' | translate" id="id" [hiddenByDefault]="true" [sort]="sorts.get('id')">
         <ng-template let-variant="item">
         <ng-template let-variant="item">

+ 35 - 12
packages/admin-ui/src/lib/catalog/src/components/product-variant-list/product-variant-list.component.ts

@@ -2,6 +2,8 @@ import { Component, Input, OnInit } from '@angular/core';
 import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
 import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
 import {
 import {
     DataTableLocationId,
     DataTableLocationId,
+    LogicalOperator,
+    ProductVariantFilterParameter,
     ProductVariantListQueryDocument,
     ProductVariantListQueryDocument,
     TypedBaseListComponent,
     TypedBaseListComponent,
 } from '@vendure/admin-ui/core';
 } from '@vendure/admin-ui/core';
@@ -75,20 +77,41 @@ export class ProductVariantListComponent
         this.configure({
         this.configure({
             document: ProductVariantListQueryDocument,
             document: ProductVariantListQueryDocument,
             getItems: data => data.productVariants,
             getItems: data => data.productVariants,
-            setVariables: (skip, take) => ({
-                options: {
-                    skip,
-                    take,
-                    filter: {
-                        sku: {
-                            contains: this.searchTermControl.value,
+            setVariables: (skip, take) => {
+                const searchTerm = this.searchTermControl.value;
+                const filterParam: ProductVariantFilterParameter = { _and: [] };
+                const filterInput = this.filters.createFilterInput();
+                if (Object.keys(filterInput).length) {
+                    filterParam._and?.push(filterInput);
+                }
+                if (searchTerm) {
+                    filterParam._and?.push({
+                        _or: [
+                            {
+                                name: { contains: searchTerm },
+                            },
+                            {
+                                sku: { contains: searchTerm },
+                            },
+                        ],
+                    });
+                }
+                if (this.productId) {
+                    filterParam._and?.push({
+                        productId: {
+                            eq: this.productId,
                         },
                         },
-                        ...this.filters.createFilterInput(),
-                        ...(this.productId ? { productId: { eq: this.productId } } : {}),
+                    });
+                }
+                return {
+                    options: {
+                        skip,
+                        take,
+                        filter: filterParam,
+                        sort: this.sorts.createSortInput(),
                     },
                     },
-                    sort: this.sorts.createSortInput(),
-                },
-            }),
+                };
+            },
             refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],
             refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],
         });
         });
     }
     }

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/ar.json

@@ -106,7 +106,6 @@
     "facet-values": "قيم الفئة",
     "facet-values": "قيم الفئة",
     "facets": "فئات",
     "facets": "فئات",
     "filter-by-name": "تصفية بالاسم",
     "filter-by-name": "تصفية بالاسم",
-    "filter-by-sku": "تصفية بواسطة SKU",
     "filter-inheritance": "طبيعة الإنتقاء",
     "filter-inheritance": "طبيعة الإنتقاء",
     "filters": "الإنتقاء",
     "filters": "الإنتقاء",
     "inherit-filters-from-parent": "إنتقاء موروث من الأصل",
     "inherit-filters-from-parent": "إنتقاء موروث من الأصل",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/cs.json

@@ -106,7 +106,6 @@
     "facet-values": "Hodnoty atributů",
     "facet-values": "Hodnoty atributů",
     "facets": "",
     "facets": "",
     "filter-by-name": "Filtrovat dle jména",
     "filter-by-name": "Filtrovat dle jména",
-    "filter-by-sku": "",
     "filter-inheritance": "",
     "filter-inheritance": "",
     "filters": "Filtry",
     "filters": "Filtry",
     "inherit-filters-from-parent": "",
     "inherit-filters-from-parent": "",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/de.json

@@ -106,7 +106,6 @@
     "facet-values": "Facettenwerte",
     "facet-values": "Facettenwerte",
     "facets": "Facetten",
     "facets": "Facetten",
     "filter-by-name": "Nach Name filtern",
     "filter-by-name": "Nach Name filtern",
-    "filter-by-sku": "Nach Artikelnummer filtern",
     "filter-inheritance": "Filter Vererbung",
     "filter-inheritance": "Filter Vererbung",
     "filters": "Filter",
     "filters": "Filter",
     "inherit-filters-from-parent": "Erbe Filter vom Elternteil",
     "inherit-filters-from-parent": "Erbe Filter vom Elternteil",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/en.json

@@ -106,7 +106,6 @@
     "facet-values": "Facet values",
     "facet-values": "Facet values",
     "facets": "Facets",
     "facets": "Facets",
     "filter-by-name": "Filter by name",
     "filter-by-name": "Filter by name",
-    "filter-by-sku": "Filter by SKU",
     "filter-inheritance": "Filter inheritance",
     "filter-inheritance": "Filter inheritance",
     "filters": "Filters",
     "filters": "Filters",
     "inherit-filters-from-parent": "Inherit filters from parent",
     "inherit-filters-from-parent": "Inherit filters from parent",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/es.json

@@ -106,7 +106,6 @@
     "facet-values": "Valores de faceta",
     "facet-values": "Valores de faceta",
     "facets": "Facets",
     "facets": "Facets",
     "filter-by-name": "Filtrar por nombre",
     "filter-by-name": "Filtrar por nombre",
-    "filter-by-sku": "Filtrar por código de referencia",
     "filter-inheritance": "Herencia de filtros",
     "filter-inheritance": "Herencia de filtros",
     "filters": "Filtros",
     "filters": "Filtros",
     "inherit-filters-from-parent": "Heredar filtros del nivel superior",
     "inherit-filters-from-parent": "Heredar filtros del nivel superior",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/fa.json

@@ -106,7 +106,6 @@
     "facet-values": "مقادیر ویژگی ها",
     "facet-values": "مقادیر ویژگی ها",
     "facets": "ویژگی ها",
     "facets": "ویژگی ها",
     "filter-by-name": "فیلتر براساس نام",
     "filter-by-name": "فیلتر براساس نام",
-    "filter-by-sku": "فیلتر براساس شناسه انحصاری محصول",
     "filter-inheritance": "فیلتر براساس وراثت",
     "filter-inheritance": "فیلتر براساس وراثت",
     "filters": "فیلترها",
     "filters": "فیلترها",
     "inherit-filters-from-parent": "به ارث بردن فیلترها از والد",
     "inherit-filters-from-parent": "به ارث بردن فیلترها از والد",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/fr.json

@@ -106,7 +106,6 @@
     "facet-values": "Valeurs de composant",
     "facet-values": "Valeurs de composant",
     "facets": "Composants",
     "facets": "Composants",
     "filter-by-name": "Filtrer par nom",
     "filter-by-name": "Filtrer par nom",
-    "filter-by-sku": "Filtrer par UGS",
     "filter-inheritance": "Héritage des filtres",
     "filter-inheritance": "Héritage des filtres",
     "filters": "Filtres",
     "filters": "Filtres",
     "inherit-filters-from-parent": "Hériter les filtres du parent",
     "inherit-filters-from-parent": "Hériter les filtres du parent",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/he.json

@@ -106,7 +106,6 @@
     "facet-values": "ערכי גבעול",
     "facet-values": "ערכי גבעול",
     "facets": "גבעולים",
     "facets": "גבעולים",
     "filter-by-name": "סנן לפי שם",
     "filter-by-name": "סנן לפי שם",
-    "filter-by-sku": "סנן לפי SKU",
     "filter-inheritance": "ירושת מסננים",
     "filter-inheritance": "ירושת מסננים",
     "filters": "מסננים",
     "filters": "מסננים",
     "inherit-filters-from-parent": "רש את המסננים מההורה",
     "inherit-filters-from-parent": "רש את המסננים מההורה",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/hr.json

@@ -106,7 +106,6 @@
     "facet-values": "Vrijednosti aspekta",
     "facet-values": "Vrijednosti aspekta",
     "facets": "Aspekti",
     "facets": "Aspekti",
     "filter-by-name": "Filtriraj po imenu",
     "filter-by-name": "Filtriraj po imenu",
-    "filter-by-sku": "Filtriraj po SKU",
     "filter-inheritance": "Nasljeđivanje filtera",
     "filter-inheritance": "Nasljeđivanje filtera",
     "filters": "Filteri",
     "filters": "Filteri",
     "inherit-filters-from-parent": "Naslijedi filtere od roditelja",
     "inherit-filters-from-parent": "Naslijedi filtere od roditelja",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/it.json

@@ -106,7 +106,6 @@
     "facet-values": "Valori attributo",
     "facet-values": "Valori attributo",
     "facets": "Attributi",
     "facets": "Attributi",
     "filter-by-name": "Filtra per nome",
     "filter-by-name": "Filtra per nome",
-    "filter-by-sku": "Filtra per codice SKU",
     "filter-inheritance": "Ereditarietà filtri",
     "filter-inheritance": "Ereditarietà filtri",
     "filters": "Filtri",
     "filters": "Filtri",
     "inherit-filters-from-parent": "Eredita filtri dal padre",
     "inherit-filters-from-parent": "Eredita filtri dal padre",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/ne.json

@@ -106,7 +106,6 @@
     "facet-values": "मूल्यहरू",
     "facet-values": "मूल्यहरू",
     "facets": "मूल्यहरू",
     "facets": "मूल्यहरू",
     "filter-by-name": "नामद्वारा फिल्टर गर्नुहोस्",
     "filter-by-name": "नामद्वारा फिल्टर गर्नुहोस्",
-    "filter-by-sku": "एसक्यूका अनुसार फिल्टर गर्नुहोस्",
     "filter-inheritance": "फिल्टर उत्तराधिकार",
     "filter-inheritance": "फिल्टर उत्तराधिकार",
     "filters": "फिल्टरहरू",
     "filters": "फिल्टरहरू",
     "inherit-filters-from-parent": "उत्तराधिकारीबाट फिल्टरहरू समावेश गर्नुहोस्",
     "inherit-filters-from-parent": "उत्तराधिकारीबाट फिल्टरहरू समावेश गर्नुहोस्",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/pl.json

@@ -106,7 +106,6 @@
     "facet-values": "Wartości faseta",
     "facet-values": "Wartości faseta",
     "facets": "",
     "facets": "",
     "filter-by-name": "Filtruj po nazwie",
     "filter-by-name": "Filtruj po nazwie",
-    "filter-by-sku": "Filtruj według SKU",
     "filter-inheritance": "",
     "filter-inheritance": "",
     "filters": "Filtry",
     "filters": "Filtry",
     "inherit-filters-from-parent": "",
     "inherit-filters-from-parent": "",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/pt_BR.json

@@ -106,7 +106,6 @@
     "facet-values": "Valor da Etiqueta",
     "facet-values": "Valor da Etiqueta",
     "facets": "Etiquetas",
     "facets": "Etiquetas",
     "filter-by-name": "Filtrar por nome",
     "filter-by-name": "Filtrar por nome",
-    "filter-by-sku": "Filtrar por SKU",
     "filter-inheritance": "Filtrar herança",
     "filter-inheritance": "Filtrar herança",
     "filters": "Filtros",
     "filters": "Filtros",
     "inherit-filters-from-parent": "Herdar filtros do pai",
     "inherit-filters-from-parent": "Herdar filtros do pai",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/pt_PT.json

@@ -106,7 +106,6 @@
     "facet-values": "Valor da Etiqueta",
     "facet-values": "Valor da Etiqueta",
     "facets": "",
     "facets": "",
     "filter-by-name": "Filtrar por nome",
     "filter-by-name": "Filtrar por nome",
-    "filter-by-sku": "Filtrar por SKU",
     "filter-inheritance": "",
     "filter-inheritance": "",
     "filters": "Filtros",
     "filters": "Filtros",
     "inherit-filters-from-parent": "",
     "inherit-filters-from-parent": "",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/ru.json

@@ -106,7 +106,6 @@
     "facet-values": "Значения тега",
     "facet-values": "Значения тега",
     "facets": "Теги",
     "facets": "Теги",
     "filter-by-name": "Фильтр по имени",
     "filter-by-name": "Фильтр по имени",
-    "filter-by-sku": "Фильтровать по SKU",
     "filter-inheritance": "Наследование фильтра",
     "filter-inheritance": "Наследование фильтра",
     "filters": "Фильтры",
     "filters": "Фильтры",
     "inherit-filters-from-parent": "Наследовать фильтры от родительского",
     "inherit-filters-from-parent": "Наследовать фильтры от родительского",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/uk.json

@@ -106,7 +106,6 @@
     "facet-values": "Значення тегу",
     "facet-values": "Значення тегу",
     "facets": "",
     "facets": "",
     "filter-by-name": "Фільтр по імені",
     "filter-by-name": "Фільтр по імені",
-    "filter-by-sku": "Фільтрувати за SKU",
     "filter-inheritance": "",
     "filter-inheritance": "",
     "filters": "Фільтри",
     "filters": "Фільтри",
     "inherit-filters-from-parent": "",
     "inherit-filters-from-parent": "",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/zh_Hans.json

@@ -106,7 +106,6 @@
     "facet-values": "特征值列表",
     "facet-values": "特征值列表",
     "facets": "",
     "facets": "",
     "filter-by-name": "按名字过滤",
     "filter-by-name": "按名字过滤",
-    "filter-by-sku": "按SKU筛选",
     "filter-inheritance": "",
     "filter-inheritance": "",
     "filters": "过滤条件",
     "filters": "过滤条件",
     "inherit-filters-from-parent": "",
     "inherit-filters-from-parent": "",

+ 0 - 1
packages/admin-ui/src/lib/static/i18n-messages/zh_Hant.json

@@ -106,7 +106,6 @@
     "facet-values": "特徵值列表",
     "facet-values": "特徵值列表",
     "facets": "",
     "facets": "",
     "filter-by-name": "按名字篩選",
     "filter-by-name": "按名字篩選",
-    "filter-by-sku": "依照SKU篩選",
     "filter-inheritance": "",
     "filter-inheritance": "",
     "filters": "篩選條件",
     "filters": "篩選條件",
     "inherit-filters-from-parent": "",
     "inherit-filters-from-parent": "",