From 8452300ac7407d04794507cee99cf4436e4fce71 Mon Sep 17 00:00:00 2001 From: Michael Bromley Date: Tue, 26 Sep 2023 16:36:44 +0200 Subject: [PATCH] feat(admin-ui): Improve naming & layout of catalog & stock locations BREAKING CHANGE: In the Admin UI, the "stock locations" list and detail views have been moved from the "catalog" module to the "settings" module. Also, the menu item & breadcrumb for "inventory" has been renamed to "products". This is an end-user breaking change rather than a code breaking change. Any UI extensions that link to a `/catalog/inventory/...` route will still work as there is a redirect in place to `/catalog/products/...`. --- packages/admin-ui/i18n-coverage.json | 70 +++++++++---------- .../src/lib/catalog/src/catalog.module.ts | 64 +++++++---------- .../src/lib/catalog/src/catalog.routes.ts | 39 ++++------- .../collection-contents.component.html | 2 +- .../product-variant-list.component.html | 2 +- .../product-variant-quick-jump.component.ts | 2 +- .../src/lib/catalog/src/public_api.ts | 3 - .../components/base-nav/base-nav.component.ts | 13 +++- .../stock-location-detail.component.html | 0 .../stock-location-detail.component.scss | 0 .../stock-location-detail.component.ts | 0 .../stock-location-list-bulk-actions.ts | 0 .../stock-location-list.component.html | 0 .../stock-location-list.component.scss | 0 .../stock-location-list.component.ts | 0 .../src/lib/settings/src/settings.module.ts | 40 ++++++++++- .../src/lib/settings/src/settings.routes.ts | 18 +++++ .../src/lib/static/i18n-messages/ar.json | 5 +- .../src/lib/static/i18n-messages/cs.json | 11 +-- .../src/lib/static/i18n-messages/de.json | 5 +- .../src/lib/static/i18n-messages/en.json | 5 +- .../src/lib/static/i18n-messages/es.json | 5 +- .../src/lib/static/i18n-messages/fr.json | 7 +- .../src/lib/static/i18n-messages/he.json | 5 +- .../src/lib/static/i18n-messages/it.json | 5 +- .../src/lib/static/i18n-messages/pl.json | 7 +- .../src/lib/static/i18n-messages/pt_BR.json | 5 +- .../src/lib/static/i18n-messages/pt_PT.json | 19 ++--- .../src/lib/static/i18n-messages/ru.json | 5 +- .../src/lib/static/i18n-messages/uk.json | 13 ++-- .../src/lib/static/i18n-messages/zh_Hans.json | 11 +-- .../src/lib/static/i18n-messages/zh_Hant.json | 11 +-- 32 files changed, 212 insertions(+), 160 deletions(-) rename packages/admin-ui/src/lib/{catalog => settings}/src/components/stock-location-detail/stock-location-detail.component.html (100%) rename packages/admin-ui/src/lib/{catalog => settings}/src/components/stock-location-detail/stock-location-detail.component.scss (100%) rename packages/admin-ui/src/lib/{catalog => settings}/src/components/stock-location-detail/stock-location-detail.component.ts (100%) rename packages/admin-ui/src/lib/{catalog => settings}/src/components/stock-location-list/stock-location-list-bulk-actions.ts (100%) rename packages/admin-ui/src/lib/{catalog => settings}/src/components/stock-location-list/stock-location-list.component.html (100%) rename packages/admin-ui/src/lib/{catalog => settings}/src/components/stock-location-list/stock-location-list.component.scss (100%) rename packages/admin-ui/src/lib/{catalog => settings}/src/components/stock-location-list/stock-location-list.component.ts (100%) diff --git a/packages/admin-ui/i18n-coverage.json b/packages/admin-ui/i18n-coverage.json index 4016c6e66e..531be09bde 100644 --- a/packages/admin-ui/i18n-coverage.json +++ b/packages/admin-ui/i18n-coverage.json @@ -1,80 +1,80 @@ { - "generatedOn": "2023-09-26T07:24:07.342Z", - "lastCommit": "f0e50f55799dd812700da1876479466694ae648b", + "generatedOn": "2023-09-26T12:56:03.801Z", + "lastCommit": "fee995c967c5487e979e374802f651ce3120db6d", "translationStatus": { "ar": { - "tokenCount": 759, - "translatedCount": 758, + "tokenCount": 760, + "translatedCount": 757, "percentage": 100 }, "cs": { - "tokenCount": 759, - "translatedCount": 563, + "tokenCount": 760, + "translatedCount": 564, "percentage": 74 }, "de": { - "tokenCount": 759, - "translatedCount": 758, + "tokenCount": 760, + "translatedCount": 757, "percentage": 100 }, "en": { - "tokenCount": 759, - "translatedCount": 758, + "tokenCount": 760, + "translatedCount": 757, "percentage": 100 }, "es": { - "tokenCount": 759, - "translatedCount": 758, + "tokenCount": 760, + "translatedCount": 757, "percentage": 100 }, "fr": { - "tokenCount": 759, - "translatedCount": 754, + "tokenCount": 760, + "translatedCount": 753, "percentage": 99 }, "he": { - "tokenCount": 759, - "translatedCount": 758, + "tokenCount": 760, + "translatedCount": 757, "percentage": 100 }, "it": { - "tokenCount": 759, - "translatedCount": 757, - "percentage": 100 + "tokenCount": 760, + "translatedCount": 756, + "percentage": 99 }, "pl": { - "tokenCount": 759, - "translatedCount": 398, - "percentage": 52 + "tokenCount": 760, + "translatedCount": 399, + "percentage": 53 }, "pt_BR": { - "tokenCount": 759, - "translatedCount": 757, - "percentage": 100 + "tokenCount": 760, + "translatedCount": 756, + "percentage": 99 }, "pt_PT": { - "tokenCount": 759, - "translatedCount": 597, + "tokenCount": 760, + "translatedCount": 598, "percentage": 79 }, "ru": { - "tokenCount": 759, - "translatedCount": 758, + "tokenCount": 760, + "translatedCount": 757, "percentage": 100 }, "uk": { - "tokenCount": 759, - "translatedCount": 587, + "tokenCount": 760, + "translatedCount": 588, "percentage": 77 }, "zh_Hans": { - "tokenCount": 759, - "translatedCount": 533, + "tokenCount": 760, + "translatedCount": 534, "percentage": 70 }, "zh_Hant": { - "tokenCount": 759, - "translatedCount": 379, + "tokenCount": 760, + "translatedCount": 380, "percentage": 50 } } diff --git a/packages/admin-ui/src/lib/catalog/src/catalog.module.ts b/packages/admin-ui/src/lib/catalog/src/catalog.module.ts index 99b585acb4..eb39d6ef01 100644 --- a/packages/admin-ui/src/lib/catalog/src/catalog.module.ts +++ b/packages/admin-ui/src/lib/catalog/src/catalog.module.ts @@ -66,13 +66,6 @@ import { import { ProductVariantQuickJumpComponent } from './components/product-variant-quick-jump/product-variant-quick-jump.component'; import { ProductVariantsEditorComponent } from './components/product-variants-editor/product-variants-editor.component'; import { ProductVariantsTableComponent } from './components/product-variants-table/product-variants-table.component'; -import { StockLocationDetailComponent } from './components/stock-location-detail/stock-location-detail.component'; -import { - assignStockLocationsToChannelBulkAction, - deleteStockLocationsBulkAction, - removeStockLocationsFromChannelBulkAction, -} from './components/stock-location-list/stock-location-list-bulk-actions'; -import { StockLocationListComponent } from './components/stock-location-list/stock-location-list.component'; import { UpdateProductOptionDialogComponent } from './components/update-product-option-dialog/update-product-option-dialog.component'; import { VariantPriceDetailComponent } from './components/variant-price-detail/variant-price-detail.component'; @@ -109,13 +102,12 @@ const CATALOG_COMPONENTS = [ CreateProductVariantDialogComponent, CreateProductOptionGroupDialogComponent, ProductVariantQuickJumpComponent, - StockLocationListComponent, ]; @NgModule({ imports: [SharedModule, RouterModule.forChild([])], exports: [...CATALOG_COMPONENTS], - declarations: [...CATALOG_COMPONENTS, StockLocationDetailComponent], + declarations: [...CATALOG_COMPONENTS], providers: [ { provide: ROUTES, @@ -147,10 +139,6 @@ export class CatalogModule { bulkActionRegistryService.registerBulkAction(removeCollectionsFromChannelBulkAction); bulkActionRegistryService.registerBulkAction(deleteCollectionsBulkAction); - bulkActionRegistryService.registerBulkAction(assignStockLocationsToChannelBulkAction); - bulkActionRegistryService.registerBulkAction(removeStockLocationsFromChannelBulkAction); - bulkActionRegistryService.registerBulkAction(deleteStockLocationsBulkAction); - pageService.registerPageTab({ priority: 0, location: 'product-list', @@ -182,30 +170,30 @@ export class CatalogModule { route: 'variants', component: ProductVariantListComponent, }); - pageService.registerPageTab({ - priority: 0, - location: 'stock-location-detail', - tab: _('catalog.stock-location'), - route: '', - component: detailComponentWithResolver({ - component: StockLocationDetailComponent, - query: GetStockLocationDetailDocument, - entityKey: 'stockLocation', - getBreadcrumbs: entity => [ - { - label: entity ? entity.name : _('catalog.create-new-stock-location'), - link: [entity?.id], - }, - ], - }), - }); - pageService.registerPageTab({ - priority: 0, - location: 'product-list', - tab: _('catalog.stock-locations'), - route: 'stock-locations', - component: StockLocationListComponent, - }); + // pageService.registerPageTab({ + // priority: 0, + // location: 'stock-location-detail', + // tab: _('catalog.stock-location'), + // route: '', + // component: detailComponentWithResolver({ + // component: StockLocationDetailComponent, + // query: GetStockLocationDetailDocument, + // entityKey: 'stockLocation', + // getBreadcrumbs: entity => [ + // { + // label: entity ? entity.name : _('catalog.create-new-stock-location'), + // link: [entity?.id], + // }, + // ], + // }), + // }); + // pageService.registerPageTab({ + // priority: 0, + // location: 'product-list', + // tab: _('catalog.stock-locations'), + // route: 'stock-locations', + // component: StockLocationListComponent, + // }); pageService.registerPageTab({ priority: 0, location: 'product-variant-detail', @@ -218,7 +206,7 @@ export class CatalogModule { getBreadcrumbs: entity => [ { label: `${entity?.product.name}`, - link: ['/catalog', 'inventory', entity?.product.id], + link: ['/catalog', 'products', entity?.product.id], }, { label: `${entity?.name} (${entity?.sku})`, diff --git a/packages/admin-ui/src/lib/catalog/src/catalog.routes.ts b/packages/admin-ui/src/lib/catalog/src/catalog.routes.ts index ddaa1b8080..74ad6b287c 100644 --- a/packages/admin-ui/src/lib/catalog/src/catalog.routes.ts +++ b/packages/admin-ui/src/lib/catalog/src/catalog.routes.ts @@ -15,20 +15,24 @@ import { ProductVariantsResolver } from './providers/routing/product-variants-re export const createRoutes = (pageService: PageService): Route[] => [ { - path: 'inventory', + path: 'products', component: PageComponent, data: { locationId: 'product-list', - breadcrumb: _('breadcrumb.inventory'), + breadcrumb: _('breadcrumb.products'), }, children: pageService.getPageTabRoutes('product-list'), }, { - path: 'inventory/:id', + path: 'inventory', + redirectTo: 'products', + }, + { + path: 'products/:id', component: PageComponent, data: { locationId: 'product-detail', - breadcrumb: { label: _('breadcrumb.inventory'), link: ['../', 'inventory'] }, + breadcrumb: { label: _('breadcrumb.products'), link: ['../', 'products'] }, }, children: [ { @@ -58,16 +62,16 @@ export const createRoutes = (pageService: PageService): Route[] => [ ], }, { - path: 'inventory/:productId/variants/:id', + path: 'products/:productId/variants/:id', component: PageComponent, data: { locationId: 'product-variant-detail', - breadcrumb: { label: _('breadcrumb.inventory'), link: ['../', 'inventory'] }, + breadcrumb: { label: _('breadcrumb.products'), link: ['../', 'products'] }, }, children: pageService.getPageTabRoutes('product-variant-detail'), }, { - path: 'inventory/:id/options', + path: 'products/:id/options', component: ProductOptionsEditorComponent, resolve: createResolveData(ProductVariantsResolver), canDeactivate: [CanDeactivateDetailGuard], @@ -75,21 +79,6 @@ export const createRoutes = (pageService: PageService): Route[] => [ breadcrumb: productOptionsEditorBreadcrumb, }, }, - { - path: 'inventory/stock-locations/:id', - component: PageComponent, - data: { - locationId: 'stock-location-detail', - breadcrumb: [ - { label: _('breadcrumb.inventory'), link: ['../', 'inventory'] }, - { - label: _('breadcrumb.stock-locations'), - link: ['../', 'inventory', 'stock-locations'], - }, - ], - }, - children: pageService.getPageTabRoutes('stock-location-detail'), - }, { path: 'facets', component: PageComponent, @@ -150,12 +139,12 @@ export function productOptionsEditorBreadcrumb(data: any, params: any) { return data.entity.pipe( map((entity: any) => [ { - label: _('breadcrumb.inventory'), - link: ['../', 'inventory'], + label: _('breadcrumb.products'), + link: ['../', 'products'], }, { label: `${entity.name}`, - link: ['../', 'inventory', params.id], + link: ['../', 'products', params.id], }, { label: _('breadcrumb.product-options'), diff --git a/packages/admin-ui/src/lib/catalog/src/components/collection-contents/collection-contents.component.html b/packages/admin-ui/src/lib/catalog/src/components/collection-contents/collection-contents.component.html index 7b428d6eb8..d6e8dc5a72 100644 --- a/packages/admin-ui/src/lib/catalog/src/components/collection-contents/collection-contents.component.html +++ b/packages/admin-ui/src/lib/catalog/src/components/collection-contents/collection-contents.component.html @@ -36,7 +36,7 @@ - {{ variant.name }} diff --git a/packages/admin-ui/src/lib/catalog/src/components/product-variant-list/product-variant-list.component.html b/packages/admin-ui/src/lib/catalog/src/components/product-variant-list/product-variant-list.component.html index 2d97c1d677..1b11b1eb38 100644 --- a/packages/admin-ui/src/lib/catalog/src/components/product-variant-list/product-variant-list.component.html +++ b/packages/admin-ui/src/lib/catalog/src/components/product-variant-list/product-variant-list.component.html @@ -67,7 +67,7 @@ {{ variant.name }} diff --git a/packages/admin-ui/src/lib/catalog/src/components/product-variant-quick-jump/product-variant-quick-jump.component.ts b/packages/admin-ui/src/lib/catalog/src/components/product-variant-quick-jump/product-variant-quick-jump.component.ts index b49742e2e4..a72ea26816 100644 --- a/packages/admin-ui/src/lib/catalog/src/components/product-variant-quick-jump/product-variant-quick-jump.component.ts +++ b/packages/admin-ui/src/lib/catalog/src/components/product-variant-quick-jump/product-variant-quick-jump.component.ts @@ -51,7 +51,7 @@ export class ProductVariantQuickJumpComponent implements OnInit { onSelect(item?: NonNullable['variants'][number]) { if (item) { this.router - .navigate(['catalog', 'inventory', this.productId, 'variants', item.id]) + .navigate(['catalog', 'products', this.productId, 'variants', item.id]) .then(() => (this.selectedVariantId = undefined)); } } diff --git a/packages/admin-ui/src/lib/catalog/src/public_api.ts b/packages/admin-ui/src/lib/catalog/src/public_api.ts index 3294f2d897..76115e3118 100644 --- a/packages/admin-ui/src/lib/catalog/src/public_api.ts +++ b/packages/admin-ui/src/lib/catalog/src/public_api.ts @@ -41,9 +41,6 @@ export * from './components/product-variant-list/product-variant-list.graphql'; export * from './components/product-variant-quick-jump/product-variant-quick-jump.component'; export * from './components/product-variants-editor/product-variants-editor.component'; export * from './components/product-variants-table/product-variants-table.component'; -export * from './components/stock-location-detail/stock-location-detail.component'; -export * from './components/stock-location-list/stock-location-list-bulk-actions'; -export * from './components/stock-location-list/stock-location-list.component'; export * from './components/update-product-option-dialog/update-product-option-dialog.component'; export * from './components/variant-price-detail/variant-price-detail.component'; export * from './providers/product-detail/product-detail.service'; diff --git a/packages/admin-ui/src/lib/core/src/components/base-nav/base-nav.component.ts b/packages/admin-ui/src/lib/core/src/components/base-nav/base-nav.component.ts index 66b8d6df07..9df0b3bf5c 100644 --- a/packages/admin-ui/src/lib/core/src/components/base-nav/base-nav.component.ts +++ b/packages/admin-ui/src/lib/core/src/components/base-nav/base-nav.component.ts @@ -95,10 +95,10 @@ export class BaseNavComponent implements OnInit, OnDestroy { items: [ { requiresPermission: allow(Permission.ReadCatalog, Permission.ReadProduct), - id: 'inventory', - label: _('nav.inventory'), + id: 'products', + label: _('nav.products'), icon: 'library', - routerLink: ['/catalog', 'inventory'], + routerLink: ['/catalog', 'products'], }, { requiresPermission: allow(Permission.ReadCatalog, Permission.ReadFacet), @@ -206,6 +206,13 @@ export class BaseNavComponent implements OnInit, OnDestroy { routerLink: ['/settings', 'channels'], icon: 'layers', }, + { + requiresPermission: allow(Permission.ReadStockLocation), + id: 'stock-locations', + label: _('nav.stock-locations'), + icon: 'map-marker', + routerLink: ['/settings', 'stock-locations'], + }, { requiresPermission: allow(Permission.ReadAdministrator), id: 'administrators', diff --git a/packages/admin-ui/src/lib/catalog/src/components/stock-location-detail/stock-location-detail.component.html b/packages/admin-ui/src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.html similarity index 100% rename from packages/admin-ui/src/lib/catalog/src/components/stock-location-detail/stock-location-detail.component.html rename to packages/admin-ui/src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.html diff --git a/packages/admin-ui/src/lib/catalog/src/components/stock-location-detail/stock-location-detail.component.scss b/packages/admin-ui/src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.scss similarity index 100% rename from packages/admin-ui/src/lib/catalog/src/components/stock-location-detail/stock-location-detail.component.scss rename to packages/admin-ui/src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.scss diff --git a/packages/admin-ui/src/lib/catalog/src/components/stock-location-detail/stock-location-detail.component.ts b/packages/admin-ui/src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.ts similarity index 100% rename from packages/admin-ui/src/lib/catalog/src/components/stock-location-detail/stock-location-detail.component.ts rename to packages/admin-ui/src/lib/settings/src/components/stock-location-detail/stock-location-detail.component.ts diff --git a/packages/admin-ui/src/lib/catalog/src/components/stock-location-list/stock-location-list-bulk-actions.ts b/packages/admin-ui/src/lib/settings/src/components/stock-location-list/stock-location-list-bulk-actions.ts similarity index 100% rename from packages/admin-ui/src/lib/catalog/src/components/stock-location-list/stock-location-list-bulk-actions.ts rename to packages/admin-ui/src/lib/settings/src/components/stock-location-list/stock-location-list-bulk-actions.ts diff --git a/packages/admin-ui/src/lib/catalog/src/components/stock-location-list/stock-location-list.component.html b/packages/admin-ui/src/lib/settings/src/components/stock-location-list/stock-location-list.component.html similarity index 100% rename from packages/admin-ui/src/lib/catalog/src/components/stock-location-list/stock-location-list.component.html rename to packages/admin-ui/src/lib/settings/src/components/stock-location-list/stock-location-list.component.html diff --git a/packages/admin-ui/src/lib/catalog/src/components/stock-location-list/stock-location-list.component.scss b/packages/admin-ui/src/lib/settings/src/components/stock-location-list/stock-location-list.component.scss similarity index 100% rename from packages/admin-ui/src/lib/catalog/src/components/stock-location-list/stock-location-list.component.scss rename to packages/admin-ui/src/lib/settings/src/components/stock-location-list/stock-location-list.component.scss diff --git a/packages/admin-ui/src/lib/catalog/src/components/stock-location-list/stock-location-list.component.ts b/packages/admin-ui/src/lib/settings/src/components/stock-location-list/stock-location-list.component.ts similarity index 100% rename from packages/admin-ui/src/lib/catalog/src/components/stock-location-list/stock-location-list.component.ts rename to packages/admin-ui/src/lib/settings/src/components/stock-location-list/stock-location-list.component.ts diff --git a/packages/admin-ui/src/lib/settings/src/settings.module.ts b/packages/admin-ui/src/lib/settings/src/settings.module.ts index 7b8544545e..33cfc59632 100644 --- a/packages/admin-ui/src/lib/settings/src/settings.module.ts +++ b/packages/admin-ui/src/lib/settings/src/settings.module.ts @@ -7,11 +7,11 @@ import { GetAdministratorDetailDocument, GetChannelDetailDocument, GetCountryDetailDocument, - GetGlobalSettingsDetailDocument, GetPaymentMethodDetailDocument, GetRoleDetailDocument, GetSellerDetailDocument, GetShippingMethodDetailDocument, + GetStockLocationDetailDocument, GetTaxCategoryDetailDocument, GetTaxRateDetailDocument, GetZoneDetailDocument, @@ -55,6 +55,13 @@ import { } from './components/shipping-method-list/shipping-method-list-bulk-actions'; import { ShippingMethodListComponent } from './components/shipping-method-list/shipping-method-list.component'; import { ShippingMethodTestResultComponent } from './components/shipping-method-test-result/shipping-method-test-result.component'; +import { StockLocationDetailComponent } from './components/stock-location-detail/stock-location-detail.component'; +import { + assignStockLocationsToChannelBulkAction, + deleteStockLocationsBulkAction, + removeStockLocationsFromChannelBulkAction, +} from './components/stock-location-list/stock-location-list-bulk-actions'; +import { StockLocationListComponent } from './components/stock-location-list/stock-location-list.component'; import { TaxCategoryDetailComponent } from './components/tax-category-detail/tax-category-detail.component'; import { deleteTaxCategoriesBulkAction } from './components/tax-category-list/tax-category-list-bulk-actions'; import { TaxCategoryListComponent } from './components/tax-category-list/tax-category-list.component'; @@ -116,6 +123,8 @@ import { createRoutes } from './settings.routes'; ProfileComponent, TestShippingMethodsComponent, ZoneDetailComponent, + StockLocationListComponent, + StockLocationDetailComponent, ], }) export class SettingsModule { @@ -146,6 +155,10 @@ export class SettingsModule { bulkActionRegistryService.registerBulkAction(removeZoneMembersBulkAction); + bulkActionRegistryService.registerBulkAction(assignStockLocationsToChannelBulkAction); + bulkActionRegistryService.registerBulkAction(removeStockLocationsFromChannelBulkAction); + bulkActionRegistryService.registerBulkAction(deleteStockLocationsBulkAction); + pageService.registerPageTab({ priority: 0, location: 'seller-list', @@ -413,5 +426,30 @@ export class SettingsModule { route: '', component: ProfileComponent, }); + + pageService.registerPageTab({ + priority: 0, + location: 'stock-location-list', + tab: _('catalog.stock-locations'), + route: '', + component: StockLocationListComponent, + }); + pageService.registerPageTab({ + priority: 0, + location: 'stock-location-detail', + tab: _('catalog.stock-location'), + route: '', + component: detailComponentWithResolver({ + component: StockLocationDetailComponent, + query: GetStockLocationDetailDocument, + entityKey: 'stockLocation', + getBreadcrumbs: entity => [ + { + label: entity ? entity.name : _('catalog.create-new-stock-location'), + link: [entity?.id], + }, + ], + }), + }); } } diff --git a/packages/admin-ui/src/lib/settings/src/settings.routes.ts b/packages/admin-ui/src/lib/settings/src/settings.routes.ts index 9f9a24d3d2..652f82e73a 100644 --- a/packages/admin-ui/src/lib/settings/src/settings.routes.ts +++ b/packages/admin-ui/src/lib/settings/src/settings.routes.ts @@ -61,6 +61,24 @@ export const createRoutes = (pageService: PageService): Route[] => [ }, children: pageService.getPageTabRoutes('channel-detail'), }, + { + path: 'stock-locations', + component: PageComponent, + data: { + locationId: 'stock-location-list', + breadcrumb: _('breadcrumb.stock-locations'), + }, + children: pageService.getPageTabRoutes('stock-location-list'), + }, + { + path: 'stock-locations/:id', + component: PageComponent, + data: { + locationId: 'stock-location-list', + breadcrumb: { label: _('breadcrumb.stock-locations'), link: ['../', 'stock-locations'] }, + }, + children: pageService.getPageTabRoutes('stock-location-detail'), + }, { path: 'sellers', component: PageComponent, diff --git a/packages/admin-ui/src/lib/static/i18n-messages/ar.json b/packages/admin-ui/src/lib/static/i18n-messages/ar.json index c8e7409951..606d1c2185 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/ar.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/ar.json @@ -35,13 +35,13 @@ "dashboard": "لوحة التحكم", "facets": "فئات", "global-settings": "الاعدادات العامة", - "inventory": "جرد", "job-queue": "ذيل الوظيفة", "manage-variants": "إدارة المتغيرات", "modifying": "تعديل", "orders": "طلبيات", "payment-methods": "طرق الدفع", "product-options": "خيارات المنتج", + "products": "منتجات", "profile": "حساب تعريفي", "promotions": "العروض", "roles": "الأدوار", @@ -510,17 +510,18 @@ "customers": "عملاء", "facets": "فئات", "global-settings": "الاعدادات العامة", - "inventory": "جرد", "job-queue": "ذيل الوظيفة", "marketing": "تسويق", "orders": "طلبيات", "payment-methods": "طرق الدفع", + "products": "منتجات", "promotions": "العروض", "roles": "الأدوار", "sales": "مبيعات", "sellers": "البائعون", "settings": "إعدادات", "shipping-methods": "طرق الشحن", + "stock-locations": "مواقع الأسهم", "system": "نظام", "system-status": "حالة النظام", "tax-categories": "فئات الضرائب", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/cs.json b/packages/admin-ui/src/lib/static/i18n-messages/cs.json index 78509f98a6..8cfdbc7c8c 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/cs.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/cs.json @@ -35,20 +35,20 @@ "dashboard": "Nástěnka", "facets": "Atributy", "global-settings": "Všeobecné nastavení", - "inventory": "", "job-queue": "Fronta úloh", "manage-variants": "Správa variant", "modifying": "Úpravy", "orders": "Objednávky", "payment-methods": "Platební metody", "product-options": "", + "products": "Produkty", "profile": "Profil", "promotions": "Propagace", "roles": "Role", "seller-orders": "", "sellers": "", "shipping-methods": "Dopravní metody", - "stock-locations": "", + "stock-locations": "Místa skladování", "system-status": "Status systému", "tax-categories": "Daňové kategorie", "tax-rates": "Daňové sazby", @@ -147,7 +147,7 @@ "product-options": "", "product-variant-exists": "", "product-variants": "Varianty produktu", - "products": "", + "products": "Produkty", "public": "Veřejný", "quick-jump-placeholder": "", "rebuild-search-index": "Obnovit vyhledávací index", @@ -173,7 +173,7 @@ "stock-allocated": "Alokováno", "stock-levels": "", "stock-location": "", - "stock-locations": "", + "stock-locations": "Místa skladování", "stock-on-hand": "Sklad", "tax-category": "Skupina daní", "taxes": "Daně", @@ -510,17 +510,18 @@ "customers": "Zákazníci", "facets": "Atributy", "global-settings": "Globální nastavení", - "inventory": "", "job-queue": "Fronta úloh", "marketing": "Marketing", "orders": "Objednávky", "payment-methods": "Platební metody", + "products": "Produkty", "promotions": "Propagace", "roles": "Role", "sales": "Prodeje", "sellers": "", "settings": "Nastavení", "shipping-methods": "Dopravní metody", + "stock-locations": "Místa skladování", "system": "Systém", "system-status": "Status systému", "tax-categories": "Daňové kategorie", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/de.json b/packages/admin-ui/src/lib/static/i18n-messages/de.json index beafcaa911..0bdffa18cf 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/de.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/de.json @@ -35,13 +35,13 @@ "dashboard": "Dashboard", "facets": "Facetten", "global-settings": "Globale Einstellungen", - "inventory": "Inventar", "job-queue": "Job-Warteschlange", "manage-variants": "Varianten verwalten", "modifying": "Bearbeiten", "orders": "Bestellungen", "payment-methods": "Zahlungsarten", "product-options": "Produktoptionen", + "products": "Produkte", "profile": "Profil", "promotions": "Promotionen", "roles": "Rollen", @@ -510,17 +510,18 @@ "customers": "Kunden", "facets": "Facetten", "global-settings": "Globale Einstellungen", - "inventory": "Inventar", "job-queue": "Job-Warteschlange", "marketing": "Marketing", "orders": "Bestellungen", "payment-methods": "Zahlungsarten", + "products": "Produkte", "promotions": "Werbeaktionen", "roles": "Rollen", "sales": "Verkäufe", "sellers": "Verkäufer", "settings": "Einstellungen", "shipping-methods": "Versandarten", + "stock-locations": "Lagerorte", "system": "System", "system-status": "Systemstatus", "tax-categories": "Steuerkategorien", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/en.json b/packages/admin-ui/src/lib/static/i18n-messages/en.json index 57fa36821d..15e1bdf302 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/en.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/en.json @@ -35,13 +35,13 @@ "dashboard": "Dashboard", "facets": "Facets", "global-settings": "Global settings", - "inventory": "Inventory", "job-queue": "Job queue", "manage-variants": "Manage variants", "modifying": "Modifying", "orders": "Orders", "payment-methods": "Payment methods", "product-options": "Product options", + "products": "Products", "profile": "Profile", "promotions": "Promotions", "roles": "Roles", @@ -510,17 +510,18 @@ "customers": "Customers", "facets": "Facets", "global-settings": "Global settings", - "inventory": "Inventory", "job-queue": "Job queue", "marketing": "Marketing", "orders": "Orders", "payment-methods": "Payment methods", + "products": "Products", "promotions": "Promotions", "roles": "Roles", "sales": "Sales", "sellers": "Sellers", "settings": "Settings", "shipping-methods": "Shipping methods", + "stock-locations": "Stock locations", "system": "System", "system-status": "System Status", "tax-categories": "Tax categories", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/es.json b/packages/admin-ui/src/lib/static/i18n-messages/es.json index 08799b2ca3..a5f80a4797 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/es.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/es.json @@ -35,13 +35,13 @@ "dashboard": "Panel de control", "facets": "Etiquetas", "global-settings": "Ajustes globales", - "inventory": "Inventario", "job-queue": "Cola de tareas", "manage-variants": "Gestionar variantes", "modifying": "Modificando", "orders": "Pedidos", "payment-methods": "Métodos de pago", "product-options": "Opciones de producto", + "products": "Productos", "profile": "Perfil", "promotions": "Promociones", "roles": "Roles", @@ -510,17 +510,18 @@ "customers": "Clientes", "facets": "Etiquetas", "global-settings": "Ajustes globales", - "inventory": "Inventario", "job-queue": "Cola de trabajos", "marketing": "Marketing", "orders": "Pedidos", "payment-methods": "Pagos", + "products": "Productos", "promotions": "Promociones", "roles": "Roles", "sales": "Ventas", "sellers": "Vendedores", "settings": "Ajustes", "shipping-methods": "Envíos", + "stock-locations": "Almacenes", "system": "Sistema", "system-status": "Estado del sistema", "tax-categories": "Impuestos", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/fr.json b/packages/admin-ui/src/lib/static/i18n-messages/fr.json index c2a5bed504..718827540c 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/fr.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/fr.json @@ -35,13 +35,13 @@ "dashboard": "Tableau de Bord", "facets": "Composants", "global-settings": "Paramètres globaux", - "inventory": "Inventaire", "job-queue": "File d'attente de tâches", "manage-variants": "Gestion des variations", "modifying": "Modification", "orders": "Commandes", "payment-methods": "Modes de paiement", - "product-options": "", + "product-options": "Options de produit", + "products": "Produits", "profile": "Profil", "promotions": "Promotions", "roles": "Roles", @@ -510,17 +510,18 @@ "customers": "Clients", "facets": "Composants", "global-settings": "Réglages globaux", - "inventory": "Inventaire", "job-queue": "File d'attente de tâches", "marketing": "Marketing", "orders": "Commandes", "payment-methods": "Mode de paiement", + "products": "Produits", "promotions": "Promotions", "roles": "Roles", "sales": "Ventes", "sellers": "Vendeurs", "settings": "Paramètres", "shipping-methods": "Mode d'expédition", + "stock-locations": "Lieux de stockage", "system": "Système", "system-status": "Statut du Système", "tax-categories": "Catégories de Taxe", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/he.json b/packages/admin-ui/src/lib/static/i18n-messages/he.json index cf151f65c4..0207277957 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/he.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/he.json @@ -35,13 +35,13 @@ "dashboard": "לוח בקרה", "facets": "גבעולים", "global-settings": "הגדרות גלובליות", - "inventory": "מלאי", "job-queue": "תור משימות", "manage-variants": "נהל וריאנטים", "modifying": "משנה", "orders": "הזמנות", "payment-methods": "שיטות תשלום", "product-options": "אפשרויות מוצר", + "products": "מוצרים", "profile": "פרופיל", "promotions": "מבצעים", "roles": "תפקידים", @@ -510,17 +510,18 @@ "customers": "לקוחות", "facets": "תכונות", "global-settings": "הגדרות גלובליות", - "inventory": "מלאי", "job-queue": "תור עבודה", "marketing": "שיווק", "orders": "הזמנות", "payment-methods": "אמצעי תשלום", + "products": "מוצרים", "promotions": "מבצעים", "roles": "תפקידים", "sales": "מכירות", "sellers": "מוכרים", "settings": "הגדרות", "shipping-methods": "אמצעי משלוח", + "stock-locations": "מיקומי מניה", "system": "מערכת", "system-status": "מצב המערכת", "tax-categories": "קטגוריות מס", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/it.json b/packages/admin-ui/src/lib/static/i18n-messages/it.json index 99096e2569..f3881696b3 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/it.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/it.json @@ -35,13 +35,13 @@ "dashboard": "Pannello", "facets": "Attributi", "global-settings": "Impostazioni Globali", - "inventory": "Inventario", "job-queue": "Coda operazioni", "manage-variants": "Gestione varianti", "modifying": "Modifica", "orders": "Ordini", "payment-methods": "Metodi di pagamento", "product-options": "Opzioni prodotto", + "products": "Prodotti", "profile": "Profilo", "promotions": "Promozioni", "roles": "Ruoli", @@ -510,17 +510,18 @@ "customers": "Clienti", "facets": "Attributi", "global-settings": "Impostazioni globali", - "inventory": "Inventario", "job-queue": "Coda operazioni", "marketing": "Marketing", "orders": "Ordini", "payment-methods": "Metodi di Pagamento", + "products": "Prodotti", "promotions": "Promozioni", "roles": "Ruoli", "sales": "Vendite", "sellers": "Venditori", "settings": "Impostazioni", "shipping-methods": "Metodi di Spedizione", + "stock-locations": "Posizioni magazzino", "system": "Sistema", "system-status": "Stato del Sistema", "tax-categories": "Impostazioni Tasse", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/pl.json b/packages/admin-ui/src/lib/static/i18n-messages/pl.json index 5676c36c36..82b3755acf 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/pl.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/pl.json @@ -35,13 +35,13 @@ "dashboard": "Dashboard", "facets": "Fasety", "global-settings": "Ustawienia globalne", - "inventory": "", "job-queue": "Kolejka zadań", "manage-variants": "Zarządzaj wariantami", "modifying": "", "orders": "Zamówienia", "payment-methods": "Metody płatności", "product-options": "", + "products": "", "profile": "", "promotions": "Promocje", "roles": "Role", @@ -510,17 +510,18 @@ "customers": "Klienci", "facets": "Facets", "global-settings": "Ustawienia globalne", - "inventory": "", "job-queue": "Kolejka zadań", "marketing": "Marketing", "orders": "Zamówienia", "payment-methods": "Metody płatności", + "products": "", "promotions": "Promocje", "roles": "Role", "sales": "Sprzedaż", "sellers": "", "settings": "Ustawienia", "shipping-methods": "Metody wysyłki", + "stock-locations": "", "system": "", "system-status": "", "tax-categories": "Kategorie podatkowe", @@ -790,4 +791,4 @@ "job-state-pending": "Oczekujące", "job-state-running": "Uruchomione" } -} +} \ No newline at end of file diff --git a/packages/admin-ui/src/lib/static/i18n-messages/pt_BR.json b/packages/admin-ui/src/lib/static/i18n-messages/pt_BR.json index dfdc65ea9a..10548cce18 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/pt_BR.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/pt_BR.json @@ -35,13 +35,13 @@ "dashboard": "Painel de controle", "facets": "Etiquetas", "global-settings": "Configurações globais", - "inventory": "Inventário", "job-queue": "Fila de tabalho", "manage-variants": "Gerenciamento de variações", "modifying": "Modificando", "orders": "Pedidos", "payment-methods": "Métodos de pagamentos", "product-options": "Opções do produto", + "products": "Produtos", "profile": "Perfil", "promotions": "Promoções", "roles": "Regras", @@ -510,17 +510,18 @@ "customers": "Clientes", "facets": "Etiquetas", "global-settings": "Configurações Gerais", - "inventory": "Inventário", "job-queue": "Fila de trabalho", "marketing": "Marketing", "orders": "Pedidos", "payment-methods": "Métodos de pagamentos", + "products": "Produtos", "promotions": "Promoções", "roles": "Regras de permissão", "sales": "Vendas", "sellers": "Vendedores", "settings": "Configurações", "shipping-methods": "Métodos de envio", + "stock-locations": "Localizações de estoque", "system": "Sistema", "system-status": "Status do sistema", "tax-categories": "Categorias das taxas", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/pt_PT.json b/packages/admin-ui/src/lib/static/i18n-messages/pt_PT.json index f782fd4729..acdf4f44aa 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/pt_PT.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/pt_PT.json @@ -35,20 +35,20 @@ "dashboard": "Painel de controlo", "facets": "Etiquetas", "global-settings": "Configurações globais", - "inventory": "", "job-queue": "Fila de tabalho", "manage-variants": "Gerir variações", "modifying": "A modificar", "orders": "Encomendas", "payment-methods": "Métodos de pagamentos", "product-options": "Opções", + "products": "Produtos", "profile": "Perfil", "promotions": "Promoções", "roles": "Regras", "seller-orders": "", "sellers": "", "shipping-methods": "Métodos de envio", - "stock-locations": "", + "stock-locations": "Localizações de stock", "system-status": "Estado do sistema", "tax-categories": "Categorias de taxas e impostos", "tax-rates": "Taxas de impostos", @@ -142,12 +142,12 @@ "price-includes-tax-at": "Inclui { rate }% de imposto", "price-with-tax-in-default-zone": "Inclui { rate }% de imposto: { price }", "private": "Privado", - "product": "", + "product": "Produto", "product-name": "Nome do produto", - "product-options": "", - "product-variant-exists": "", + "product-options": "Opções do produto", + "product-variant-exists": "A variante do produto já existe", "product-variants": "Variações do produto", - "products": "", + "products": "Produtos", "public": "Público", "quick-jump-placeholder": "", "rebuild-search-index": "Reconstruir índice de pesquisa", @@ -172,8 +172,8 @@ "slug-pattern-error": "Slug inválido", "stock-allocated": "Estoque reservado", "stock-levels": "", - "stock-location": "", - "stock-locations": "", + "stock-location": "Localização de stock", + "stock-locations": "Localizações de stock", "stock-on-hand": "Estoque", "tax-category": "Categoria de impostos", "taxes": "Impostos", @@ -510,17 +510,18 @@ "customers": "Clientes", "facets": "Etiquetas", "global-settings": "Configurações Gerais", - "inventory": "", "job-queue": "Fila de trabalho", "marketing": "Marketing", "orders": "Encomendas", "payment-methods": "Métodos de pagamentos", + "products": "Produtos", "promotions": "Promoções", "roles": "Gerir permissões", "sales": "Vendas", "sellers": "", "settings": "Configurações", "shipping-methods": "Métodos de envio", + "stock-locations": "Localizações de stock", "system": "Sistema", "system-status": "Estado do sistema", "tax-categories": "Categorias das taxas", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/ru.json b/packages/admin-ui/src/lib/static/i18n-messages/ru.json index 1b261cba03..9b25e6be86 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/ru.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/ru.json @@ -35,13 +35,13 @@ "dashboard": "Дашборд", "facets": "Теги", "global-settings": "Глобальные настройки", - "inventory": "Инвентарь", "job-queue": "Очередь заданий", "manage-variants": "Управление вариантами", "modifying": "Изменение", "orders": "Заказы", "payment-methods": "Способы оплаты", "product-options": "Опции товара", + "products": "Товары", "profile": "Профиль", "promotions": "Акции", "roles": "Роли", @@ -510,17 +510,18 @@ "customers": "Клиенты", "facets": "Теги", "global-settings": "Глобальные настройки", - "inventory": "Каталог", "job-queue": "Очередь заданий", "marketing": "Маркетинг", "orders": "Заказы", "payment-methods": "Способы оплаты", + "products": "Товары", "promotions": "Промо-акции", "roles": "Роли", "sales": "Продажи", "sellers": "Продавцы", "settings": "Настройки", "shipping-methods": "Способы доставки", + "stock-locations": "Склады", "system": "Система", "system-status": "Состояние системы", "tax-categories": "Категории налогов", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/uk.json b/packages/admin-ui/src/lib/static/i18n-messages/uk.json index e45230ac9c..8ac6e43540 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/uk.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/uk.json @@ -35,20 +35,20 @@ "dashboard": "Дашборд", "facets": "Теги", "global-settings": "Глобальні налаштування", - "inventory": "", "job-queue": "Черга завдань", "manage-variants": "Управління варіантами", "modifying": "Зміна", "orders": "Замовлення", "payment-methods": "Способи оплати", "product-options": "", + "products": "Товари", "profile": "Профіль", "promotions": "Акції", "roles": "Ролі", "seller-orders": "", "sellers": "", "shipping-methods": "Способи доставки", - "stock-locations": "", + "stock-locations": "Місця зберігання", "system-status": "Стан системи", "tax-categories": "Категорії податків", "tax-rates": "Податкові ставки", @@ -147,7 +147,7 @@ "product-options": "", "product-variant-exists": "", "product-variants": "Варіант товару", - "products": "", + "products": "Товари", "public": "Публічний", "quick-jump-placeholder": "", "rebuild-search-index": "Відновити пошуковий індекс", @@ -172,8 +172,8 @@ "slug-pattern-error": "Код заданий некоректно", "stock-allocated": "Зарезервовано", "stock-levels": "", - "stock-location": "", - "stock-locations": "", + "stock-location": "Mісце зберігання", + "stock-locations": "Місця зберігання", "stock-on-hand": "На складі", "tax-category": "Податкова категорія", "taxes": "Податки", @@ -510,17 +510,18 @@ "customers": "Клієнти", "facets": "Теги", "global-settings": "Глобальні налаштування", - "inventory": "", "job-queue": "Черга завдань", "marketing": "Маркетинг", "orders": "Замовлення", "payment-methods": "Способи оплати", + "products": "Товари", "promotions": "Промо-акції", "roles": "Ролі", "sales": "Продажі", "sellers": "", "settings": "Налаштування", "shipping-methods": "Способи доставки", + "stock-locations": "Місця зберігання", "system": "Система", "system-status": "Стан системи", "tax-categories": "Категорії податків", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/zh_Hans.json b/packages/admin-ui/src/lib/static/i18n-messages/zh_Hans.json index 47e8384f1f..2391c2035a 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/zh_Hans.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/zh_Hans.json @@ -35,20 +35,20 @@ "dashboard": "总览", "facets": "商品特征", "global-settings": "语言设置", - "inventory": "", "job-queue": "任务队列", "manage-variants": "商品规格管理", "modifying": "正在修改", "orders": "订单管理", "payment-methods": "支付管理", "product-options": "", + "products": "产品", "profile": "个人资料", "promotions": "优惠券管理", "roles": "角色管理", "seller-orders": "", "sellers": "", "shipping-methods": "配送方式管理", - "stock-locations": "", + "stock-locations": "库存位置", "system-status": "系统状态", "tax-categories": "税表分类", "tax-rates": "税率管理", @@ -147,7 +147,7 @@ "product-options": "", "product-variant-exists": "", "product-variants": "商品规格", - "products": "", + "products": "产品", "public": "公开", "quick-jump-placeholder": "", "rebuild-search-index": "重建搜索索引", @@ -173,7 +173,7 @@ "stock-allocated": "已分配", "stock-levels": "", "stock-location": "", - "stock-locations": "", + "stock-locations": "库存位置", "stock-on-hand": "当前库存", "tax-category": "税表分类", "taxes": "价格(含税)", @@ -510,17 +510,18 @@ "customers": "客户管理", "facets": "产品特征", "global-settings": "语言设置", - "inventory": "", "job-queue": "任务队列", "marketing": "市场营销", "orders": "订单管理", "payment-methods": "支付管理", + "products": "产品", "promotions": "优惠券管理", "roles": "角色管理", "sales": "销售管理", "sellers": "", "settings": "系统设置", "shipping-methods": "配送方式", + "stock-locations": "库存位置", "system": "系统状态", "system-status": "系统状态", "tax-categories": "税表分类", diff --git a/packages/admin-ui/src/lib/static/i18n-messages/zh_Hant.json b/packages/admin-ui/src/lib/static/i18n-messages/zh_Hant.json index 4c1114c6e2..745d735af4 100644 --- a/packages/admin-ui/src/lib/static/i18n-messages/zh_Hant.json +++ b/packages/admin-ui/src/lib/static/i18n-messages/zh_Hant.json @@ -35,20 +35,20 @@ "dashboard": "總覽", "facets": "商品特徵", "global-settings": "語言", - "inventory": "", "job-queue": "", "manage-variants": "商品規格管理", "modifying": "", "orders": "訂單管理", "payment-methods": "支付方式", "product-options": "", + "products": "產品", "profile": "", "promotions": "優惠", "roles": "角色管理", "seller-orders": "", "sellers": "", "shipping-methods": "配送方式管理", - "stock-locations": "", + "stock-locations": "庫存位置", "system-status": "", "tax-categories": "稅項類別", "tax-rates": "税率", @@ -147,7 +147,7 @@ "product-options": "", "product-variant-exists": "", "product-variants": "商品規格", - "products": "", + "products": "產品", "public": "公開", "quick-jump-placeholder": "", "rebuild-search-index": "重建搜尋索引", @@ -173,7 +173,7 @@ "stock-allocated": "", "stock-levels": "", "stock-location": "", - "stock-locations": "", + "stock-locations": "庫存位置", "stock-on-hand": "庫存", "tax-category": "税表分類", "taxes": "價格(連税)", @@ -510,17 +510,18 @@ "customers": "客户", "facets": "特徵", "global-settings": "語言設定", - "inventory": "", "job-queue": "", "marketing": "推銷", "orders": "訂單管理", "payment-methods": "付款方法", + "products": "產品", "promotions": "優惠券管理", "roles": "角色管理", "sales": "銷售管理", "sellers": "", "settings": "系统設定", "shipping-methods": "配送方式", + "stock-locations": "庫存位置", "system": "", "system-status": "", "tax-categories": "税表分類",