From 559fc6587aa02cd4f8fbc9e97ff1f1ba094a4b1a Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Thu, 5 Dec 2024 17:19:45 +0100 Subject: [PATCH] fix(): Deleted default sales channel should be prevented (#10193) FIXES CMRC-722 **What** - It should not be allowed to delete a default sales channel - The admin does not allow to delete a sales channel use as the default for the store --- .changeset/honest-cars-knock.md | 7 + .../sales-channel/admin/sales-channel.spec.ts | 44 +- .../src/i18n/translations/$schema.json | 1910 ++++------------- .../dashboard/src/i18n/translations/en.json | 3 + .../components/sales-channel-list-table.tsx | 64 +- .../steps/can-delete-sales-channels.ts | 36 + .../src/sales-channel/steps/index.ts | 1 + .../workflows/delete-sales-channels.ts | 2 + packages/core/types/src/store/common/store.ts | 6 +- 9 files changed, 510 insertions(+), 1563 deletions(-) create mode 100644 .changeset/honest-cars-knock.md create mode 100644 packages/core/core-flows/src/sales-channel/steps/can-delete-sales-channels.ts diff --git a/.changeset/honest-cars-knock.md b/.changeset/honest-cars-knock.md new file mode 100644 index 0000000000..3f79c250d1 --- /dev/null +++ b/.changeset/honest-cars-knock.md @@ -0,0 +1,7 @@ +--- +"@medusajs/core-flows": patch +"@medusajs/types": patch +"@medusajs/dashboard": patch +--- + +fix(): Deleted default sales channel should be prevented diff --git a/integration-tests/http/__tests__/sales-channel/admin/sales-channel.spec.ts b/integration-tests/http/__tests__/sales-channel/admin/sales-channel.spec.ts index 2353a8b2b2..50261a2c88 100644 --- a/integration-tests/http/__tests__/sales-channel/admin/sales-channel.spec.ts +++ b/integration-tests/http/__tests__/sales-channel/admin/sales-channel.spec.ts @@ -3,6 +3,7 @@ import { adminHeaders, createAdminUser, } from "../../../../helpers/create-admin-user" +import { Modules } from "@medusajs/framework/utils" jest.setTimeout(60000) @@ -10,9 +11,10 @@ medusaIntegrationTestRunner({ testSuite: ({ dbConnection, getContainer, api }) => { let salesChannel1 let salesChannel2 + let container beforeEach(async () => { - const container = getContainer() + container = getContainer() await createAdminUser(dbConnection, adminHeaders, container) salesChannel1 = ( @@ -245,6 +247,34 @@ medusaIntegrationTestRunner({ }) describe("DELETE /admin/sales-channels/:id", () => { + it("should fail to delete the requested sales channel if it is used as a default sales channel", async () => { + const salesChannel = ( + await api.post( + "/admin/sales-channels", + { name: "Test channel", description: "Test" }, + adminHeaders + ) + ).data.sales_channel + + const storeModule = container.resolve(Modules.STORE) + await storeModule.createStores({ + name: "New store", + supported_currencies: [ + { currency_code: "usd", is_default: true }, + { currency_code: "dkk" }, + ], + default_sales_channel_id: salesChannel.id, + }) + + const errorResponse = await api + .delete(`/admin/sales-channels/${salesChannel.id}`, adminHeaders) + .catch((err) => err) + + expect(errorResponse.response.data.message).toEqual( + `Cannot delete default sales channels: ${salesChannel.id}` + ) + }) + it("should delete the requested sales channel", async () => { const toDelete = ( await api.get( @@ -268,17 +298,19 @@ medusaIntegrationTestRunner({ object: "sales-channel", }) - await api + const err = await api .get( `/admin/sales-channels/${salesChannel1.id}?fields=id,deleted_at`, adminHeaders ) .catch((err) => { - expect(err.response.data.type).toEqual("not_found") - expect(err.response.data.message).toEqual( - `Sales channel with id: ${salesChannel1.id} not found` - ) + return err }) + + expect(err.response.data.type).toEqual("not_found") + expect(err.response.data.message).toEqual( + `Sales channel with id: ${salesChannel1.id} not found` + ) }) it("should successfully delete channel associations", async () => { diff --git a/packages/admin/dashboard/src/i18n/translations/$schema.json b/packages/admin/dashboard/src/i18n/translations/$schema.json index ff3a6d5af3..be9d4f399a 100644 --- a/packages/admin/dashboard/src/i18n/translations/$schema.json +++ b/packages/admin/dashboard/src/i18n/translations/$schema.json @@ -258,11 +258,7 @@ "type": "string" } }, - "required": [ - "header_one", - "header_other", - "description" - ], + "required": ["header_one", "header_other", "description"], "additionalProperties": false } }, @@ -311,11 +307,7 @@ "type": "string" } }, - "required": [ - "insertRowAbove", - "insertRowBelow", - "deleteRow" - ], + "required": ["insertRowAbove", "insertRowBelow", "deleteRow"], "additionalProperties": false }, "labels": { @@ -328,10 +320,7 @@ "type": "string" } }, - "required": [ - "key", - "value" - ], + "required": ["key", "value"], "additionalProperties": false }, "complexRow": { @@ -347,11 +336,7 @@ "type": "string" } }, - "required": [ - "label", - "description", - "tooltip" - ], + "required": ["label", "description", "tooltip"], "additionalProperties": false } }, @@ -366,12 +351,7 @@ "additionalProperties": false } }, - "required": [ - "header", - "numberOfKeys_one", - "numberOfKeys_other", - "edit" - ], + "required": ["header", "numberOfKeys_one", "numberOfKeys_other", "edit"], "additionalProperties": false }, "validation": { @@ -384,10 +364,7 @@ "type": "string" } }, - "required": [ - "mustBeInt", - "mustBePositive" - ], + "required": ["mustBeInt", "mustBePositive"], "additionalProperties": false }, "actions": { @@ -573,9 +550,7 @@ "type": "string" } }, - "required": [ - "in" - ], + "required": ["in"], "additionalProperties": false }, "app": { @@ -926,12 +901,7 @@ "type": "string" } }, - "required": [ - "label", - "dark", - "light", - "system" - ], + "required": ["label", "dark", "light", "system"], "additionalProperties": false } }, @@ -954,10 +924,7 @@ "type": "string" } }, - "required": [ - "label", - "storeSettings" - ], + "required": ["label", "storeSettings"], "additionalProperties": false }, "actions": { @@ -967,17 +934,11 @@ "type": "string" } }, - "required": [ - "logout" - ], + "required": ["logout"], "additionalProperties": false } }, - "required": [ - "user", - "store", - "actions" - ], + "required": ["user", "store", "actions"], "additionalProperties": false }, "nav": { @@ -993,10 +954,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "common": { @@ -1006,9 +964,7 @@ "type": "string" } }, - "required": [ - "extensions" - ], + "required": ["extensions"], "additionalProperties": false }, "main": { @@ -1021,10 +977,7 @@ "type": "string" } }, - "required": [ - "store", - "storeSettings" - ], + "required": ["store", "storeSettings"], "additionalProperties": false }, "settings": { @@ -1043,30 +996,15 @@ "type": "string" } }, - "required": [ - "header", - "general", - "developer", - "myAccount" - ], + "required": ["header", "general", "developer", "myAccount"], "additionalProperties": false } }, - "required": [ - "accessibility", - "common", - "main", - "settings" - ], + "required": ["accessibility", "common", "main", "settings"], "additionalProperties": false } }, - "required": [ - "search", - "keyboardShortcuts", - "menus", - "nav" - ], + "required": ["search", "keyboardShortcuts", "menus", "nav"], "additionalProperties": false }, "dataGrid": { @@ -1085,11 +1023,7 @@ "type": "string" } }, - "required": [ - "view", - "resetToDefault", - "disabled" - ], + "required": ["view", "resetToDefault", "disabled"], "additionalProperties": false }, "shortcuts": { @@ -1183,10 +1117,7 @@ "additionalProperties": false } }, - "required": [ - "label", - "commands" - ], + "required": ["label", "commands"], "additionalProperties": false }, "errors": { @@ -1202,19 +1133,11 @@ "type": "string" } }, - "required": [ - "fixError", - "count_one", - "count_other" - ], + "required": ["fixError", "count_one", "count_other"], "additionalProperties": false } }, - "required": [ - "columns", - "shortcuts", - "errors" - ], + "required": ["columns", "shortcuts", "errors"], "additionalProperties": false }, "filters": { @@ -1300,11 +1223,7 @@ "type": "string" } }, - "required": [ - "date", - "compare", - "addFilter" - ], + "required": ["date", "compare", "addFilter"], "additionalProperties": false }, "errorBoundary": { @@ -1374,12 +1293,7 @@ "type": "string" } }, - "required": [ - "header", - "editHeader", - "editLabel", - "label" - ], + "required": ["header", "editHeader", "editLabel", "label"], "additionalProperties": false }, "billingAddress": { @@ -1438,11 +1352,7 @@ "type": "string" } }, - "required": [ - "editHeader", - "editLabel", - "label" - ], + "required": ["editHeader", "editLabel", "label"], "additionalProperties": false }, "transferOwnership": { @@ -1464,10 +1374,7 @@ "type": "string" } }, - "required": [ - "order", - "draft" - ], + "required": ["order", "draft"], "additionalProperties": false }, "currentOwner": { @@ -1480,10 +1387,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "newOwner": { @@ -1496,10 +1400,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "validation": { @@ -1512,10 +1413,7 @@ "type": "string" } }, - "required": [ - "mustBeDifferent", - "required" - ], + "required": ["mustBeDifferent", "required"], "additionalProperties": false } }, @@ -1536,9 +1434,7 @@ "type": "string" } }, - "required": [ - "availableIn" - ], + "required": ["availableIn"], "additionalProperties": false }, "products": { @@ -1554,9 +1450,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false }, "edit": { @@ -1572,11 +1466,7 @@ "type": "string" } }, - "required": [ - "header", - "description", - "successToast" - ], + "required": ["header", "description", "successToast"], "additionalProperties": false }, "create": { @@ -1607,12 +1497,7 @@ "type": "string" } }, - "required": [ - "details", - "organize", - "variants", - "inventory" - ], + "required": ["details", "organize", "variants", "inventory"], "additionalProperties": false }, "errors": { @@ -1628,11 +1513,7 @@ "type": "string" } }, - "required": [ - "variants", - "options", - "uniqueSku" - ], + "required": ["variants", "options", "uniqueSku"], "additionalProperties": false }, "inventory": { @@ -1678,9 +1559,7 @@ "type": "string" } }, - "required": [ - "placeholder" - ], + "required": ["placeholder"], "additionalProperties": false }, "optionValues": { @@ -1690,9 +1569,7 @@ "type": "string" } }, - "required": [ - "placeholder" - ], + "required": ["placeholder"], "additionalProperties": false }, "productVariants": { @@ -1711,12 +1588,7 @@ "type": "string" } }, - "required": [ - "label", - "hint", - "alert", - "tip" - ], + "required": ["label", "hint", "alert", "tip"], "additionalProperties": false }, "productOptions": { @@ -1729,10 +1601,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false } }, @@ -1782,10 +1651,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "filters": { @@ -1798,10 +1664,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "columns": { @@ -1814,10 +1677,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, @@ -1855,10 +1715,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "upload": { @@ -1899,10 +1756,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, @@ -1996,11 +1850,7 @@ "type": "string" } }, - "required": [ - "header", - "description", - "action" - ], + "required": ["header", "description", "action"], "additionalProperties": false }, "successToast": { @@ -2059,12 +1909,7 @@ "type": "string" } }, - "required": [ - "draft", - "published", - "proposed", - "rejected" - ], + "required": ["draft", "published", "proposed", "rejected"], "additionalProperties": false }, "fields": { @@ -2080,10 +1925,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "subtitle": { @@ -2093,9 +1935,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "handle": { @@ -2108,10 +1948,7 @@ "type": "string" } }, - "required": [ - "label", - "tooltip" - ], + "required": ["label", "tooltip"], "additionalProperties": false }, "description": { @@ -2124,10 +1961,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "discountable": { @@ -2140,10 +1974,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "type": { @@ -2153,9 +1984,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "collection": { @@ -2165,9 +1994,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "categories": { @@ -2177,9 +2004,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "tags": { @@ -2189,9 +2014,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "sales_channels": { @@ -2204,10 +2027,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "countryOrigin": { @@ -2217,9 +2037,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "material": { @@ -2229,9 +2047,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "width": { @@ -2241,9 +2057,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "length": { @@ -2253,9 +2067,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "height": { @@ -2265,9 +2077,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "weight": { @@ -2277,9 +2087,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "options": { @@ -2328,10 +2136,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "mid_code": { @@ -2341,9 +2146,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "hs_code": { @@ -2353,9 +2156,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false } }, @@ -2396,10 +2197,7 @@ "type": "string" } }, - "required": [ - "header", - "success" - ], + "required": ["header", "success"], "additionalProperties": false }, "create": { @@ -2409,9 +2207,7 @@ "type": "string" } }, - "required": [ - "header" - ], + "required": ["header"], "additionalProperties": false }, "deleteWarning": { @@ -2457,10 +2253,7 @@ "type": "string" } }, - "required": [ - "inventoryItems", - "inventoryKit" - ], + "required": ["inventoryItems", "inventoryKit"], "additionalProperties": false }, "inventoryKit": { @@ -2479,10 +2272,7 @@ "type": "string" } }, - "required": [ - "itemId", - "quantity" - ], + "required": ["itemId", "quantity"], "additionalProperties": false }, "header": { @@ -2577,10 +2367,7 @@ "type": "string" } }, - "required": [ - "header", - "successToast" - ], + "required": ["header", "successToast"], "additionalProperties": false }, "create": { @@ -2593,22 +2380,14 @@ "type": "string" } }, - "required": [ - "header", - "successToast" - ], + "required": ["header", "successToast"], "additionalProperties": false }, "deleteWarning": { "type": "string" } }, - "required": [ - "header", - "edit", - "create", - "deleteWarning" - ], + "required": ["header", "edit", "create", "deleteWarning"], "additionalProperties": false }, "organization": { @@ -2630,23 +2409,15 @@ "type": "string" } }, - "required": [ - "success" - ], + "required": ["success"], "additionalProperties": false } }, - "required": [ - "header", - "toasts" - ], + "required": ["header", "toasts"], "additionalProperties": false } }, - "required": [ - "header", - "edit" - ], + "required": ["header", "edit"], "additionalProperties": false }, "toasts": { @@ -2665,10 +2436,7 @@ "type": "string" } }, - "required": [ - "header", - "description" - ], + "required": ["header", "description"], "additionalProperties": false }, "error": { @@ -2678,22 +2446,15 @@ "type": "string" } }, - "required": [ - "header" - ], + "required": ["header"], "additionalProperties": false } }, - "required": [ - "success", - "error" - ], + "required": ["success", "error"], "additionalProperties": false } }, - "required": [ - "delete" - ], + "required": ["delete"], "additionalProperties": false } }, @@ -2771,9 +2532,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false }, "add": { @@ -2786,10 +2545,7 @@ "type": "string" } }, - "required": [ - "successToast_one", - "successToast_other" - ], + "required": ["successToast_one", "successToast_other"], "additionalProperties": false }, "remove": { @@ -2802,18 +2558,11 @@ "type": "string" } }, - "required": [ - "successToast_one", - "successToast_other" - ], + "required": ["successToast_one", "successToast_other"], "additionalProperties": false } }, - "required": [ - "list", - "add", - "remove" - ], + "required": ["list", "add", "remove"], "additionalProperties": false } }, @@ -2861,22 +2610,14 @@ "type": "string" } }, - "required": [ - "details", - "organize" - ], + "required": ["details", "organize"], "additionalProperties": false }, "successToast": { "type": "string" } }, - "required": [ - "header", - "hint", - "tabs", - "successToast" - ], + "required": ["header", "hint", "tabs", "successToast"], "additionalProperties": false }, "edit": { @@ -2892,11 +2633,7 @@ "type": "string" } }, - "required": [ - "header", - "description", - "successToast" - ], + "required": ["header", "description", "successToast"], "additionalProperties": false }, "delete": { @@ -2909,10 +2646,7 @@ "type": "string" } }, - "required": [ - "confirmation", - "successToast" - ], + "required": ["confirmation", "successToast"], "additionalProperties": false }, "products": { @@ -2969,17 +2703,11 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "add", - "remove", - "list" - ], + "required": ["add", "remove", "list"], "additionalProperties": false }, "organize": { @@ -2992,10 +2720,7 @@ "type": "string" } }, - "required": [ - "header", - "action" - ], + "required": ["header", "action"], "additionalProperties": false }, "fields": { @@ -3014,11 +2739,7 @@ "type": "string" } }, - "required": [ - "label", - "internal", - "public" - ], + "required": ["label", "internal", "public"], "additionalProperties": false }, "status": { @@ -3034,11 +2755,7 @@ "type": "string" } }, - "required": [ - "label", - "active", - "inactive" - ], + "required": ["label", "active", "inactive"], "additionalProperties": false }, "path": { @@ -3051,10 +2768,7 @@ "type": "string" } }, - "required": [ - "label", - "tooltip" - ], + "required": ["label", "tooltip"], "additionalProperties": false }, "children": { @@ -3064,9 +2778,7 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false }, "new": { @@ -3076,19 +2788,11 @@ "type": "string" } }, - "required": [ - "label" - ], + "required": ["label"], "additionalProperties": false } }, - "required": [ - "visibility", - "status", - "path", - "children", - "new" - ], + "required": ["visibility", "status", "path", "children", "new"], "additionalProperties": false } }, @@ -3238,10 +2942,7 @@ "type": "string" } }, - "required": [ - "noAvaliableQuantity", - "quantityOutOfRange" - ], + "required": ["noAvaliableQuantity", "quantityOutOfRange"], "additionalProperties": false } }, @@ -3301,11 +3002,7 @@ "type": "string" } }, - "required": [ - "updateLocations", - "updateLevel", - "updateItem" - ], + "required": ["updateLocations", "updateLevel", "updateItem"], "additionalProperties": false } }, @@ -3411,9 +3108,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false }, "create": { @@ -3429,11 +3124,7 @@ "type": "string" } }, - "required": [ - "header", - "hint", - "successToast" - ], + "required": ["header", "hint", "successToast"], "additionalProperties": false }, "groups": { @@ -3458,9 +3149,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false }, "add": { @@ -3476,16 +3165,11 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "success", - "list" - ], + "required": ["success", "list"], "additionalProperties": false }, "removed": { @@ -3501,16 +3185,11 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "success", - "list" - ], + "required": ["success", "list"], "additionalProperties": false } }, @@ -3538,11 +3217,7 @@ "type": "string" } }, - "required": [ - "header", - "emailDisabledTooltip", - "successToast" - ], + "required": ["header", "emailDisabledTooltip", "successToast"], "additionalProperties": false }, "delete": { @@ -3558,11 +3233,7 @@ "type": "string" } }, - "required": [ - "title", - "description", - "successToast" - ], + "required": ["title", "description", "successToast"], "additionalProperties": false }, "fields": { @@ -3578,11 +3249,7 @@ "type": "string" } }, - "required": [ - "guest", - "registered", - "groups" - ], + "required": ["guest", "registered", "groups"], "additionalProperties": false }, "registered": { @@ -3631,11 +3298,7 @@ "type": "string" } }, - "required": [ - "header", - "hint", - "successToast" - ], + "required": ["header", "hint", "successToast"], "additionalProperties": false }, "edit": { @@ -3648,10 +3311,7 @@ "type": "string" } }, - "required": [ - "header", - "successToast" - ], + "required": ["header", "successToast"], "additionalProperties": false }, "delete": { @@ -3667,11 +3327,7 @@ "type": "string" } }, - "required": [ - "title", - "description", - "successToast" - ], + "required": ["title", "description", "successToast"], "additionalProperties": false }, "customers": { @@ -3696,17 +3352,11 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "successToast_one", - "successToast_other", - "list" - ], + "required": ["successToast_one", "successToast_other", "list"], "additionalProperties": false }, "remove": { @@ -3740,18 +3390,11 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "alreadyAddedTooltip", - "add", - "remove", - "list" - ], + "required": ["alreadyAddedTooltip", "add", "remove", "list"], "additionalProperties": false } }, @@ -3793,9 +3436,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false }, "summary": { @@ -4087,10 +3728,7 @@ "type": "string" } }, - "required": [ - "title", - "titlePending" - ], + "required": ["title", "titlePending"], "additionalProperties": false }, "toast": { @@ -4103,10 +3741,7 @@ "type": "string" } }, - "required": [ - "canceledSuccessfully", - "confirmedSuccessfully" - ], + "required": ["canceledSuccessfully", "confirmedSuccessfully"], "additionalProperties": false }, "validation": { @@ -4116,9 +3751,7 @@ "type": "string" } }, - "required": [ - "quantityLowerThanFulfillment" - ], + "required": ["quantityLowerThanFulfillment"], "additionalProperties": false } }, @@ -4308,10 +3941,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "placeholders": { @@ -4327,10 +3957,7 @@ "type": "string" } }, - "required": [ - "title", - "hint" - ], + "required": ["title", "hint"], "additionalProperties": false }, "outboundShippingOptions": { @@ -4343,10 +3970,7 @@ "type": "string" } }, - "required": [ - "title", - "hint" - ], + "required": ["title", "hint"], "additionalProperties": false } }, @@ -4431,10 +4055,7 @@ "type": "string" } }, - "required": [ - "canceledSuccessfully", - "confirmedSuccessfully" - ], + "required": ["canceledSuccessfully", "confirmedSuccessfully"], "additionalProperties": false }, "panel": { @@ -4447,10 +4068,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, @@ -4539,15 +4157,11 @@ "type": "string" } }, - "required": [ - "successToast" - ], + "required": ["successToast"], "additionalProperties": false } }, - "required": [ - "cancelClaim" - ], + "required": ["cancelClaim"], "additionalProperties": false }, "cancel": { @@ -4560,10 +4174,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "tooltips": { @@ -4573,9 +4184,7 @@ "type": "string" } }, - "required": [ - "onlyReturnShippingOptions" - ], + "required": ["onlyReturnShippingOptions"], "additionalProperties": false }, "toast": { @@ -4588,10 +4197,7 @@ "type": "string" } }, - "required": [ - "canceledSuccessfully", - "confirmedSuccessfully" - ], + "required": ["canceledSuccessfully", "confirmedSuccessfully"], "additionalProperties": false }, "panel": { @@ -4604,10 +4210,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, @@ -4677,15 +4280,11 @@ "type": "string" } }, - "required": [ - "successToast" - ], + "required": ["successToast"], "additionalProperties": false } }, - "required": [ - "cancelExchange" - ], + "required": ["cancelExchange"], "additionalProperties": false }, "cancel": { @@ -4698,10 +4297,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "tooltips": { @@ -4711,9 +4307,7 @@ "type": "string" } }, - "required": [ - "onlyReturnShippingOptions" - ], + "required": ["onlyReturnShippingOptions"], "additionalProperties": false }, "toast": { @@ -4726,10 +4320,7 @@ "type": "string" } }, - "required": [ - "canceledSuccessfully", - "confirmedSuccessfully" - ], + "required": ["canceledSuccessfully", "confirmedSuccessfully"], "additionalProperties": false }, "panel": { @@ -4742,10 +4333,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, @@ -4779,10 +4367,7 @@ "type": "string" } }, - "required": [ - "allocatedLabel", - "notAllocatedLabel" - ], + "required": ["allocatedLabel", "notAllocatedLabel"], "additionalProperties": false }, "allocateItems": { @@ -4819,9 +4404,7 @@ "type": "string" } }, - "required": [ - "created" - ], + "required": ["created"], "additionalProperties": false }, "error": { @@ -4831,9 +4414,7 @@ "type": "string" } }, - "required": [ - "quantityNotAllocated" - ], + "required": ["quantityNotAllocated"], "additionalProperties": false } }, @@ -4956,11 +4537,7 @@ "type": "string" } }, - "required": [ - "wrongQuantity", - "wrongQuantity_other", - "noItems" - ], + "required": ["wrongQuantity", "wrongQuantity_other", "noItems"], "additionalProperties": false }, "status": { @@ -5106,11 +4683,7 @@ "type": "string" } }, - "required": [ - "amountToLarge", - "amountNegative", - "reasonRequired" - ], + "required": ["amountToLarge", "amountNegative", "reasonRequired"], "additionalProperties": false } }, @@ -5206,10 +4779,7 @@ "type": "string" } }, - "required": [ - "toReturn", - "toSend" - ], + "required": ["toReturn", "toSend"], "additionalProperties": false }, "placed": { @@ -5222,10 +4792,7 @@ "type": "string" } }, - "required": [ - "title", - "fromSalesChannel" - ], + "required": ["title", "fromSalesChannel"], "additionalProperties": false }, "canceled": { @@ -5235,9 +4802,7 @@ "type": "string" } }, - "required": [ - "title" - ], + "required": ["title"], "additionalProperties": false }, "payment": { @@ -5256,12 +4821,7 @@ "type": "string" } }, - "required": [ - "awaiting", - "captured", - "canceled", - "refunded" - ], + "required": ["awaiting", "captured", "canceled", "refunded"], "additionalProperties": false }, "fulfillment": { @@ -5334,10 +4894,7 @@ "type": "string" } }, - "required": [ - "comment", - "byLine" - ], + "required": ["comment", "byLine"], "additionalProperties": false }, "claim": { @@ -5398,10 +4955,7 @@ "type": "string" } }, - "required": [ - "requested", - "confirmed" - ], + "required": ["requested", "confirmed"], "additionalProperties": false }, "transfer": { @@ -5417,11 +4971,7 @@ "type": "string" } }, - "required": [ - "requested", - "confirmed", - "declined" - ], + "required": ["requested", "confirmed", "declined"], "additionalProperties": false }, "update_order": { @@ -5486,11 +5036,7 @@ "type": "string" } }, - "required": [ - "displayId", - "refundableAmount", - "returnableQuantity" - ], + "required": ["displayId", "refundableAmount", "returnableQuantity"], "additionalProperties": false } }, @@ -5549,11 +5095,7 @@ "type": "string" } }, - "required": [ - "label", - "warningTitle", - "warningDescription" - ], + "required": ["label", "warningTitle", "warningDescription"], "additionalProperties": false }, "status": { @@ -5566,10 +5108,7 @@ "type": "string" } }, - "required": [ - "open", - "completed" - ], + "required": ["open", "completed"], "additionalProperties": false }, "create": { @@ -5710,9 +5249,7 @@ "type": "string" } }, - "required": [ - "description" - ], + "required": ["description"], "additionalProperties": false }, "create": { @@ -5728,11 +5265,7 @@ "type": "string" } }, - "required": [ - "header", - "hint", - "successToast" - ], + "required": ["header", "hint", "successToast"], "additionalProperties": false }, "edit": { @@ -5748,11 +5281,7 @@ "type": "string" } }, - "required": [ - "header", - "viewInventory", - "successToast" - ], + "required": ["header", "viewInventory", "successToast"], "additionalProperties": false }, "delete": { @@ -5762,9 +5291,7 @@ "type": "string" } }, - "required": [ - "confirmation" - ], + "required": ["confirmation"], "additionalProperties": false }, "fulfillmentProviders": { @@ -5813,9 +5340,7 @@ "type": "string" } }, - "required": [ - "header" - ], + "required": ["header"], "additionalProperties": false }, "shipping": { @@ -5825,9 +5350,7 @@ "type": "string" } }, - "required": [ - "header" - ], + "required": ["header"], "additionalProperties": false }, "disable": { @@ -5843,11 +5366,7 @@ "type": "string" } }, - "required": [ - "confirmation", - "pickup", - "shipping" - ], + "required": ["confirmation", "pickup", "shipping"], "additionalProperties": false }, "enable": { @@ -5860,19 +5379,11 @@ "type": "string" } }, - "required": [ - "pickup", - "shipping" - ], + "required": ["pickup", "shipping"], "additionalProperties": false } }, - "required": [ - "pickup", - "shipping", - "disable", - "enable" - ], + "required": ["pickup", "shipping", "disable", "enable"], "additionalProperties": false }, "sidebar": { @@ -5891,17 +5402,11 @@ "type": "string" } }, - "required": [ - "label", - "description" - ], + "required": ["label", "description"], "additionalProperties": false } }, - "required": [ - "header", - "shippingProfiles" - ], + "required": ["header", "shippingProfiles"], "additionalProperties": false }, "salesChannels": { @@ -5958,12 +5463,7 @@ "type": "string" } }, - "required": [ - "header", - "hint", - "label", - "successToast" - ], + "required": ["header", "hint", "label", "successToast"], "additionalProperties": false }, "returns": { @@ -5982,12 +5482,7 @@ "type": "string" } }, - "required": [ - "header", - "hint", - "label", - "successToast" - ], + "required": ["header", "hint", "label", "successToast"], "additionalProperties": false }, "tabs": { @@ -6000,22 +5495,14 @@ "type": "string" } }, - "required": [ - "details", - "prices" - ], + "required": ["details", "prices"], "additionalProperties": false }, "action": { "type": "string" } }, - "required": [ - "shipping", - "returns", - "tabs", - "action" - ], + "required": ["shipping", "returns", "tabs", "action"], "additionalProperties": false }, "delete": { @@ -6028,10 +5515,7 @@ "type": "string" } }, - "required": [ - "confirmation", - "successToast" - ], + "required": ["confirmation", "successToast"], "additionalProperties": false }, "edit": { @@ -6047,11 +5531,7 @@ "type": "string" } }, - "required": [ - "header", - "action", - "successToast" - ], + "required": ["header", "action", "successToast"], "additionalProperties": false }, "pricing": { @@ -6061,9 +5541,7 @@ "type": "string" } }, - "required": [ - "action" - ], + "required": ["action"], "additionalProperties": false }, "fields": { @@ -6112,10 +5590,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "calculated": { @@ -6128,24 +5603,15 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false } }, - "required": [ - "fixed", - "calculated" - ], + "required": ["fixed", "calculated"], "additionalProperties": false } }, - "required": [ - "label", - "options" - ], + "required": ["label", "options"], "additionalProperties": false }, "enableInStore": { @@ -6158,10 +5624,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "provider": { @@ -6181,13 +5644,7 @@ "additionalProperties": false } }, - "required": [ - "create", - "delete", - "edit", - "pricing", - "fields" - ], + "required": ["create", "delete", "edit", "pricing", "fields"], "additionalProperties": false }, "serviceZones": { @@ -6227,10 +5684,7 @@ "type": "string" } }, - "required": [ - "header", - "successToast" - ], + "required": ["header", "successToast"], "additionalProperties": false }, "delete": { @@ -6243,10 +5697,7 @@ "type": "string" } }, - "required": [ - "confirmation", - "successToast" - ], + "required": ["confirmation", "successToast"], "additionalProperties": false }, "manageAreas": { @@ -6268,13 +5719,7 @@ "type": "string" } }, - "required": [ - "header", - "action", - "label", - "hint", - "successToast" - ], + "required": ["header", "action", "label", "hint", "successToast"], "additionalProperties": false }, "fields": { @@ -6287,20 +5732,11 @@ "type": "string" } }, - "required": [ - "noRecords", - "tip" - ], + "required": ["noRecords", "tip"], "additionalProperties": false } }, - "required": [ - "create", - "edit", - "delete", - "manageAreas", - "fields" - ], + "required": ["create", "edit", "delete", "manageAreas", "fields"], "additionalProperties": false } }, @@ -6341,11 +5777,7 @@ "type": "string" } }, - "required": [ - "header", - "hint", - "successToast" - ], + "required": ["header", "hint", "successToast"], "additionalProperties": false }, "delete": { @@ -6361,11 +5793,7 @@ "type": "string" } }, - "required": [ - "title", - "description", - "successToast" - ], + "required": ["title", "description", "successToast"], "additionalProperties": false }, "tooltip": { @@ -6375,19 +5803,11 @@ "type": "string" } }, - "required": [ - "type" - ], + "required": ["type"], "additionalProperties": false } }, - "required": [ - "domain", - "subtitle", - "create", - "delete", - "tooltip" - ], + "required": ["domain", "subtitle", "create", "delete", "tooltip"], "additionalProperties": false }, "taxRegions": { @@ -6403,9 +5823,7 @@ "type": "string" } }, - "required": [ - "hint" - ], + "required": ["hint"], "additionalProperties": false }, "delete": { @@ -6418,10 +5836,7 @@ "type": "string" } }, - "required": [ - "confirmation", - "successToast" - ], + "required": ["confirmation", "successToast"], "additionalProperties": false }, "create": { @@ -6443,22 +5858,14 @@ "type": "string" } }, - "required": [ - "rateIsRequired", - "nameIsRequired" - ], + "required": ["rateIsRequired", "nameIsRequired"], "additionalProperties": false }, "successToast": { "type": "string" } }, - "required": [ - "header", - "hint", - "errors", - "successToast" - ], + "required": ["header", "hint", "errors", "successToast"], "additionalProperties": false }, "province": { @@ -6477,17 +5884,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "state": { @@ -6506,17 +5907,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "stateOrTerritory": { @@ -6535,17 +5930,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "county": { @@ -6564,17 +5953,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "region": { @@ -6593,17 +5976,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "department": { @@ -6622,17 +5999,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "territory": { @@ -6651,17 +6022,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "prefecture": { @@ -6680,17 +6045,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "district": { @@ -6709,17 +6068,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "governorate": { @@ -6738,17 +6091,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "canton": { @@ -6767,17 +6114,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "emirate": { @@ -6796,17 +6137,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "sublevel": { @@ -6825,17 +6160,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create" - ], + "required": ["header", "create"], "additionalProperties": false }, "taxOverrides": { @@ -6854,10 +6183,7 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false }, "edit": { @@ -6870,18 +6196,11 @@ "type": "string" } }, - "required": [ - "header", - "hint" - ], + "required": ["header", "hint"], "additionalProperties": false } }, - "required": [ - "header", - "create", - "edit" - ], + "required": ["header", "create", "edit"], "additionalProperties": false }, "taxRates": { @@ -6900,11 +6219,7 @@ "type": "string" } }, - "required": [ - "header", - "hint", - "successToast" - ], + "required": ["header", "hint", "successToast"], "additionalProperties": false }, "edit": { @@ -6920,11 +6235,7 @@ "type": "string" } }, - "required": [ - "header", - "hint", - "successToast" - ], + "required": ["header", "hint", "successToast"], "additionalProperties": false }, "delete": { @@ -6937,18 +6248,11 @@ "type": "string" } }, - "required": [ - "confirmation", - "successToast" - ], + "required": ["confirmation", "successToast"], "additionalProperties": false } }, - "required": [ - "create", - "edit", - "delete" - ], + "required": ["create", "edit", "delete"], "additionalProperties": false }, "fields": { @@ -6970,12 +6274,7 @@ "type": "string" } }, - "required": [ - "label", - "hint", - "true", - "false" - ], + "required": ["label", "hint", "true", "false"], "additionalProperties": false }, "defaultTaxRate": { @@ -6991,11 +6290,7 @@ "type": "string" } }, - "required": [ - "label", - "tooltip", - "action" - ], + "required": ["label", "tooltip", "action"], "additionalProperties": false }, "taxRate": { @@ -7054,11 +6349,7 @@ "type": "string" } }, - "required": [ - "in", - "on", - "and" - ], + "required": ["in", "on", "and"], "additionalProperties": false }, "placeholders": { @@ -7124,9 +6415,7 @@ "type": "string" } }, - "required": [ - "header" - ], + "required": ["header"], "additionalProperties": false }, "values_one": { @@ -7298,10 +6587,7 @@ "type": "string" } }, - "required": [ - "sublevel", - "notPartOfCountry" - ], + "required": ["sublevel", "notPartOfCountry"], "additionalProperties": false }, "alert": { @@ -7317,20 +6603,11 @@ "type": "string" } }, - "required": [ - "header", - "description", - "action" - ], + "required": ["header", "description", "action"], "additionalProperties": false } }, - "required": [ - "labels", - "placeholders", - "tooltips", - "alert" - ], + "required": ["labels", "placeholders", "tooltips", "alert"], "additionalProperties": false }, "noDefaultRate": { @@ -7343,10 +6620,7 @@ "type": "string" } }, - "required": [ - "label", - "tooltip" - ], + "required": ["label", "tooltip"], "additionalProperties": false } }, @@ -7399,9 +6673,7 @@ "type": "string" } }, - "required": [ - "details" - ], + "required": ["details"], "additionalProperties": false }, "tabs": { @@ -7417,11 +6689,7 @@ "type": "string" } }, - "required": [ - "template", - "details", - "campaign" - ], + "required": ["template", "details", "campaign"], "additionalProperties": false }, "fields": { @@ -7458,9 +6726,7 @@ "type": "string" } }, - "required": [ - "tooltip" - ], + "required": ["tooltip"], "additionalProperties": false }, "conditions": { @@ -7476,10 +6742,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "target-rules": { @@ -7492,10 +6755,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "buy-rules": { @@ -7508,18 +6768,11 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, - "required": [ - "rules", - "target-rules", - "buy-rules" - ], + "required": ["rules", "target-rules", "buy-rules"], "additionalProperties": false } }, @@ -7544,9 +6797,7 @@ "type": "string" } }, - "required": [ - "campaignType" - ], + "required": ["campaignType"], "additionalProperties": false }, "errors": { @@ -7559,10 +6810,7 @@ "type": "string" } }, - "required": [ - "requiredField", - "promotionTabError" - ], + "required": ["requiredField", "promotionTabError"], "additionalProperties": false }, "toasts": { @@ -7572,9 +6820,7 @@ "type": "string" } }, - "required": [ - "promotionCreateSuccess" - ], + "required": ["promotionCreateSuccess"], "additionalProperties": false }, "create": { @@ -7596,9 +6842,7 @@ "type": "string" } }, - "required": [ - "title" - ], + "required": ["title"], "additionalProperties": false }, "target-rules": { @@ -7608,9 +6852,7 @@ "type": "string" } }, - "required": [ - "title" - ], + "required": ["title"], "additionalProperties": false }, "buy-rules": { @@ -7620,18 +6862,11 @@ "type": "string" } }, - "required": [ - "title" - ], + "required": ["title"], "additionalProperties": false } }, - "required": [ - "title", - "rules", - "target-rules", - "buy-rules" - ], + "required": ["title", "rules", "target-rules", "buy-rules"], "additionalProperties": false }, "campaign": { @@ -7650,10 +6885,7 @@ "type": "string" } }, - "required": [ - "header", - "successToast" - ], + "required": ["header", "successToast"], "additionalProperties": false }, "actions": { @@ -7663,17 +6895,11 @@ "type": "string" } }, - "required": [ - "goToCampaign" - ], + "required": ["goToCampaign"], "additionalProperties": false } }, - "required": [ - "header", - "edit", - "actions" - ], + "required": ["header", "edit", "actions"], "additionalProperties": false }, "campaign_currency": { @@ -7683,9 +6909,7 @@ "type": "string" } }, - "required": [ - "tooltip" - ], + "required": ["tooltip"], "additionalProperties": false }, "form": { @@ -7722,18 +6946,11 @@ "type": "string" } }, - "required": [ - "title", - "desc" - ], + "required": ["title", "desc"], "additionalProperties": false } }, - "required": [ - "title", - "description", - "placeholder" - ], + "required": ["title", "description", "placeholder"], "additionalProperties": false }, "new": { @@ -7746,10 +6963,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "none": { @@ -7762,18 +6976,11 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, - "required": [ - "existing", - "new", - "none" - ], + "required": ["existing", "new", "none"], "additionalProperties": false }, "status": { @@ -7783,9 +6990,7 @@ "type": "string" } }, - "required": [ - "title" - ], + "required": ["title"], "additionalProperties": false }, "method": { @@ -7804,10 +7009,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "automatic": { @@ -7820,18 +7022,11 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, - "required": [ - "label", - "code", - "automatic" - ], + "required": ["label", "code", "automatic"], "additionalProperties": false }, "max_quantity": { @@ -7844,10 +7039,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "type": { @@ -7863,10 +7055,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "buyget": { @@ -7879,17 +7068,11 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, - "required": [ - "standard", - "buyget" - ], + "required": ["standard", "buyget"], "additionalProperties": false }, "allocation": { @@ -7905,10 +7088,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "across": { @@ -7921,17 +7101,11 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, - "required": [ - "each", - "across" - ], + "required": ["each", "across"], "additionalProperties": false }, "code": { @@ -7944,10 +7118,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "value": { @@ -7957,9 +7128,7 @@ "type": "string" } }, - "required": [ - "title" - ], + "required": ["title"], "additionalProperties": false }, "value_type": { @@ -7975,10 +7144,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "percentage": { @@ -7991,17 +7157,11 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, - "required": [ - "fixed", - "percentage" - ], + "required": ["fixed", "percentage"], "additionalProperties": false } }, @@ -8043,16 +7203,11 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "add", - "list" - ], + "required": ["add", "list"], "additionalProperties": false } }, @@ -8098,11 +7253,7 @@ "type": "string" } }, - "required": [ - "active", - "expired", - "scheduled" - ], + "required": ["active", "expired", "scheduled"], "additionalProperties": false }, "delete": { @@ -8118,11 +7269,7 @@ "type": "string" } }, - "required": [ - "title", - "description", - "successToast" - ], + "required": ["title", "description", "successToast"], "additionalProperties": false }, "edit": { @@ -8138,11 +7285,7 @@ "type": "string" } }, - "required": [ - "header", - "description", - "successToast" - ], + "required": ["header", "description", "successToast"], "additionalProperties": false }, "configuration": { @@ -8164,18 +7307,11 @@ "type": "string" } }, - "required": [ - "header", - "description", - "successToast" - ], + "required": ["header", "description", "successToast"], "additionalProperties": false } }, - "required": [ - "header", - "edit" - ], + "required": ["header", "edit"], "additionalProperties": false }, "create": { @@ -8237,9 +7373,7 @@ "type": "string" } }, - "required": [ - "hint" - ], + "required": ["hint"], "additionalProperties": false } }, @@ -8268,10 +7402,7 @@ "type": "string" } }, - "required": [ - "hint", - "header" - ], + "required": ["hint", "header"], "additionalProperties": false }, "details": { @@ -8293,12 +7424,7 @@ "type": "string" } }, - "required": [ - "type", - "currency", - "limit", - "used" - ], + "required": ["type", "currency", "limit", "used"], "additionalProperties": false }, "type": { @@ -8314,10 +7440,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "usage": { @@ -8330,17 +7453,11 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false } }, - "required": [ - "spend", - "usage" - ], + "required": ["spend", "usage"], "additionalProperties": false }, "edit": { @@ -8350,19 +7467,11 @@ "type": "string" } }, - "required": [ - "header" - ], + "required": ["header"], "additionalProperties": false } }, - "required": [ - "create", - "details", - "fields", - "type", - "edit" - ], + "required": ["create", "details", "fields", "type", "edit"], "additionalProperties": false }, "promotions": { @@ -8378,10 +7487,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "alreadyAdded": { @@ -8400,9 +7506,7 @@ "type": "string" } }, - "required": [ - "success" - ], + "required": ["success"], "additionalProperties": false }, "add": { @@ -8415,15 +7519,11 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "list" - ], + "required": ["list"], "additionalProperties": false }, "list": { @@ -8433,9 +7533,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, @@ -8492,10 +7590,7 @@ "type": "string" } }, - "required": [ - "confirmation", - "successToast" - ], + "required": ["confirmation", "successToast"], "additionalProperties": false }, "create": { @@ -8520,11 +7615,7 @@ "type": "string" } }, - "required": [ - "details", - "products", - "prices" - ], + "required": ["details", "products", "prices"], "additionalProperties": false }, "successToast": { @@ -8540,15 +7631,11 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "list" - ], + "required": ["list"], "additionalProperties": false } }, @@ -8571,10 +7658,7 @@ "type": "string" } }, - "required": [ - "header", - "successToast" - ], + "required": ["header", "successToast"], "additionalProperties": false }, "configuration": { @@ -8596,18 +7680,11 @@ "type": "string" } }, - "required": [ - "header", - "description", - "successToast" - ], + "required": ["header", "description", "successToast"], "additionalProperties": false } }, - "required": [ - "header", - "edit" - ], + "required": ["header", "edit"], "additionalProperties": false }, "products": { @@ -8626,10 +7703,7 @@ "type": "string" } }, - "required": [ - "addProducts", - "editPrices" - ], + "required": ["addProducts", "editPrices"], "additionalProperties": false }, "delete": { @@ -8663,9 +7737,7 @@ "type": "string" } }, - "required": [ - "successToast" - ], + "required": ["successToast"], "additionalProperties": false }, "edit": { @@ -8675,19 +7747,11 @@ "type": "string" } }, - "required": [ - "successToast" - ], + "required": ["successToast"], "additionalProperties": false } }, - "required": [ - "header", - "actions", - "delete", - "add", - "edit" - ], + "required": ["header", "actions", "delete", "add", "edit"], "additionalProperties": false }, "fields": { @@ -8703,10 +7767,7 @@ "type": "string" } }, - "required": [ - "label", - "header" - ], + "required": ["label", "header"], "additionalProperties": false }, "status": { @@ -8731,19 +7792,11 @@ "type": "string" } }, - "required": [ - "active", - "draft", - "expired", - "scheduled" - ], + "required": ["active", "draft", "expired", "scheduled"], "additionalProperties": false } }, - "required": [ - "label", - "options" - ], + "required": ["label", "options"], "additionalProperties": false }, "type": { @@ -8768,10 +7821,7 @@ "type": "string" } }, - "required": [ - "label", - "description" - ], + "required": ["label", "description"], "additionalProperties": false }, "override": { @@ -8784,25 +7834,15 @@ "type": "string" } }, - "required": [ - "label", - "description" - ], + "required": ["label", "description"], "additionalProperties": false } }, - "required": [ - "sale", - "override" - ], + "required": ["sale", "override"], "additionalProperties": false } }, - "required": [ - "label", - "hint", - "options" - ], + "required": ["label", "hint", "options"], "additionalProperties": false }, "startsAt": { @@ -8815,10 +7855,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "endsAt": { @@ -8831,10 +7868,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false }, "customerAvailability": { @@ -8908,10 +7942,7 @@ "type": "string" } }, - "required": [ - "languageLabel", - "usageInsightsLabel" - ], + "required": ["languageLabel", "usageInsightsLabel"], "additionalProperties": false }, "edit": { @@ -8945,9 +7976,7 @@ "type": "string" } }, - "required": [ - "edit" - ], + "required": ["edit"], "additionalProperties": false } }, @@ -9012,11 +8041,7 @@ "type": "string" } }, - "required": [ - "accepted", - "pending", - "expired" - ], + "required": ["accepted", "pending", "expired"], "additionalProperties": false }, "roles": { @@ -9032,11 +8057,7 @@ "type": "string" } }, - "required": [ - "admin", - "developer", - "member" - ], + "required": ["admin", "developer", "member"], "additionalProperties": false }, "deleteUserWarning": { @@ -9121,9 +8142,7 @@ "type": "string" } }, - "required": [ - "header" - ], + "required": ["header"], "additionalProperties": false }, "toast": { @@ -9245,9 +8264,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false }, "toast": { @@ -9266,12 +8283,7 @@ "type": "string" } }, - "required": [ - "delete", - "edit", - "create", - "countries" - ], + "required": ["delete", "edit", "create", "countries"], "additionalProperties": false }, "shippingOption": { @@ -9305,12 +8317,7 @@ "type": "string" } }, - "required": [ - "outbound", - "outboundHint", - "return", - "returnHint" - ], + "required": ["outbound", "outboundHint", "return", "returnHint"], "additionalProperties": false }, "priceType": { @@ -9326,11 +8333,7 @@ "type": "string" } }, - "required": [ - "label", - "flatRate", - "calculated" - ], + "required": ["label", "flatRate", "calculated"], "additionalProperties": false }, "availability": { @@ -9343,10 +8346,7 @@ "type": "string" } }, - "required": [ - "adminOnly", - "adminOnlyHint" - ], + "required": ["adminOnly", "adminOnlyHint"], "additionalProperties": false }, "taxInclusiveHint": { @@ -9362,10 +8362,7 @@ "type": "string" } }, - "required": [ - "label", - "hint" - ], + "required": ["label", "hint"], "additionalProperties": false } }, @@ -9427,9 +8424,7 @@ "type": "string" } }, - "required": [ - "taxCountriesHint" - ], + "required": ["taxCountriesHint"], "additionalProperties": false }, "settings": { @@ -9483,9 +8478,7 @@ "type": "string" } }, - "required": [ - "sectionTitle" - ], + "required": ["sectionTitle"], "additionalProperties": false }, "taxRate": { @@ -9635,11 +8628,7 @@ "type": "string" } }, - "required": [ - "create", - "update", - "removeChannel" - ], + "required": ["create", "update", "removeChannel"], "additionalProperties": false } }, @@ -9669,11 +8658,7 @@ "type": "string" } }, - "required": [ - "domain", - "subtitle", - "deleteWarning" - ], + "required": ["domain", "subtitle", "deleteWarning"], "additionalProperties": false }, "salesChannels": { @@ -9712,6 +8697,16 @@ "deleteSalesChannelWarning": { "type": "string" }, + "tooltip": { + "type": "object", + "properties": { + "cannotDeleteDefault": { + "type": "string" + } + }, + "required": ["cannotDeleteDefault"], + "additionalProperties": false + }, "toast": { "type": "object", "properties": { @@ -9725,11 +8720,7 @@ "type": "string" } }, - "required": [ - "create", - "update", - "delete" - ], + "required": ["create", "update", "delete"], "additionalProperties": false }, "products": { @@ -9742,9 +8733,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false }, "add": { @@ -9757,22 +8746,15 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "list" - ], + "required": ["list"], "additionalProperties": false } }, - "required": [ - "list", - "add" - ], + "required": ["list", "add"], "additionalProperties": false } }, @@ -9806,10 +8788,7 @@ "type": "string" } }, - "required": [ - "publishable", - "secret" - ], + "required": ["publishable", "secret"], "additionalProperties": false }, "subtitle": { @@ -9822,10 +8801,7 @@ "type": "string" } }, - "required": [ - "publishable", - "secret" - ], + "required": ["publishable", "secret"], "additionalProperties": false }, "status": { @@ -9838,10 +8814,7 @@ "type": "string" } }, - "required": [ - "active", - "revoked" - ], + "required": ["active", "revoked"], "additionalProperties": false }, "type": { @@ -9854,10 +8827,7 @@ "type": "string" } }, - "required": [ - "publishable", - "secret" - ], + "required": ["publishable", "secret"], "additionalProperties": false }, "create": { @@ -9917,11 +8887,7 @@ "type": "string" } }, - "required": [ - "header", - "description", - "successToast" - ], + "required": ["header", "description", "successToast"], "additionalProperties": false }, "salesChannels": { @@ -9949,9 +8915,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, @@ -9975,10 +8939,7 @@ "type": "string" } }, - "required": [ - "warning", - "successToast" - ], + "required": ["warning", "successToast"], "additionalProperties": false }, "revoke": { @@ -9991,10 +8952,7 @@ "type": "string" } }, - "required": [ - "warning", - "successToast" - ], + "required": ["warning", "successToast"], "additionalProperties": false }, "addSalesChannels": { @@ -10007,15 +8965,11 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false } }, - "required": [ - "list" - ], + "required": ["list"], "additionalProperties": false }, "removeSalesChannel": { @@ -10063,11 +9017,7 @@ "type": "string" } }, - "required": [ - "revoke", - "copy", - "copySuccessToast" - ], + "required": ["revoke", "copy", "copySuccessToast"], "additionalProperties": false }, "table": { @@ -10080,10 +9030,7 @@ "type": "string" } }, - "required": [ - "lastUsedAtHeader", - "createdAtHeader" - ], + "required": ["lastUsedAtHeader", "createdAtHeader"], "additionalProperties": false }, "fields": { @@ -10160,12 +9107,7 @@ "type": "string" } }, - "required": [ - "header", - "subtitle", - "hint", - "successToast" - ], + "required": ["header", "subtitle", "hint", "successToast"], "additionalProperties": false }, "edit": { @@ -10181,11 +9123,7 @@ "type": "string" } }, - "required": [ - "header", - "subtitle", - "successToast" - ], + "required": ["header", "subtitle", "successToast"], "additionalProperties": false }, "delete": { @@ -10198,10 +9136,7 @@ "type": "string" } }, - "required": [ - "confirmation", - "successToast" - ], + "required": ["confirmation", "successToast"], "additionalProperties": false }, "fields": { @@ -10220,11 +9155,7 @@ "type": "string" } }, - "required": [ - "label", - "placeholder", - "tooltip" - ], + "required": ["label", "placeholder", "tooltip"], "additionalProperties": false }, "label": { @@ -10237,10 +9168,7 @@ "type": "string" } }, - "required": [ - "label", - "placeholder" - ], + "required": ["label", "placeholder"], "additionalProperties": false }, "description": { @@ -10253,18 +9181,11 @@ "type": "string" } }, - "required": [ - "label", - "placeholder" - ], + "required": ["label", "placeholder"], "additionalProperties": false } }, - "required": [ - "value", - "label", - "description" - ], + "required": ["value", "label", "description"], "additionalProperties": false } }, @@ -10293,11 +9214,7 @@ "type": "string" } }, - "required": [ - "forgotPassword", - "title", - "hint" - ], + "required": ["forgotPassword", "title", "hint"], "additionalProperties": false }, "invite": { @@ -10349,9 +9266,7 @@ "type": "string" } }, - "required": [ - "accepted" - ], + "required": ["accepted"], "additionalProperties": false } }, @@ -10496,9 +9411,7 @@ "type": "string" } }, - "required": [ - "noRecordsMessage" - ], + "required": ["noRecordsMessage"], "additionalProperties": false }, "history": { @@ -10595,15 +9508,11 @@ "type": "string" } }, - "required": [ - "waitingToCompensate" - ], + "required": ["waitingToCompensate"], "additionalProperties": false } }, - "required": [ - "state" - ], + "required": ["state"], "additionalProperties": false }, "step": { @@ -10625,18 +9534,11 @@ "type": "string" } }, - "required": [ - "skipped", - "skippedFailure", - "dormant", - "timeout" - ], + "required": ["skipped", "skippedFailure", "dormant", "timeout"], "additionalProperties": false } }, - "required": [ - "state" - ], + "required": ["state"], "additionalProperties": false } }, @@ -10678,11 +9580,7 @@ "type": "string" } }, - "required": [ - "header", - "hint", - "successToast" - ], + "required": ["header", "hint", "successToast"], "additionalProperties": false }, "edit": { @@ -10695,10 +9593,7 @@ "type": "string" } }, - "required": [ - "header", - "successToast" - ], + "required": ["header", "successToast"], "additionalProperties": false }, "delete": { @@ -10711,10 +9606,7 @@ "type": "string" } }, - "required": [ - "confirmation", - "successToast" - ], + "required": ["confirmation", "successToast"], "additionalProperties": false }, "fields": { @@ -10724,20 +9616,11 @@ "type": "string" } }, - "required": [ - "value" - ], + "required": ["value"], "additionalProperties": false } }, - "required": [ - "domain", - "subtitle", - "create", - "edit", - "delete", - "fields" - ], + "required": ["domain", "subtitle", "create", "edit", "delete", "fields"], "additionalProperties": false }, "productTags": { @@ -10759,11 +9642,7 @@ "type": "string" } }, - "required": [ - "header", - "subtitle", - "successToast" - ], + "required": ["header", "subtitle", "successToast"], "additionalProperties": false }, "edit": { @@ -10779,11 +9658,7 @@ "type": "string" } }, - "required": [ - "header", - "subtitle", - "successToast" - ], + "required": ["header", "subtitle", "successToast"], "additionalProperties": false }, "delete": { @@ -10796,10 +9671,7 @@ "type": "string" } }, - "required": [ - "confirmation", - "successToast" - ], + "required": ["confirmation", "successToast"], "additionalProperties": false }, "fields": { @@ -10809,19 +9681,11 @@ "type": "string" } }, - "required": [ - "value" - ], + "required": ["value"], "additionalProperties": false } }, - "required": [ - "domain", - "create", - "edit", - "delete", - "fields" - ], + "required": ["domain", "create", "edit", "delete", "fields"], "additionalProperties": false }, "notifications": { @@ -10840,10 +9704,7 @@ "type": "string" } }, - "required": [ - "title", - "description" - ], + "required": ["title", "description"], "additionalProperties": false }, "accessibility": { @@ -10853,17 +9714,11 @@ "type": "string" } }, - "required": [ - "description" - ], + "required": ["description"], "additionalProperties": false } }, - "required": [ - "domain", - "emptyState", - "accessibility" - ], + "required": ["domain", "emptyState", "accessibility"], "additionalProperties": false }, "errors": { @@ -10876,10 +9731,7 @@ "type": "string" } }, - "required": [ - "serverError", - "invalidCredentials" - ], + "required": ["serverError", "invalidCredentials"], "additionalProperties": false }, "statuses": { @@ -10901,13 +9753,7 @@ "type": "string" } }, - "required": [ - "scheduled", - "expired", - "active", - "enabled", - "disabled" - ], + "required": ["scheduled", "expired", "active", "enabled", "disabled"], "additionalProperties": false }, "labels": { @@ -11702,4 +10548,4 @@ "dateTime" ], "additionalProperties": false -} \ No newline at end of file +} diff --git a/packages/admin/dashboard/src/i18n/translations/en.json b/packages/admin/dashboard/src/i18n/translations/en.json index 5677801063..4b46b2556e 100644 --- a/packages/admin/dashboard/src/i18n/translations/en.json +++ b/packages/admin/dashboard/src/i18n/translations/en.json @@ -2334,6 +2334,9 @@ "update": "Sales channel updated successfully", "delete": "Sales channel deleted successfully" }, + "tooltip": { + "cannotDeleteDefault": "Cannot delete default sales channel" + }, "products": { "list": { "noRecordsMessage": "There are no products in the sales channel." diff --git a/packages/admin/dashboard/src/routes/sales-channels/sales-channel-list/components/sales-channel-list-table.tsx b/packages/admin/dashboard/src/routes/sales-channels/sales-channel-list/components/sales-channel-list-table.tsx index 89d97dc742..ebb0970a7b 100644 --- a/packages/admin/dashboard/src/routes/sales-channels/sales-channel-list/components/sales-channel-list-table.tsx +++ b/packages/admin/dashboard/src/routes/sales-channels/sales-channel-list/components/sales-channel-list-table.tsx @@ -13,8 +13,12 @@ import { createColumnHelper } from "@tanstack/react-table" import { useMemo } from "react" import { useTranslation } from "react-i18next" import { Link } from "react-router-dom" -import { ActionMenu } from "../../../../components/common/action-menu" +import { + ActionGroup, + ActionMenu, +} from "../../../../components/common/action-menu" import { DataTable } from "../../../../components/table/data-table" +import { useStore } from "../../../../hooks/api" import { useDeleteSalesChannel, useSalesChannels, @@ -29,9 +33,12 @@ const PAGE_SIZE = 20 export const SalesChannelListTable = () => { const { t } = useTranslation() + const { store } = useStore() + const { raw, searchParams } = useSalesChannelTableQuery({ pageSize: PAGE_SIZE, }) + const { sales_channels, count, @@ -40,13 +47,22 @@ export const SalesChannelListTable = () => { error, } = useSalesChannels(searchParams, { placeholderData: keepPreviousData, - }) + }) as Omit, "sales_channels"> & { + sales_channels: (HttpTypes.AdminSalesChannel & { is_default?: boolean })[] + } const columns = useColumns() const filters = useSalesChannelTableFilters() + const sales_channels_data = + sales_channels?.map((sales_channel) => { + sales_channel.is_default = + store?.default_sales_channel_id === sales_channel.id + return sales_channel + }) ?? [] + const { table } = useDataTable({ - data: sales_channels ?? [], + data: sales_channels_data, columns, count, enablePagination: true, @@ -97,7 +113,7 @@ export const SalesChannelListTable = () => { const SalesChannelActions = ({ salesChannel, }: { - salesChannel: HttpTypes.AdminSalesChannel + salesChannel: HttpTypes.AdminSalesChannel & { is_default?: boolean } }) => { const { t } = useTranslation() const prompt = usePrompt() @@ -129,30 +145,30 @@ const SalesChannelActions = ({ }) } - return ( - , - label: t("actions.edit"), - to: `/settings/sales-channels/${salesChannel.id}/edit`, - }, - ], + icon: , + label: t("actions.edit"), + to: `/settings/sales-channels/${salesChannel.id}/edit`, }, { - actions: [ - { - icon: , - label: t("actions.delete"), - onClick: handleDelete, - }, - ], + icon: , + label: t("actions.delete"), + onClick: handleDelete, + disabled: salesChannel.is_default, + disabledTooltip, }, - ]} - /> - ) + ], + }, + ] + + return } const columnHelper = createColumnHelper() diff --git a/packages/core/core-flows/src/sales-channel/steps/can-delete-sales-channels.ts b/packages/core/core-flows/src/sales-channel/steps/can-delete-sales-channels.ts new file mode 100644 index 0000000000..1ea082d1f0 --- /dev/null +++ b/packages/core/core-flows/src/sales-channel/steps/can-delete-sales-channels.ts @@ -0,0 +1,36 @@ +import { createStep, StepResponse } from "@medusajs/framework/workflows-sdk" + +import { MedusaError, Modules } from "@medusajs/framework/utils" +export const canDeleteSalesChannelsOrThrowStepId = + "can-delete-sales-channels-or-throw-step" + +export const canDeleteSalesChannelsOrThrowStep = createStep( + canDeleteSalesChannelsOrThrowStepId, + async ({ ids }: { ids: string | string[] }, { container }) => { + const salesChannelIdsToDelete = Array.isArray(ids) ? ids : [ids] + + const storeModule = await container.resolve(Modules.STORE) + + const stores = await storeModule.listStores( + { + default_sales_channel_id: salesChannelIdsToDelete, + }, + { + select: ["default_sales_channel_id"], + } + ) + + const defaultSalesChannelIds = stores.map((s) => s.default_sales_channel_id) + + if (defaultSalesChannelIds.length) { + throw new MedusaError( + MedusaError.Types.INVALID_DATA, + `Cannot delete default sales channels: ${defaultSalesChannelIds.join( + ", " + )}` + ) + } + + return new StepResponse(true) + } +) diff --git a/packages/core/core-flows/src/sales-channel/steps/index.ts b/packages/core/core-flows/src/sales-channel/steps/index.ts index fcebe3f598..1608048f45 100644 --- a/packages/core/core-flows/src/sales-channel/steps/index.ts +++ b/packages/core/core-flows/src/sales-channel/steps/index.ts @@ -6,3 +6,4 @@ export * from "./detach-products-from-sales-channels" export * from "./update-sales-channels" export * from "./associate-locations-with-channels" export * from "./detach-locations-from-channels" +export * from "./can-delete-sales-channels" diff --git a/packages/core/core-flows/src/sales-channel/workflows/delete-sales-channels.ts b/packages/core/core-flows/src/sales-channel/workflows/delete-sales-channels.ts index 4f0685ea78..ee2b7ba228 100644 --- a/packages/core/core-flows/src/sales-channel/workflows/delete-sales-channels.ts +++ b/packages/core/core-flows/src/sales-channel/workflows/delete-sales-channels.ts @@ -7,6 +7,7 @@ import { import { emitEventStep } from "../../common" import { removeRemoteLinkStep } from "../../common/steps/remove-remote-links" import { deleteSalesChannelsStep } from "../steps/delete-sales-channels" +import { canDeleteSalesChannelsOrThrowStep } from "../steps" export type DeleteSalesChannelsWorkflowInput = { ids: string[] } @@ -19,6 +20,7 @@ export const deleteSalesChannelsWorkflow = createWorkflow( ( input: WorkflowData ): WorkflowData => { + canDeleteSalesChannelsOrThrowStep({ ids: input.ids }) deleteSalesChannelsStep(input.ids) removeRemoteLinkStep({ diff --git a/packages/core/types/src/store/common/store.ts b/packages/core/types/src/store/common/store.ts index 98096446af..a34ae9c81d 100644 --- a/packages/core/types/src/store/common/store.ts +++ b/packages/core/types/src/store/common/store.ts @@ -1,4 +1,4 @@ -import { BaseFilterable } from "../../dal" +import { BaseFilterable, OperatorMap } from "../../dal" export interface StoreCurrencyDTO { /** @@ -99,4 +99,8 @@ export interface FilterableStoreProps * Filter stores by their names. */ name?: string | string[] + /** + * Filter stores by their associated default sales channel's ID. + */ + default_sales_channel_id?: string | string[] | OperatorMap }