# API Route Map

> Auto-generated by `scripts/generate-api-map.js` — do not edit manually. See also `routes.json`.
> Last generated: 2026-04-20 17:59:34 UTC

## Contents

1. [By Service File](#by-service-file)
2. [By Controller](#by-controller)
3. [Unmapped Routes](#unmapped-routes)

---

## By Service File

### `addon-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getAddonsByPlan` | `GET` | `data/addons/{planSlug}` | `AdminPortal/Addons/Addons.php` | index, show, update | AdminPortalDatabaseService, AdminPortalServiceFactory, ConfigurationHistoryService, AddonConfigurationService |
| `getAddons` | `GET` | `data/addons` | `AdminPortal/Addons/Addons.php` | index, show, update | AdminPortalDatabaseService, AdminPortalServiceFactory, ConfigurationHistoryService, AddonConfigurationService |
| `saveAddons` | `PUT` | `data/addons` | `AdminPortal/Addons/Addons.php` | index, show, update | AdminPortalDatabaseService, AdminPortalServiceFactory, ConfigurationHistoryService, AddonConfigurationService |

### `ai-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `transformText` | `POST` | `ap/generate/transform` | `AdminPortal/Ai/Transform.php` | create | AiTextTransformationService |

### `asset-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getCss` | `GET` | `ap/assets/css` | `AdminPortal/Assets/Css.php` | index, update | CssService |
| `saveCss` | `PUT` | `ap/assets/css` | `AdminPortal/Assets/Css.php` | index, update | CssService |

### `auth-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `checkAuth` | `GET` | `check-auth` | `UserAccountStatus.php` | index | — |
| `checkEmailForSSO` | `POST` | `sso/check` | `AdminPortal/Auth/GoogleSSOEmailCheck.php` | create | — |
| `signIn` | `POST` | `sign-in` | `AdminPortal/Auth/Auth.php` | index, create | — |
| `signOut` | `GET` | `sign-out` | `AdminPortal/Auth/SignOut.php` | index | — |
| `requestResetPassword` | `PUT` | `recover-account` | `AdminPortal/Auth/RecoverAccount.php` | update, show, create | AccountRecoveryService |
| `validateResetRequest` | `GET` | `recover-account/{requestId}` | `AdminPortal/Auth/RecoverAccount.php` | update, show, create | AccountRecoveryService |
| `resetPassword` | `POST` | `recover-account` | `AdminPortal/Auth/RecoverAccount.php` | update, show, create | AccountRecoveryService |

### `banner-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getBanners` | `GET` | `data/content/banners` | `AdminPortal/Content/Banners.php` | index, delete, show, update, create | BannerService |
| `deleteBanner` | `DELETE` | `data/content/banners` | `AdminPortal/Content/Banners.php` | index, delete, show, update, create | BannerService |
| `getBanner` | `GET` | `data/content/banners/{id}` | `AdminPortal/Content/Banners.php` | index, delete, show, update, create | BannerService |
| `updateBanner` | `PUT` | `data/content/banners/{id}` | `AdminPortal/Content/Banners.php` | index, delete, show, update, create | BannerService |
| `createBanner` | `POST` | `data/content/banners` | `AdminPortal/Content/Banners.php` | index, delete, show, update, create | BannerService |
| `getPanels` | `GET` | `data/content/banners/{id}/panels` | `AdminPortal/Content/Panels.php` | index, show, update, create, delete | PanelService |
| `getPanel` | `GET` | `data/content/banners/{bannerId}/panels/{panelId}` | `AdminPortal/Content/Panels.php` | index, show, update, create, delete | PanelService |
| `createPanel` | `POST` | `data/content/banners/{bannerId}/panels` | `AdminPortal/Content/Panels.php` | index, show, update, create, delete | PanelService |
| `updatePanel` | `PUT` | `data/content/banners/{bannerId}/panels/{id}` | `AdminPortal/Content/Panels.php` | index, show, update, create, delete | PanelService |
| `deletePanel` | `DELETE` | `data/content/banners/{bannerId}/panels` | `AdminPortal/Content/Panels.php` | index, show, update, create, delete | PanelService |

### `cache-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `` | `DELETE` | `ap/cache/clear` | `Cache.php` | index, show, delete | CacheService |
| `` | `DELETE` | `ap/cache/clear/{type}` | `Cache.php` | index, show, delete | CacheService |
| `` | `GET` | `ap/cache/status` | ⚠️ unmapped | _inherited_ | — |
| `` | `GET` | `ap/cache/contents` | ⚠️ unmapped | _inherited_ | — |

### `category-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getCategories` | `GET` | `data/category` | `Categories.php` | index | HierarchyServiceFactory |
| `getCategoryHierarchy` | `GET` | `data/category/hierarchy` | `CategoryHierarchy.php` | index | CategoryHierarchyDataService |
| `getCategory` | `GET` | `data/category/{id}` | `Categories.php` | index | HierarchyServiceFactory |
| `getAssignedProducts` | `GET` | `data/category/{id}/assignment` | `AdminPortal/CategoryAssignment.php` | show, delete, update, create | CategoryAssignmentService |
| `updateAssignedProduct` | `PUT` | `data/category/{categoryId}/assignment` | `AdminPortal/CategoryAssignment.php` | show, delete, update, create | CategoryAssignmentService |
| `createCategory` | `POST` | `data/category` | `Categories.php` | index | HierarchyServiceFactory |
| `updateCategory` | `PUT` | `data/category/{id}` | `Categories.php` | index | HierarchyServiceFactory |
| `getCustomFields` | `GET` | `data/category/custom-fields` | `AdminPortal/CategoryCustomFields.php` | index, update, delete, create | CustomFieldService |
| `updateCustomField` | `PUT` | `data/category/custom-fields` | `AdminPortal/CategoryCustomFields.php` | index, update, delete, create | CustomFieldService |
| `createCustomField` | `POST` | `data/category/custom-fields` | `AdminPortal/CategoryCustomFields.php` | index, update, delete, create | CustomFieldService |
| `deleteCustomField` | `DELETE` | `data/category/custom-fields` | `AdminPortal/CategoryCustomFields.php` | index, update, delete, create | CustomFieldService |
| `getCustomFieldData` | `GET` | `data/category/custom-field/{id}` | `AdminPortal/CategoryCustomFieldData.php` | show, update, delete | CustomFieldDataService |
| `updateCustomFieldData` | `PUT` | `data/category/custom-field` | `AdminPortal/CategoryCustomFieldData.php` | show, update, delete | CustomFieldDataService |
| `deleteCustomFieldData` | `DELETE` | `data/category/custom-field` | `AdminPortal/CategoryCustomFieldData.php` | show, update, delete | CustomFieldDataService |
| `runCategoryAutocomplete` | `GET` | `data/category/autocomplete` | `AdminPortal/CategoryAutocomplete.php` | index | CategoryAutocompleteService |
| `updateCategoryPosition` | `PUT` | `data/category/sequence` | `AdminPortal/CategorySequence.php` | update, updateCategorySequence | CategorySequenceService |
| `assignProductToCategory` | `POST` | `data/category/{categoryId}/assignment` | `AdminPortal/CategoryAssignment.php` | show, delete, update, create | CategoryAssignmentService |
| `deleteProductCategoryAssignment` | `DELETE` | `data/category/{categoryId}/assignment/{id}` | `AdminPortal/CategoryAssignment.php` | show, delete, update, create | CategoryAssignmentService |
| `deleteCategory` | `DELETE` | `data/category/{categoryId}` | `Categories.php` | index | HierarchyServiceFactory |
| `deleteCategoryImage` | `DELETE` | `data/category/{categoryId}/image/{imageId}` | `AdminPortal/CategoryImage.php` | delete | CategoryImageService |

### `checkout-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `` | `GET` | `data/site/checkout` | `CheckoutSettings.php` | index, update | CheckoutSettingService |
| `` | `PUT` | `data/site/checkout/{id}` | `CheckoutSettings.php` | index, update | CheckoutSettingService |

### `condition-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `` | `GET` | `conditions` | `Conditions.php` | index | ConditionDataService |
| `` | `GET` | `data/conditions` | `ConditionData.php` | index, show, create, delete | ConditionDataService |
| `` | `GET` | `data/conditions/{id}` | `ConditionData.php` | index, show, create, delete | ConditionDataService |
| `` | `DELETE` | `data/conditions/rules/{id}` | `ConditionRuleData.php` | delete, update, create | ConditionRuleDataService, ConditionDataService |
| `` | `DELETE` | `data/conditions/associations/{id}` | `ConditionAssociationData.php` | delete, create | ConditionAssociationDataService, ConditionDataService |
| `` | `POST` | `data/conditions/associations` | `ConditionAssociationData.php` | delete, create | ConditionAssociationDataService, ConditionDataService |
| `` | `POST` | `data/conditions` | `ConditionData.php` | index, show, create, delete | ConditionDataService |
| `` | `PUT` | `data/conditions/rules/{id}` | `ConditionRuleData.php` | delete, update, create | ConditionRuleDataService, ConditionDataService |
| `` | `POST` | `data/conditions/rules` | `ConditionRuleData.php` | delete, update, create | ConditionRuleDataService, ConditionDataService |
| `` | `GET` | `data/conditions/rules/types` | `ConditionRuleTypeData.php` | index | ConditionRuleTypeDataService |
| `` | `DELETE` | `data/conditions/{id}` | `ConditionData.php` | index, show, create, delete | ConditionDataService |

### `content-card-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getCards` | `GET` | `data/content/cards` | `AdminPortal/Content/Cards.php` | index, delete, update, upsertPage, show | CardService |
| `deleteCard` | `DELETE` | `data/content/cards` | `AdminPortal/Content/Cards.php` | index, delete, update, upsertPage, show | CardService |
| `getCard` | `GET` | `data/content/cards/{id}` | `AdminPortal/Content/Cards.php` | index, delete, update, upsertPage, show | CardService |
| `upsertCard` | `PUT` | `data/content/cards` | `AdminPortal/Content/Cards.php` | index, delete, update, upsertPage, show | CardService |

### `custom-field-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getCustomFields` | `GET` | `product/custom-fields` | `ProductCustomFields.php` | _inherited_ | ProductCustomFieldService |
| `customFieldAutocomplete` | `GET` | `data/product/custom-field/autocomplete` | `AdminPortal/ProductCustomFieldAutocomplete.php` | index | CustomFieldService |

### `custom-page-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getCustomPages` | `GET` | `data/content/custom-pages` | `AdminPortal/Content/CustomPages.php` | index, delete, show, update, create | CustomPageService |
| `getCustomPage` | `GET` | `data/content/custom-pages/{id}` | `AdminPortal/Content/CustomPages.php` | index, delete, show, update, create | CustomPageService |
| `deleteCustomPage` | `DELETE` | `data/content/custom-pages` | `AdminPortal/Content/CustomPages.php` | index, delete, show, update, create | CustomPageService |
| `createCustomPage` | `POST` | `data/content/custom-pages` | `AdminPortal/Content/CustomPages.php` | index, delete, show, update, create | CustomPageService |
| `updateCustomPage` | `PUT` | `data/content/custom-pages/{id}` | `AdminPortal/Content/CustomPages.php` | index, delete, show, update, create | CustomPageService |

### `customer-portal-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getViewSettings` | `GET` | `data/customer-portal/settings` | `AdminPortal/CustomerPortalSettings.php` | index, update | OpenOrderSettingService, InvoicedOrderSettingService, ItemPurchaseHistorySettingService, OrderTemplateSettingsService, CustomerPortalServiceFactory |
| `updateGridSettings` | `PUT` | `data/customer-portal/settings` | `AdminPortal/CustomerPortalSettings.php` | index, update | OpenOrderSettingService, InvoicedOrderSettingService, ItemPurchaseHistorySettingService, OrderTemplateSettingsService, CustomerPortalServiceFactory |
| `updateGridItemSequence` | `PUT` | `data/customer-portal/settings` | `AdminPortal/CustomerPortalSettings.php` | index, update | OpenOrderSettingService, InvoicedOrderSettingService, ItemPurchaseHistorySettingService, OrderTemplateSettingsService, CustomerPortalServiceFactory |

### `diagnostic-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `runDiagnostic` | `GET` | `diagnostics/{category}` | `DiagnosticData.php` | show | — |

### `erp-data-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getBookPrices` | `GET` | `erp/book-prices` | `BookPrices.php` | index | BookPriceDataService |
| `getPriceMatrixData` | `GET` | `erp/price-matrix` | `PriceMatrix.php` | index | PriceMatrixDataService |
| `getPromotionalPricing` | `GET` | `erp/promotional-pricing` | `PromotionalPricing.php` | index | PromotionalPricingDataService |
| `getPaymentTerms` | `GET` | `erp/payment-terms` | `GridPaymentTerms.php` | index | PaymentTermDataService |
| `getCustomerData` | `GET` | `erp/customers` | `GridCustomer.php` | index | CustomerDataService |
| `getSalesOrderDetail` | `GET` | `erp/sales-orders/{id}` | `AdminPortal/GridErpSalesOrders.php` | index, show | SalesOrderDataService, ErpSalesOrderDetailService |
| `getSalesOrders` | `GET` | `erp/sales-orders` | `AdminPortal/GridErpSalesOrders.php` | index, show | SalesOrderDataService, ErpSalesOrderDetailService |
| `getCustomerTaxes` | `GET` | `erp/customers/taxes` | `AdminPortal/CustomerTaxes.php` | index | CustomerTaxDataService |

### `event-registrants-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getEventRegistrants` | `GET` | `data/events/{eventId}/registrants` | `AdminPortal/Events/EventRegistrants.php` | index, update | EventRegistrantsService |
| `sendReminderEmail` | `PUT` | `data/events/{eventId}/registrants/{registrantId}/send` | `AdminPortal/Events/EventRegistrants.php` | index, update | EventRegistrantsService |

### `event-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getEvents` | `GET` | `data/events` | `AdminPortal/Events/Events.php` | index, create, show, delete, update | EventsService |
| `createEvent` | `POST` | `data/events` | `AdminPortal/Events/Events.php` | index, create, show, delete, update | EventsService |
| `updateEvent` | `PUT` | `data/events` | `AdminPortal/Events/Events.php` | index, create, show, delete, update | EventsService |
| `getEvent` | `GET` | `data/events/{id}` | `AdminPortal/Events/Events.php` | index, create, show, delete, update | EventsService |
| `copyEvent` | `POST` | `data/events` | `AdminPortal/Events/Events.php` | index, create, show, delete, update | EventsService |
| `deleteEvent` | `DELETE` | `data/events` | `AdminPortal/Events/Events.php` | index, create, show, delete, update | EventsService |
| `getEventInstances` | `GET` | `data/events/{id}/instance` | `Events/Events.php` | index, show | EventService |
| `getEventInstance` | `GET` | `data/events/{id}/instance/{eventInstanceId}` | `Events/Events.php` | index, show | EventService |
| `getEventAutocompleteFields` | `GET` | `data/events/fields` | `AdminPortal/Events/EventFields.php` | index, create | EventFieldService |
| `createEventAutocompleteField` | `POST` | `data/events/fields` | `AdminPortal/Events/EventFields.php` | index, create | EventFieldService |
| `getEventSettings` | `GET` | `data/events/settings` | `AdminPortal/Events/EventSettings.php` | index, update | EventSettingsService |
| `updateEventSettings` | `PUT` | `data/events/settings` | `AdminPortal/Events/EventSettings.php` | index, update | EventSettingsService |

### `export-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `exportData` | `POST/SSE` | `ap/export` | `AdminPortal/Export.php` | create, writeRows | — |

### `file-manager-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getFolders` | `GET` | `ap/folders` | `AdminPortal/FileManager/Folders.php` | index, show | FileManagerService |
| `getFiles` | `GET` | `ap/files/{path}` | `AdminPortal/FileManager/Files.php` | index | FileManagerTrashService, FileManagerFileService |
| `deleteFiles` | `DELETE` | `ap/files` | `AdminPortal/FileManager/Files.php` | index | FileManagerTrashService, FileManagerFileService |
| `getFolderHealth` | `GET` | `ap/folders/{path}` | `AdminPortal/FileManager/Folders.php` | index, show | FileManagerService |
| `purgeFiles` | `DELETE` | `ap/files/purge` | `AdminPortal/FileManager/Files.php` | index | FileManagerTrashService, FileManagerFileService |
| `restoreFiles` | `POST` | `ap/files/restore` | `AdminPortal/FileManager/Files.php` | index | FileManagerTrashService, FileManagerFileService |

### `image-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `upload` | `POST` | `ap/upload` | `FileUpload.php` | create, show | — |

### `import-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getImportRequirementsV2` | `GET` | `ap/import/req` | `AdminPortal/Import/ImportRequirements.php` | index | — |
| `importDataV2` | `POST/SSE` | `ap/import` | `AdminPortal/Import/Import.php` | create | ImportService |

### `init-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `init` | `GET` | `ap/init` | `AdminPortal/AppInit.php` | init | UserSettingService, PermissionService, LanguageService, AdminPortalDatabaseService, AdminPortalServiceFactory, SystemServiceFactory, LanguageServiceFactory, CacheFactory, ConfigurationHistoryService, AddonConfigurationService |

### `labels-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getLabels` | `GET` | `data/labels` | `AdminPortal/Labels.php` | index, update, delete | LabelDataService |
| `updateLabel` | `PUT` | `data/labels/{id}` | `AdminPortal/Labels.php` | index, update, delete | LabelDataService |
| `deleteLabel` | `DELETE` | `data/labels/{id}` | `AdminPortal/Labels.php` | index, update, delete | LabelDataService |

### `manufacturer-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `` | `GET` | `data/manufacturers` | `Manufacturers.php` | _inherited_ | — |

### `navigation-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `` | `GET` | `ap/navigation` | `Navigation.php` | index, create, delete | AdminPortalNavigationService |
| `` | `POST` | `ap/navigation` | `Navigation.php` | index, create, delete | AdminPortalNavigationService |
| `` | `DELETE` | `ap/navigation/{id}` | `Navigation.php` | index, create, delete | AdminPortalNavigationService |

### `order-template-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getGlobalTemplates` | `GET` | `data/order-templates/global` | `GlobalOrderTemplate.php` | index, update, delete, create | GlobalOrderTemplateDataService |
| `createGlobalTemplate` | `POST` | `data/order-templates/global` | `GlobalOrderTemplate.php` | index, update, delete, create | GlobalOrderTemplateDataService |
| `updateGlobalTemplate` | `PUT` | `data/order-templates/global/{templateId}` | `GlobalOrderTemplate.php` | index, update, delete, create | GlobalOrderTemplateDataService |
| `deleteGlobalTemplate` | `DELETE` | `data/order-templates/global/{templateId}` | `GlobalOrderTemplate.php` | index, update, delete, create | GlobalOrderTemplateDataService |
| `getGlobalTemplate` | `GET` | `data/order-templates/global/details` | `GlobalOrderTemplateDetails.php` | index, delete, create | GlobalOrderTemplateDetailService |
| `deleteGlobalOrderTemplateItem` | `DELETE` | `data/order-templates/global/details/{itemId}` | `GlobalOrderTemplateDetails.php` | index, delete, create | GlobalOrderTemplateDetailService |
| `addGlobalTemplateProduct` | `POST` | `data/order-templates/global/details` | `GlobalOrderTemplateDetails.php` | index, delete, create | GlobalOrderTemplateDetailService |
| `getUserTemplates` | `GET` | `data/order-templates/user` | `UserOrderTemplate.php` | index, delete, create | UserOrderTemplateDataService |
| `deleteUserTemplate` | `DELETE` | `data/order-templates/user/remove/{id}` | `UserOrderTemplates.php` | show, update, delete | UserOrderTemplateService |
| `getUserTemplate` | `GET` | `data/order-templates/user/detail` | `UserOrderTemplateDetail.php` | index, delete, create | UserOrderTemplateDetailService |
| `deleteUserTemplateItem` | `DELETE` | `data/order-templates/user/detail/{id}` | `UserOrderTemplateDetail.php` | index, delete, create | UserOrderTemplateDetailService |
| `addUserTemplateItem` | `POST` | `data/order-templates/user/detail` | `UserOrderTemplateDetail.php` | index, delete, create | UserOrderTemplateDetailService |
| `createUserTemplate` | `POST` | `data/order-templates/user` | `UserOrderTemplate.php` | index, delete, create | UserOrderTemplateDataService |

### `orders-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getOrders` | `GET` | `data/orders` | `Orders.php` | index, show, create, update | OrderService |
| `getOrder` | `GET` | `data/orders/{id}` | `Orders.php` | index, show, create, update | OrderService |
| `saveErrorResolution` | `POST` | `data/orders/error` | `OrderResolution.php` | create | — |
| `getNewCustomerCreationDefaults` | `GET` | `data/orders/customer/defaults` | `CustomerAvailableDefaults.php` | index | CurrencyService, PaymentTermService, ShippingMethodService, NewCustomerDefaultsService, CurrencyServiceFactory, PaymentServiceFactory, ShippingServiceFactory, OrderServiceFactory |
| `updateOrderStatus` | `PUT` | `data/orders/{orderId}` | `Orders.php` | index, show, create, update | OrderService |

### `payment-configuration-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getPaymentConfigurationInstances` | `GET` | `data/configuration` | `AdminPortal/Configuration/Settings.php` | index, update, create, delete | — |
| `createPaymentConfigurationInstance` | `POST` | `data/configuration` | `AdminPortal/Configuration/Settings.php` | index, update, create, delete | — |
| `updatePaymentConfigurationInstance` | `PUT` | `data/configuration` | `AdminPortal/Configuration/Settings.php` | index, update, create, delete | — |

### `payment-term-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getPaymentTerms` | `GET` | `ap/payment-terms` | `PaymentTerms.php` | index | PaymentTermService |

### `places-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getCountries` | `GET` | `ap/places/countries` | `Country.php` | index | CountryService |
| `getRegions` | `GET` | `ap/places/regions/{regionId}` | `Regions.php` | show | RegionService |

### `price-lookup-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getPriceLookup` | `GET` | `/ap/price-lookup` | `AdminPortal/PriceLookup.php` | index | PriceLookupService |

### `product-selector-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getSelectors` | `GET` | `data/product-selector` | `AdminPortal/ProductSelector/ProductSelector.php` | index, show, delete, deleteSelector, update, create | ProductSelectorService |
| `getSelector` | `GET` | `data/product-selector/{id}` | `AdminPortal/ProductSelector/ProductSelector.php` | index, show, delete, deleteSelector, update, create | ProductSelectorService |
| `deleteSelector` | `DELETE` | `data/product-selector` | `AdminPortal/ProductSelector/ProductSelector.php` | index, show, delete, deleteSelector, update, create | ProductSelectorService |
| `addSelectorProducts` | `POST` | `data/product-selector/{selectorId}/products` | `AdminPortal/ProductSelector/ProductSelectorProducts.php` | create, delete, update, index | ProductSelectorProductService |
| `deleteSelectorProducts` | `DELETE` | `data/product-selector/{selectorId}/products` | `AdminPortal/ProductSelector/ProductSelectorProducts.php` | create, delete, update, index | ProductSelectorProductService |
| `updateSelectorProducts` | `PUT` | `data/product-selector/{selectorId}/products` | `AdminPortal/ProductSelector/ProductSelectorProducts.php` | create, delete, update, index | ProductSelectorProductService |
| `getProductSelectorProducts` | `GET` | `data/product-selector/{selectorId}/products` | `AdminPortal/ProductSelector/ProductSelectorProducts.php` | create, delete, update, index | ProductSelectorProductService |
| `addSelectorCustomField` | `POST` | `data/product-selector/{selectorId}/custom-fields` | `AdminPortal/ProductSelector/ProductSelectorCustomFields.php` | create, delete | ProductSelectorCustomFieldService |
| `deleteSelectorCustomField` | `DELETE` | `data/product-selector/{selectorId}/custom-fields` | `AdminPortal/ProductSelector/ProductSelectorCustomFields.php` | create, delete | ProductSelectorCustomFieldService |
| `addSelectorCategory` | `POST` | `data/product-selector/{selectorId}/categories` | `AdminPortal/ProductSelector/ProductSelectorCategories.php` | create, delete | ProductSelectorCategoryService |
| `deleteSelectorCategory` | `DELETE` | `data/product-selector/{selectorId}/categories` | `AdminPortal/ProductSelector/ProductSelectorCategories.php` | create, delete | ProductSelectorCategoryService |
| `updateSelector` | `PUT` | `data/product-selector/{id}` | `AdminPortal/ProductSelector/ProductSelector.php` | index, show, delete, deleteSelector, update, create | ProductSelectorService |
| `saveSelector` | `POST` | `data/product-selector` | `AdminPortal/ProductSelector/ProductSelector.php` | index, show, delete, deleteSelector, update, create | ProductSelectorService |
| `updateProductSelectorProductData` | `PUT` | `data/product-selector/{selectorId}/products/data` | `AdminPortal/ProductSelector/ProductSelectorProductData.php` | update | ProductSelectorProductService |

### `product-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getData` | `GET` | `data/product` | `Products.php` | index, show | — |
| `updateProduct` | `PUT` | `data/product/{id}` | `Products.php` | index, show | — |
| `getProduct` | `GET` | `data/product/{id}` | `Products.php` | index, show | — |
| `runProductAutocomplete` | `GET` | `data/product/autocomplete` | `ProductAutocomplete.php` | index | ProductAutocompleteService |
| `getCustomFields` | `GET` | `data/product/custom-fields` | `AdminPortal/ProductCustomFields.php` | index, update, delete, create | CustomFieldService |
| `updateCustomField` | `PUT` | `data/product/custom-fields` | `AdminPortal/ProductCustomFields.php` | index, update, delete, create | CustomFieldService |
| `deleteCustomField` | `DELETE` | `data/product/custom-fields` | `AdminPortal/ProductCustomFields.php` | index, update, delete, create | CustomFieldService |
| `createCustomField` | `POST` | `data/product/custom-fields` | `AdminPortal/ProductCustomFields.php` | index, update, delete, create | CustomFieldService |
| `getCustomFieldData` | `GET` | `data/product/custom-field/{id}` | `AdminPortal/ProductCustomFieldData.php` | show, update, delete | CustomFieldDataService |
| `updateCustomFieldData` | `PUT` | `data/product/custom-field` | `AdminPortal/ProductCustomFieldData.php` | show, update, delete | CustomFieldDataService |
| `deleteCustomFieldData` | `DELETE` | `data/product/custom-field` | `AdminPortal/ProductCustomFieldData.php` | show, update, delete | CustomFieldDataService |

### `promotion-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getPromotions` | `GET` | `data/promotions` | `Promotions.php` | index | PromoService |
| `getPromotionTypes` | `GET` | `data/promotions/types` | `PromotionTypes.php` | index | PromotionTypeService |
| `savePromotion` | `POST` | `data/promotions` | `Promotions.php` | index | PromoService |
| `getPromotion` | `GET` | `data/promotions/{id}` | `Promotions.php` | index | PromoService |
| `deletePromotion` | `DELETE` | `data/promotions/{promotionId}` | `Promotions.php` | index | PromoService |

### `revision-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getRevisionByType` | `GET` | `ap/revision/{type}` | `AdminPortal/Revision.php` | show | RevisionService |

### `sales-tax-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getSalesTaxes` | `GET` | `ap/sales-taxes` | `SalesTaxes.php` | index | SalesTaxService |

### `search-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getIndexStats` | `GET` | `ap/search/index/stats` | `SearchIndexStats.php` | index | StatService |
| `createIndex` | `POST/SSE` | `ap/search/index/stream` | `SearchIndexStream.php` | create, update | SearchItemCountService, IndexerFactory |
| `updateIndex` | `POST/SSE` | `ap/search/index/stream/{type}` | `SearchIndexStream.php` | create, update | SearchItemCountService, IndexerFactory |

### `setting-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getConfigForKey` | `GET` | `data/configuration` | `AdminPortal/Configuration/Settings.php` | index, update, create, delete | — |
| `handleSaveConfig` | `PUT` | `data/configuration` | `AdminPortal/Configuration/Settings.php` | index, update, create, delete | — |
| `sendTestEmail` | `POST` | `data/email/test` | `AdminPortal/Email/TestEmail.php` | create | EmailTestService, EmailServiceFactory |

### `shipping-calculator-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getShippingCalculatorConfiguration` | `GET` | `data/configuration)}` | ⚠️ unmapped | _inherited_ | — |
| `createShippingCalculator` | `POST` | `data/configuration)}` | ⚠️ unmapped | _inherited_ | — |
| `updateShippingCalculator` | `PUT` | `data/configuration)}` | ⚠️ unmapped | _inherited_ | — |
| `deleteShippingCalculator` | `DELETE` | `data/configuration)}` | ⚠️ unmapped | _inherited_ | — |
| `updateShippingCalculatorFlatRateSettings` | `PUT` | `data/configuration)}` | ⚠️ unmapped | _inherited_ | — |
| `updateShippingCalculatorRangeSettings` | `PUT` | `data/configuration)}` | ⚠️ unmapped | _inherited_ | — |
| `createShippingCalculatorRange` | `POST` | `data/configuration)}` | ⚠️ unmapped | _inherited_ | — |
| `updateShippingCalculatorRange` | `PUT` | `data/configuration)}` | ⚠️ unmapped | _inherited_ | — |
| `deleteShippingCalculatorRange` | `DELETE` | `data/configuration)}` | ⚠️ unmapped | _inherited_ | — |

### `shipping-method-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getShippingMethods` | `GET` | `ap/shipping-methods` | `ShippingMethods.php` | index | ShippingMethodService |

### `site-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getSiteSettings` | `GET` | `data/site/settings` | `SiteSettings.php` | index, update | SiteSettingDataService |
| `updateSetting` | `PUT` | `data/site/settings/{id}` | `SiteSettings.php` | index, update | SiteSettingDataService |
| `deleteSettingTag` | `DELETE` | `data/site/settings/tags/{id}` | `SiteSettingTags.php` | index, delete, create | SettingTagService |
| `getTags` | `GET` | `data/site/settings/tags` | `SiteSettingTags.php` | index, delete, create | SettingTagService |
| `createTag` | `POST` | `data/site/settings/tags` | `SiteSettingTags.php` | index, delete, create | SettingTagService |
| `getPreviewSettings` | `GET` | `data/site/view-settings` | `ViewSettings.php` | index, update | — |
| `updatePreviewSetting` | `PUT` | `data/site/view-settings/{id}` | `ViewSettings.php` | index, update | — |
| `getPreviewSections` | `GET` | `data/preview-settings/sections` | `PreviewSettingSections.php` | index | PreviewSettingSectionService |
| `saveSiteStatus` | `PUT` | `ap/site` | `AdminPortal/Site.php` | update | SiteService |
| `getLanguages` | `GET` | `ap/languages` | `Languages.php` | _inherited_ | — |

### `stats-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `` | `GET` | `data/stats` | `Stats.php` | index | StatService |

### `system-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getUserRoles` | `GET` | `ap/user/roles` | `UserRoles.php` | index | RoleService |
| `getRolePermissions` | `GET` | `ap/user/roles/{roleId}/permissions` | `Permissions.php` | _inherited_ | — |
| `updatePermission` | `PUT` | `ap/user/roles/{roleId}/permissions/{id}` | `Permissions.php` | _inherited_ | — |
| `fetchSyncStatus` | `GET` | `ap/sync/status` | `AdminPortal/SyncStatus.php` | index | SyncStatusService |
| `submitSupportRequest` | `POST` | `ap/support` | `AdminPortal/Desk.php` | create | ZohoDeskService |

### `user-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getUsers` | `GET` | `data/user` | `Users.php` | update | UserService, UserManagerService, UserLoginService |
| `customerAutocomplete` | `GET` | `data/customer/autocomplete` | `CustomerAutocomplete.php` | index | CustomerDataService |
| `customerAddressSelectionAutocomplete` | `GET` | `data/user/customer/address/autocomplete` | `UserCustomerAddressAutocomplete.php` | index | UserCustomerAddressAutocompleteService |
| `getUser` | `GET` | `data/user/{id}` | `Users.php` | update | UserService, UserManagerService, UserLoginService |
| `updateUser` | `PUT` | `data/user/{id}` | `Users.php` | update | UserService, UserManagerService, UserLoginService |
| `impersonateUser` | `POST` | `user/impersonate` | `UserImpersonator.php` | create | UserImpersonatorService |
| `previewActivation` | `POST` | `ap/user` | `UserSettings.php` | create | UserSettingService |
| `saveUserSetting` | `POST` | `ap/user` | `UserSettings.php` | create | UserSettingService |
| `getUserTags` | `GET` | `data/user/tags` | `UserTags.php` | index, delete | UserTagService |
| `deleteUserTag` | `DELETE` | `data/user/{userId}/tags` | `Users.php` | update | UserService, UserManagerService, UserLoginService |
| `deleteUser` | `DELETE` | `data/user/{userId}` | `Users.php` | update | UserService, UserManagerService, UserLoginService |
| `encodeEmail` | `GET` | `ap/encode/email` | `EncodeEmail.php` | index | — |
| `userCustomerAutocomplete` | `GET` | `data/users/customer/autocomplete` | `UserCustomerAutocomplete.php` | index, getCustomers | UserCustomerAutocompleteService |
| `createUser` | `POST` | `data/user` | `Users.php` | update | UserService, UserManagerService, UserLoginService |
| `verifyEmail` | `POST` | `data/user/exists` | `UserExists.php` | create | UserDataService |
| `userAutocomplete` | `GET` | `data/users/autocomplete` | `UsersAutocomplete.php` | index | UserService |
| `getCustomer` | `GET` | `data/customer/{customerId}` | `Customer.php` | create, show, useTransformer | CustomerService |
| `getUserGroups` | `GET` | `data/user/groups` | `UserGroups.php` | index, create, delete | UserGroupsDataService |
| `createUserGroup` | `POST` | `data/user/groups` | `UserGroups.php` | index, create, delete | UserGroupsDataService |
| `getUserGroupUsers` | `GET` | `data/user/groups/{groupId}/users` | `UserGroupUsers.php` | index, create, delete | — |
| `getUserGroupWarehouses` | `GET` | `data/user/groups/{groupId}/warehouses` | `UserGroupWarehouses.php` | index, create, delete | — |
| `saveUserGroupRuleWarehouse` | `POST` | `data/user/groups/{groupId}/warehouses` | `UserGroupWarehouses.php` | index, create, delete | — |
| `deleteUserGroupWarehouse` | `DELETE` | `data/user/groups/{groupId}/warehouses/{warehouseId}` | `UserGroupWarehouses.php` | index, create, delete | — |
| `saveUserGroupRuleUser` | `POST` | `data/user/groups/{groupId}/users` | `UserGroupUsers.php` | index, create, delete | — |
| `deleteUserGroupUser` | `DELETE` | `data/user/groups/{groupId}/users/{userId}` | `UserGroupUsers.php` | index, create, delete | — |
| `getUserGroupBrands` | `GET` | `data/user/groups/{groupId}/brands` | `UserGroupBrands.php` | index, create, delete | — |
| `saveUserGroupBrand` | `POST` | `data/user/groups/{groupId}/brands` | `UserGroupBrands.php` | index, create, delete | — |
| `deleteUserGroupBrand` | `DELETE` | `data/user/groups/{groupId}/brands/{brandId}` | `UserGroupBrands.php` | index, create, delete | — |
| `getUserGroupCategories` | `GET` | `data/user/groups/{groupId}/categories` | `UserGroupCategories.php` | index, create | — |
| `saveUserGridCategories` | `POST` | `data/user/groups/{groupId}/categories` | `UserGroupCategories.php` | index, create | — |
| `getUserGroupCustomFields` | `GET` | `data/user/groups/{groupId}/custom-fields` | `UserGroupCustomFields.php` | index, create, delete | — |
| `saveUserGroupCustomField` | `POST` | `data/user/groups/{groupId}/custom-fields` | `UserGroupCustomFields.php` | index, create, delete | — |
| `deleteUserGroupCustomField` | `DELETE` | `data/user/groups/{groupId}/custom-fields` | `UserGroupCustomFields.php` | index, create, delete | — |
| `deleteUserGroup` | `DELETE` | `data/user/groups/{groupId}` | `UserGroups.php` | index, create, delete | UserGroupsDataService |
| `getUserSessions` | `GET` | `data/user/sessions/{userId}` | `UserSessions.php` | show, delete | — |
| `deleteUserSession` | `DELETE` | `data/user/sessions/{sessionId}` | `UserSessions.php` | show, delete | — |
| `getTerritoryCodes` | `GET` | `ap/territory-codes` | `TerritoryCodes.php` | index | TerritoryCodeService |

### `warehouse-service.ts`

| Function | Method | Route | Controller | Methods | Services |
|---|---|---|---|---|---|
| `getWarehouseConditions` | `GET` | `data/site/warehouse/conditions` | `WarehouseConditions.php` | index, update | WarehouseConditionService |
| `updateWarehouseCondition` | `PUT` | `data/site/warehouse/conditions/{id}` | `WarehouseConditions.php` | index, update | WarehouseConditionService |
| `getWarehouses` | `GET` | `ap/warehouses` | `Warehouses.php` | index | WarehouseService |

---

## By Controller

### `AdminPortal/Addons/Addons.php`

**Class:** `Addons` extends `AdminPortalControllerBase`  
**Methods:** index, show, update  
**Services:** AdminPortalDatabaseService, AdminPortalServiceFactory, ConfigurationHistoryService, AddonConfigurationService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getAddonsByPlan` | `GET` | `data/addons/{planSlug}` | `addon-service.ts` |
| `getAddons` | `GET` | `data/addons` | `addon-service.ts` |
| `saveAddons` | `PUT` | `data/addons` | `addon-service.ts` |

### `AdminPortal/Ai/Transform.php`

**Class:** `Transform` extends `AdminPortalControllerBase`  
**Methods:** create  
**Services:** AiTextTransformationService

| Function | Method | Route | Service File |
|---|---|---|---|
| `transformText` | `POST` | `ap/generate/transform` | `ai-service.ts` |

### `AdminPortal/AppInit.php`

**Class:** `AppInit` extends `?`  
**Methods:** init  
**Services:** UserSettingService, PermissionService, LanguageService, AdminPortalDatabaseService, AdminPortalServiceFactory, SystemServiceFactory, LanguageServiceFactory, CacheFactory, ConfigurationHistoryService, AddonConfigurationService

| Function | Method | Route | Service File |
|---|---|---|---|
| `init` | `GET` | `ap/init` | `init-service.ts` |

### `AdminPortal/Assets/Css.php`

**Class:** `Css` extends `AdminPortalControllerBase`  
**Methods:** index, update  
**Services:** CssService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCss` | `GET` | `ap/assets/css` | `asset-service.ts` |
| `saveCss` | `PUT` | `ap/assets/css` | `asset-service.ts` |

### `AdminPortal/Auth/Auth.php`

**Class:** `Auth` extends `AdminPortalControllerBase`  
**Methods:** index, create  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `signIn` | `POST` | `sign-in` | `auth-service.ts` |

### `AdminPortal/Auth/GoogleSSOEmailCheck.php`

**Class:** `GoogleSSOEmailCheck` extends `AdminPortalControllerBase`  
**Methods:** create  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `checkEmailForSSO` | `POST` | `sso/check` | `auth-service.ts` |

### `AdminPortal/Auth/RecoverAccount.php`

**Class:** `RecoverAccount` extends `AdminPortalControllerBase`  
**Methods:** update, show, create  
**Services:** AccountRecoveryService

| Function | Method | Route | Service File |
|---|---|---|---|
| `requestResetPassword` | `PUT` | `recover-account` | `auth-service.ts` |
| `validateResetRequest` | `GET` | `recover-account/{requestId}` | `auth-service.ts` |
| `resetPassword` | `POST` | `recover-account` | `auth-service.ts` |

### `AdminPortal/Auth/SignOut.php`

**Class:** `SignOut` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `signOut` | `GET` | `sign-out` | `auth-service.ts` |

### `AdminPortal/CategoryAssignment.php`

**Class:** `CategoryAssignment` extends `AdminPortalControllerBase`  
**Methods:** show, delete, update, create  
**Services:** CategoryAssignmentService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getAssignedProducts` | `GET` | `data/category/{id}/assignment` | `category-service.ts` |
| `updateAssignedProduct` | `PUT` | `data/category/{categoryId}/assignment` | `category-service.ts` |
| `assignProductToCategory` | `POST` | `data/category/{categoryId}/assignment` | `category-service.ts` |
| `deleteProductCategoryAssignment` | `DELETE` | `data/category/{categoryId}/assignment/{id}` | `category-service.ts` |

### `AdminPortal/CategoryAutocomplete.php`

**Class:** `CategoryAutocomplete` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** CategoryAutocompleteService

| Function | Method | Route | Service File |
|---|---|---|---|
| `runCategoryAutocomplete` | `GET` | `data/category/autocomplete` | `category-service.ts` |

### `AdminPortal/CategoryCustomFieldData.php`

**Class:** `CategoryCustomFieldData` extends `AdminPortalControllerBase`  
**Methods:** show, update, delete  
**Services:** CustomFieldDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCustomFieldData` | `GET` | `data/category/custom-field/{id}` | `category-service.ts` |
| `updateCustomFieldData` | `PUT` | `data/category/custom-field` | `category-service.ts` |
| `deleteCustomFieldData` | `DELETE` | `data/category/custom-field` | `category-service.ts` |

### `AdminPortal/CategoryCustomFields.php`

**Class:** `CategoryCustomFields` extends `AdminPortalControllerBase`  
**Methods:** index, update, delete, create  
**Services:** CustomFieldService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCustomFields` | `GET` | `data/category/custom-fields` | `category-service.ts` |
| `updateCustomField` | `PUT` | `data/category/custom-fields` | `category-service.ts` |
| `createCustomField` | `POST` | `data/category/custom-fields` | `category-service.ts` |
| `deleteCustomField` | `DELETE` | `data/category/custom-fields` | `category-service.ts` |

### `AdminPortal/CategoryImage.php`

**Class:** `CategoryImage` extends `AdminPortalControllerBase`  
**Methods:** delete  
**Services:** CategoryImageService

| Function | Method | Route | Service File |
|---|---|---|---|
| `deleteCategoryImage` | `DELETE` | `data/category/{categoryId}/image/{imageId}` | `category-service.ts` |

### `AdminPortal/CategorySequence.php`

**Class:** `CategorySequence` extends `AdminPortalControllerBase`  
**Methods:** update, updateCategorySequence  
**Services:** CategorySequenceService

| Function | Method | Route | Service File |
|---|---|---|---|
| `updateCategoryPosition` | `PUT` | `data/category/sequence` | `category-service.ts` |

### `AdminPortal/Configuration/Settings.php`

**Class:** `Settings` extends `AdminPortalControllerBase`  
**Methods:** index, update, create, delete  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPaymentConfigurationInstances` | `GET` | `data/configuration` | `payment-configuration-service.ts` |
| `createPaymentConfigurationInstance` | `POST` | `data/configuration` | `payment-configuration-service.ts` |
| `updatePaymentConfigurationInstance` | `PUT` | `data/configuration` | `payment-configuration-service.ts` |
| `getConfigForKey` | `GET` | `data/configuration` | `setting-service.ts` |
| `handleSaveConfig` | `PUT` | `data/configuration` | `setting-service.ts` |

### `AdminPortal/Content/Banners.php`

**Class:** `Banners` extends `AdminPortalControllerBase`  
**Methods:** index, delete, show, update, create  
**Services:** BannerService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getBanners` | `GET` | `data/content/banners` | `banner-service.ts` |
| `deleteBanner` | `DELETE` | `data/content/banners` | `banner-service.ts` |
| `getBanner` | `GET` | `data/content/banners/{id}` | `banner-service.ts` |
| `updateBanner` | `PUT` | `data/content/banners/{id}` | `banner-service.ts` |
| `createBanner` | `POST` | `data/content/banners` | `banner-service.ts` |

### `AdminPortal/Content/Cards.php`

**Class:** `Cards` extends `AdminPortalControllerBase`  
**Methods:** index, delete, update, upsertPage, show  
**Services:** CardService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCards` | `GET` | `data/content/cards` | `content-card-service.ts` |
| `deleteCard` | `DELETE` | `data/content/cards` | `content-card-service.ts` |
| `getCard` | `GET` | `data/content/cards/{id}` | `content-card-service.ts` |
| `upsertCard` | `PUT` | `data/content/cards` | `content-card-service.ts` |

### `AdminPortal/Content/CustomPages.php`

**Class:** `CustomPages` extends `AdminPortalControllerBase`  
**Methods:** index, delete, show, update, create  
**Services:** CustomPageService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCustomPages` | `GET` | `data/content/custom-pages` | `custom-page-service.ts` |
| `getCustomPage` | `GET` | `data/content/custom-pages/{id}` | `custom-page-service.ts` |
| `deleteCustomPage` | `DELETE` | `data/content/custom-pages` | `custom-page-service.ts` |
| `createCustomPage` | `POST` | `data/content/custom-pages` | `custom-page-service.ts` |
| `updateCustomPage` | `PUT` | `data/content/custom-pages/{id}` | `custom-page-service.ts` |

### `AdminPortal/Content/Panels.php`

**Class:** `Panels` extends `AdminPortalControllerBase`  
**Methods:** index, show, update, create, delete  
**Services:** PanelService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPanels` | `GET` | `data/content/banners/{id}/panels` | `banner-service.ts` |
| `getPanel` | `GET` | `data/content/banners/{bannerId}/panels/{panelId}` | `banner-service.ts` |
| `createPanel` | `POST` | `data/content/banners/{bannerId}/panels` | `banner-service.ts` |
| `updatePanel` | `PUT` | `data/content/banners/{bannerId}/panels/{id}` | `banner-service.ts` |
| `deletePanel` | `DELETE` | `data/content/banners/{bannerId}/panels` | `banner-service.ts` |

### `AdminPortal/CustomerPortalSettings.php`

**Class:** `CustomerPortalSettings` extends `AdminPortalControllerBase`  
**Methods:** index, update  
**Services:** OpenOrderSettingService, InvoicedOrderSettingService, ItemPurchaseHistorySettingService, OrderTemplateSettingsService, CustomerPortalServiceFactory

| Function | Method | Route | Service File |
|---|---|---|---|
| `getViewSettings` | `GET` | `data/customer-portal/settings` | `customer-portal-service.ts` |
| `updateGridSettings` | `PUT` | `data/customer-portal/settings` | `customer-portal-service.ts` |
| `updateGridItemSequence` | `PUT` | `data/customer-portal/settings` | `customer-portal-service.ts` |

### `AdminPortal/CustomerTaxes.php`

**Class:** `CustomerTaxes` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** CustomerTaxDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCustomerTaxes` | `GET` | `erp/customers/taxes` | `erp-data-service.ts` |

### `AdminPortal/Desk.php`

**Class:** `Desk` extends `AdminPortalControllerBase`  
**Methods:** create  
**Services:** ZohoDeskService

| Function | Method | Route | Service File |
|---|---|---|---|
| `submitSupportRequest` | `POST` | `ap/support` | `system-service.ts` |

### `AdminPortal/Email/TestEmail.php`

**Class:** `TestEmail` extends `AdminPortalControllerBase`  
**Methods:** create  
**Services:** EmailTestService, EmailServiceFactory

| Function | Method | Route | Service File |
|---|---|---|---|
| `sendTestEmail` | `POST` | `data/email/test` | `setting-service.ts` |

### `AdminPortal/Events/EventFields.php`

**Class:** `EventFields` extends `AdminPortalControllerBase`  
**Methods:** index, create  
**Services:** EventFieldService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getEventAutocompleteFields` | `GET` | `data/events/fields` | `event-service.ts` |
| `createEventAutocompleteField` | `POST` | `data/events/fields` | `event-service.ts` |

### `AdminPortal/Events/EventRegistrants.php`

**Class:** `EventRegistrants` extends `AdminPortalControllerBase`  
**Methods:** index, update  
**Services:** EventRegistrantsService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getEventRegistrants` | `GET` | `data/events/{eventId}/registrants` | `event-registrants-service.ts` |
| `sendReminderEmail` | `PUT` | `data/events/{eventId}/registrants/{registrantId}/send` | `event-registrants-service.ts` |

### `AdminPortal/Events/EventSettings.php`

**Class:** `EventSettings` extends `AdminPortalControllerBase`  
**Methods:** index, update  
**Services:** EventSettingsService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getEventSettings` | `GET` | `data/events/settings` | `event-service.ts` |
| `updateEventSettings` | `PUT` | `data/events/settings` | `event-service.ts` |

### `AdminPortal/Events/Events.php`

**Class:** `Events` extends `AdminPortalControllerBase`  
**Methods:** index, create, show, delete, update  
**Services:** EventsService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getEvents` | `GET` | `data/events` | `event-service.ts` |
| `createEvent` | `POST` | `data/events` | `event-service.ts` |
| `updateEvent` | `PUT` | `data/events` | `event-service.ts` |
| `getEvent` | `GET` | `data/events/{id}` | `event-service.ts` |
| `copyEvent` | `POST` | `data/events` | `event-service.ts` |
| `deleteEvent` | `DELETE` | `data/events` | `event-service.ts` |

### `AdminPortal/Export.php`

**Class:** `Export` extends `ServerSideEventBase`  
**Methods:** create, writeRows  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `exportData` | `POST/SSE` | `ap/export` | `export-service.ts` |

### `AdminPortal/FileManager/Files.php`

**Class:** `Files` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** FileManagerTrashService, FileManagerFileService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getFiles` | `GET` | `ap/files/{path}` | `file-manager-service.ts` |
| `deleteFiles` | `DELETE` | `ap/files` | `file-manager-service.ts` |
| `purgeFiles` | `DELETE` | `ap/files/purge` | `file-manager-service.ts` |
| `restoreFiles` | `POST` | `ap/files/restore` | `file-manager-service.ts` |

### `AdminPortal/FileManager/Folders.php`

**Class:** `Folders` extends `AdminPortalControllerBase`  
**Methods:** index, show  
**Services:** FileManagerService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getFolders` | `GET` | `ap/folders` | `file-manager-service.ts` |
| `getFolderHealth` | `GET` | `ap/folders/{path}` | `file-manager-service.ts` |

### `AdminPortal/GridErpSalesOrders.php`

**Class:** `GridErpSalesOrders` extends `AdminPortalControllerBase`  
**Methods:** index, show  
**Services:** SalesOrderDataService, ErpSalesOrderDetailService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getSalesOrderDetail` | `GET` | `erp/sales-orders/{id}` | `erp-data-service.ts` |
| `getSalesOrders` | `GET` | `erp/sales-orders` | `erp-data-service.ts` |

### `AdminPortal/Import/Import.php`

**Class:** `Import` extends `ServerSideEventBase`  
**Methods:** create  
**Services:** ImportService

| Function | Method | Route | Service File |
|---|---|---|---|
| `importDataV2` | `POST/SSE` | `ap/import` | `import-service.ts` |

### `AdminPortal/Import/ImportRequirements.php`

**Class:** `ImportRequirements` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getImportRequirementsV2` | `GET` | `ap/import/req` | `import-service.ts` |

### `AdminPortal/Labels.php`

**Class:** `Labels` extends `AdminPortalControllerBase`  
**Methods:** index, update, delete  
**Services:** LabelDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getLabels` | `GET` | `data/labels` | `labels-service.ts` |
| `updateLabel` | `PUT` | `data/labels/{id}` | `labels-service.ts` |
| `deleteLabel` | `DELETE` | `data/labels/{id}` | `labels-service.ts` |

### `AdminPortal/PriceLookup.php`

**Class:** `PriceLookup` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** PriceLookupService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPriceLookup` | `GET` | `/ap/price-lookup` | `price-lookup-service.ts` |

### `AdminPortal/ProductCustomFieldAutocomplete.php`

**Class:** `ProductCustomFieldAutocomplete` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** CustomFieldService

| Function | Method | Route | Service File |
|---|---|---|---|
| `customFieldAutocomplete` | `GET` | `data/product/custom-field/autocomplete` | `custom-field-service.ts` |

### `AdminPortal/ProductCustomFieldData.php`

**Class:** `ProductCustomFieldData` extends `AdminPortalControllerBase`  
**Methods:** show, update, delete  
**Services:** CustomFieldDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCustomFieldData` | `GET` | `data/product/custom-field/{id}` | `product-service.ts` |
| `updateCustomFieldData` | `PUT` | `data/product/custom-field` | `product-service.ts` |
| `deleteCustomFieldData` | `DELETE` | `data/product/custom-field` | `product-service.ts` |

### `AdminPortal/ProductCustomFields.php`

**Class:** `ProductCustomFields` extends `AdminPortalControllerBase`  
**Methods:** index, update, delete, create  
**Services:** CustomFieldService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCustomFields` | `GET` | `data/product/custom-fields` | `product-service.ts` |
| `updateCustomField` | `PUT` | `data/product/custom-fields` | `product-service.ts` |
| `deleteCustomField` | `DELETE` | `data/product/custom-fields` | `product-service.ts` |
| `createCustomField` | `POST` | `data/product/custom-fields` | `product-service.ts` |

### `AdminPortal/ProductSelector/ProductSelector.php`

**Class:** `ProductSelector` extends `AdminPortalControllerBase`  
**Methods:** index, show, delete, deleteSelector, update, create  
**Services:** ProductSelectorService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getSelectors` | `GET` | `data/product-selector` | `product-selector-service.ts` |
| `getSelector` | `GET` | `data/product-selector/{id}` | `product-selector-service.ts` |
| `deleteSelector` | `DELETE` | `data/product-selector` | `product-selector-service.ts` |
| `updateSelector` | `PUT` | `data/product-selector/{id}` | `product-selector-service.ts` |
| `saveSelector` | `POST` | `data/product-selector` | `product-selector-service.ts` |

### `AdminPortal/ProductSelector/ProductSelectorCategories.php`

**Class:** `ProductSelectorCategories` extends `AdminPortalControllerBase`  
**Methods:** create, delete  
**Services:** ProductSelectorCategoryService

| Function | Method | Route | Service File |
|---|---|---|---|
| `addSelectorCategory` | `POST` | `data/product-selector/{selectorId}/categories` | `product-selector-service.ts` |
| `deleteSelectorCategory` | `DELETE` | `data/product-selector/{selectorId}/categories` | `product-selector-service.ts` |

### `AdminPortal/ProductSelector/ProductSelectorCustomFields.php`

**Class:** `ProductSelectorCustomFields` extends `AdminPortalControllerBase`  
**Methods:** create, delete  
**Services:** ProductSelectorCustomFieldService

| Function | Method | Route | Service File |
|---|---|---|---|
| `addSelectorCustomField` | `POST` | `data/product-selector/{selectorId}/custom-fields` | `product-selector-service.ts` |
| `deleteSelectorCustomField` | `DELETE` | `data/product-selector/{selectorId}/custom-fields` | `product-selector-service.ts` |

### `AdminPortal/ProductSelector/ProductSelectorProductData.php`

**Class:** `ProductSelectorProductData` extends `AdminPortalControllerBase`  
**Methods:** update  
**Services:** ProductSelectorProductService

| Function | Method | Route | Service File |
|---|---|---|---|
| `updateProductSelectorProductData` | `PUT` | `data/product-selector/{selectorId}/products/data` | `product-selector-service.ts` |

### `AdminPortal/ProductSelector/ProductSelectorProducts.php`

**Class:** `ProductSelectorProducts` extends `AdminPortalControllerBase`  
**Methods:** create, delete, update, index  
**Services:** ProductSelectorProductService

| Function | Method | Route | Service File |
|---|---|---|---|
| `addSelectorProducts` | `POST` | `data/product-selector/{selectorId}/products` | `product-selector-service.ts` |
| `deleteSelectorProducts` | `DELETE` | `data/product-selector/{selectorId}/products` | `product-selector-service.ts` |
| `updateSelectorProducts` | `PUT` | `data/product-selector/{selectorId}/products` | `product-selector-service.ts` |
| `getProductSelectorProducts` | `GET` | `data/product-selector/{selectorId}/products` | `product-selector-service.ts` |

### `AdminPortal/Revision.php`

**Class:** `Revision` extends `AdminPortalControllerBase`  
**Methods:** show  
**Services:** RevisionService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getRevisionByType` | `GET` | `ap/revision/{type}` | `revision-service.ts` |

### `AdminPortal/Site.php`

**Class:** `Site` extends `AdminPortalControllerBase`  
**Methods:** update  
**Services:** SiteService

| Function | Method | Route | Service File |
|---|---|---|---|
| `saveSiteStatus` | `PUT` | `ap/site` | `site-service.ts` |

### `AdminPortal/SyncStatus.php`

**Class:** `SyncStatus` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** SyncStatusService

| Function | Method | Route | Service File |
|---|---|---|---|
| `fetchSyncStatus` | `GET` | `ap/sync/status` | `system-service.ts` |

### `BookPrices.php`

**Class:** `BookPrices` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** BookPriceDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getBookPrices` | `GET` | `erp/book-prices` | `erp-data-service.ts` |

### `Cache.php`

**Class:** `Cache` extends `AdminPortalControllerBase`  
**Methods:** index, show, delete  
**Services:** CacheService

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `DELETE` | `ap/cache/clear` | `cache-service.ts` |
| `` | `DELETE` | `ap/cache/clear/{type}` | `cache-service.ts` |

### `Categories.php`

**Class:** `Categories` extends `ControllerBase`  
**Methods:** index  
**Services:** HierarchyServiceFactory

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCategories` | `GET` | `data/category` | `category-service.ts` |
| `getCategory` | `GET` | `data/category/{id}` | `category-service.ts` |
| `createCategory` | `POST` | `data/category` | `category-service.ts` |
| `updateCategory` | `PUT` | `data/category/{id}` | `category-service.ts` |
| `deleteCategory` | `DELETE` | `data/category/{categoryId}` | `category-service.ts` |

### `CategoryHierarchy.php`

**Class:** `CategoryHierarchy` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** CategoryHierarchyDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCategoryHierarchy` | `GET` | `data/category/hierarchy` | `category-service.ts` |

### `CheckoutSettings.php`

**Class:** `CheckoutSettings` extends `AdminPortalControllerBase`  
**Methods:** index, update  
**Services:** CheckoutSettingService

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `GET` | `data/site/checkout` | `checkout-service.ts` |
| `` | `PUT` | `data/site/checkout/{id}` | `checkout-service.ts` |

### `ConditionAssociationData.php`

**Class:** `ConditionAssociationData` extends `AdminPortalControllerBase`  
**Methods:** delete, create  
**Services:** ConditionAssociationDataService, ConditionDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `DELETE` | `data/conditions/associations/{id}` | `condition-service.ts` |
| `` | `POST` | `data/conditions/associations` | `condition-service.ts` |

### `ConditionData.php`

**Class:** `ConditionData` extends `AdminPortalControllerBase`  
**Methods:** index, show, create, delete  
**Services:** ConditionDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `GET` | `data/conditions` | `condition-service.ts` |
| `` | `GET` | `data/conditions/{id}` | `condition-service.ts` |
| `` | `POST` | `data/conditions` | `condition-service.ts` |
| `` | `DELETE` | `data/conditions/{id}` | `condition-service.ts` |

### `ConditionRuleData.php`

**Class:** `ConditionRuleData` extends `AdminPortalControllerBase`  
**Methods:** delete, update, create  
**Services:** ConditionRuleDataService, ConditionDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `DELETE` | `data/conditions/rules/{id}` | `condition-service.ts` |
| `` | `PUT` | `data/conditions/rules/{id}` | `condition-service.ts` |
| `` | `POST` | `data/conditions/rules` | `condition-service.ts` |

### `ConditionRuleTypeData.php`

**Class:** `ConditionRuleTypeData` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** ConditionRuleTypeDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `GET` | `data/conditions/rules/types` | `condition-service.ts` |

### `Conditions.php`

**Class:** `Conditions` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** ConditionDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `GET` | `conditions` | `condition-service.ts` |

### `Country.php`

**Class:** `Country` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** CountryService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCountries` | `GET` | `ap/places/countries` | `places-service.ts` |

### `Customer.php`

**Class:** `Customer` extends `ControllerBase`  
**Methods:** create, show, useTransformer  
**Services:** CustomerService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCustomer` | `GET` | `data/customer/{customerId}` | `user-service.ts` |

### `CustomerAutocomplete.php`

**Class:** `CustomerAutocomplete` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** CustomerDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `customerAutocomplete` | `GET` | `data/customer/autocomplete` | `user-service.ts` |

### `CustomerAvailableDefaults.php`

**Class:** `CustomerAvailableDefaults` extends `ControllerBase`  
**Methods:** index  
**Services:** CurrencyService, PaymentTermService, ShippingMethodService, NewCustomerDefaultsService, CurrencyServiceFactory, PaymentServiceFactory, ShippingServiceFactory, OrderServiceFactory

| Function | Method | Route | Service File |
|---|---|---|---|
| `getNewCustomerCreationDefaults` | `GET` | `data/orders/customer/defaults` | `orders-service.ts` |

### `DiagnosticData.php`

**Class:** `DiagnosticData` extends `AdminPortalControllerBase`  
**Methods:** show  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `runDiagnostic` | `GET` | `diagnostics/{category}` | `diagnostic-service.ts` |

### `EncodeEmail.php`

**Class:** `EncodeEmail` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `encodeEmail` | `GET` | `ap/encode/email` | `user-service.ts` |

### `Events/Events.php`

**Class:** `Events` extends `ControllerBase`  
**Methods:** index, show  
**Services:** EventService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getEventInstances` | `GET` | `data/events/{id}/instance` | `event-service.ts` |
| `getEventInstance` | `GET` | `data/events/{id}/instance/{eventInstanceId}` | `event-service.ts` |

### `FileUpload.php`

**Class:** `FileUpload` extends `AdminPortalControllerBase`  
**Methods:** create, show  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `upload` | `POST` | `ap/upload` | `image-service.ts` |

### `GlobalOrderTemplate.php`

**Class:** `GlobalOrderTemplate` extends `AdminPortalControllerBase`  
**Methods:** index, update, delete, create  
**Services:** GlobalOrderTemplateDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getGlobalTemplates` | `GET` | `data/order-templates/global` | `order-template-service.ts` |
| `createGlobalTemplate` | `POST` | `data/order-templates/global` | `order-template-service.ts` |
| `updateGlobalTemplate` | `PUT` | `data/order-templates/global/{templateId}` | `order-template-service.ts` |
| `deleteGlobalTemplate` | `DELETE` | `data/order-templates/global/{templateId}` | `order-template-service.ts` |

### `GlobalOrderTemplateDetails.php`

**Class:** `GlobalOrderTemplateDetails` extends `AdminPortalControllerBase`  
**Methods:** index, delete, create  
**Services:** GlobalOrderTemplateDetailService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getGlobalTemplate` | `GET` | `data/order-templates/global/details` | `order-template-service.ts` |
| `deleteGlobalOrderTemplateItem` | `DELETE` | `data/order-templates/global/details/{itemId}` | `order-template-service.ts` |
| `addGlobalTemplateProduct` | `POST` | `data/order-templates/global/details` | `order-template-service.ts` |

### `GridCustomer.php`

**Class:** `GridCustomer` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** CustomerDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCustomerData` | `GET` | `erp/customers` | `erp-data-service.ts` |

### `GridPaymentTerms.php`

**Class:** `GridPaymentTerms` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** PaymentTermDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPaymentTerms` | `GET` | `erp/payment-terms` | `erp-data-service.ts` |

### `Languages.php`

**Class:** `Languages` extends `ControllerBase`  
**Methods:** _inherited from base_  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getLanguages` | `GET` | `ap/languages` | `site-service.ts` |

### `Manufacturers.php`

**Class:** `Manufacturers` extends `ControllerBase`  
**Methods:** _inherited from base_  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `GET` | `data/manufacturers` | `manufacturer-service.ts` |

### `Navigation.php`

**Class:** `Navigation` extends `AdminPortalControllerBase`  
**Methods:** index, create, delete  
**Services:** AdminPortalNavigationService

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `GET` | `ap/navigation` | `navigation-service.ts` |
| `` | `POST` | `ap/navigation` | `navigation-service.ts` |
| `` | `DELETE` | `ap/navigation/{id}` | `navigation-service.ts` |

### `OrderResolution.php`

**Class:** `OrderResolution` extends `AdminPortalControllerBase`  
**Methods:** create  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `saveErrorResolution` | `POST` | `data/orders/error` | `orders-service.ts` |

### `Orders.php`

**Class:** `Orders` extends `ControllerBase`  
**Methods:** index, show, create, update  
**Services:** OrderService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getOrders` | `GET` | `data/orders` | `orders-service.ts` |
| `getOrder` | `GET` | `data/orders/{id}` | `orders-service.ts` |
| `updateOrderStatus` | `PUT` | `data/orders/{orderId}` | `orders-service.ts` |

### `PaymentTerms.php`

**Class:** `PaymentTerms` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** PaymentTermService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPaymentTerms` | `GET` | `ap/payment-terms` | `payment-term-service.ts` |

### `Permissions.php`

**Class:** `Permissions` extends `?`  
**Methods:** _inherited from base_  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getRolePermissions` | `GET` | `ap/user/roles/{roleId}/permissions` | `system-service.ts` |
| `updatePermission` | `PUT` | `ap/user/roles/{roleId}/permissions/{id}` | `system-service.ts` |

### `PreviewSettingSections.php`

**Class:** `PreviewSettingSections` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** PreviewSettingSectionService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPreviewSections` | `GET` | `data/preview-settings/sections` | `site-service.ts` |

### `PriceMatrix.php`

**Class:** `PriceMatrix` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** PriceMatrixDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPriceMatrixData` | `GET` | `erp/price-matrix` | `erp-data-service.ts` |

### `ProductAutocomplete.php`

**Class:** `ProductAutocomplete` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** ProductAutocompleteService

| Function | Method | Route | Service File |
|---|---|---|---|
| `runProductAutocomplete` | `GET` | `data/product/autocomplete` | `product-service.ts` |

### `ProductCustomFields.php`

**Class:** `ProductCustomFields` extends `ControllerBase`  
**Methods:** _inherited from base_  
**Services:** ProductCustomFieldService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getCustomFields` | `GET` | `product/custom-fields` | `custom-field-service.ts` |

### `Products.php`

**Class:** `Products` extends `SearchBase`  
**Methods:** index, show  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getData` | `GET` | `data/product` | `product-service.ts` |
| `updateProduct` | `PUT` | `data/product/{id}` | `product-service.ts` |
| `getProduct` | `GET` | `data/product/{id}` | `product-service.ts` |

### `PromotionTypes.php`

**Class:** `PromotionTypes` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** PromotionTypeService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPromotionTypes` | `GET` | `data/promotions/types` | `promotion-service.ts` |

### `PromotionalPricing.php`

**Class:** `PromotionalPricing` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** PromotionalPricingDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPromotionalPricing` | `GET` | `erp/promotional-pricing` | `erp-data-service.ts` |

### `Promotions.php`

**Class:** `Promotions` extends `ControllerBase`  
**Methods:** index  
**Services:** PromoService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPromotions` | `GET` | `data/promotions` | `promotion-service.ts` |
| `savePromotion` | `POST` | `data/promotions` | `promotion-service.ts` |
| `getPromotion` | `GET` | `data/promotions/{id}` | `promotion-service.ts` |
| `deletePromotion` | `DELETE` | `data/promotions/{promotionId}` | `promotion-service.ts` |

### `Regions.php`

**Class:** `Regions` extends `AdminPortalControllerBase`  
**Methods:** show  
**Services:** RegionService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getRegions` | `GET` | `ap/places/regions/{regionId}` | `places-service.ts` |

### `SalesTaxes.php`

**Class:** `SalesTaxes` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** SalesTaxService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getSalesTaxes` | `GET` | `ap/sales-taxes` | `sales-tax-service.ts` |

### `SearchIndexStats.php`

**Class:** `SearchIndexStats` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** StatService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getIndexStats` | `GET` | `ap/search/index/stats` | `search-service.ts` |

### `SearchIndexStream.php`

**Class:** `SearchIndexStream` extends `ServerSideEventBase`  
**Methods:** create, update  
**Services:** SearchItemCountService, IndexerFactory

| Function | Method | Route | Service File |
|---|---|---|---|
| `createIndex` | `POST/SSE` | `ap/search/index/stream` | `search-service.ts` |
| `updateIndex` | `POST/SSE` | `ap/search/index/stream/{type}` | `search-service.ts` |

### `ShippingMethods.php`

**Class:** `ShippingMethods` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** ShippingMethodService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getShippingMethods` | `GET` | `ap/shipping-methods` | `shipping-method-service.ts` |

### `SiteSettingTags.php`

**Class:** `SiteSettingTags` extends `AdminPortalControllerBase`  
**Methods:** index, delete, create  
**Services:** SettingTagService

| Function | Method | Route | Service File |
|---|---|---|---|
| `deleteSettingTag` | `DELETE` | `data/site/settings/tags/{id}` | `site-service.ts` |
| `getTags` | `GET` | `data/site/settings/tags` | `site-service.ts` |
| `createTag` | `POST` | `data/site/settings/tags` | `site-service.ts` |

### `SiteSettings.php`

**Class:** `SiteSettings` extends `AdminPortalControllerBase`  
**Methods:** index, update  
**Services:** SiteSettingDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getSiteSettings` | `GET` | `data/site/settings` | `site-service.ts` |
| `updateSetting` | `PUT` | `data/site/settings/{id}` | `site-service.ts` |

### `Stats.php`

**Class:** `Stats` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** StatService

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `GET` | `data/stats` | `stats-service.ts` |

### `TerritoryCodes.php`

**Class:** `TerritoryCodes` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** TerritoryCodeService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getTerritoryCodes` | `GET` | `ap/territory-codes` | `user-service.ts` |

### `UserAccountStatus.php`

**Class:** `UserAccountStatus` extends `UserAccount`  
**Methods:** index  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `checkAuth` | `GET` | `check-auth` | `auth-service.ts` |

### `UserCustomerAddressAutocomplete.php`

**Class:** `UserCustomerAddressAutocomplete` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** UserCustomerAddressAutocompleteService

| Function | Method | Route | Service File |
|---|---|---|---|
| `customerAddressSelectionAutocomplete` | `GET` | `data/user/customer/address/autocomplete` | `user-service.ts` |

### `UserCustomerAutocomplete.php`

**Class:** `UserCustomerAutocomplete` extends `AdminPortalControllerBase`  
**Methods:** index, getCustomers  
**Services:** UserCustomerAutocompleteService

| Function | Method | Route | Service File |
|---|---|---|---|
| `userCustomerAutocomplete` | `GET` | `data/users/customer/autocomplete` | `user-service.ts` |

### `UserExists.php`

**Class:** `UserExists` extends `AdminPortalControllerBase`  
**Methods:** create  
**Services:** UserDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `verifyEmail` | `POST` | `data/user/exists` | `user-service.ts` |

### `UserGroupBrands.php`

**Class:** `UserGroupBrands` extends `AdminPortalControllerBase`  
**Methods:** index, create, delete  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserGroupBrands` | `GET` | `data/user/groups/{groupId}/brands` | `user-service.ts` |
| `saveUserGroupBrand` | `POST` | `data/user/groups/{groupId}/brands` | `user-service.ts` |
| `deleteUserGroupBrand` | `DELETE` | `data/user/groups/{groupId}/brands/{brandId}` | `user-service.ts` |

### `UserGroupCategories.php`

**Class:** `UserGroupCategories` extends `AdminPortalControllerBase`  
**Methods:** index, create  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserGroupCategories` | `GET` | `data/user/groups/{groupId}/categories` | `user-service.ts` |
| `saveUserGridCategories` | `POST` | `data/user/groups/{groupId}/categories` | `user-service.ts` |

### `UserGroupCustomFields.php`

**Class:** `UserGroupCustomFields` extends `AdminPortalControllerBase`  
**Methods:** index, create, delete  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserGroupCustomFields` | `GET` | `data/user/groups/{groupId}/custom-fields` | `user-service.ts` |
| `saveUserGroupCustomField` | `POST` | `data/user/groups/{groupId}/custom-fields` | `user-service.ts` |
| `deleteUserGroupCustomField` | `DELETE` | `data/user/groups/{groupId}/custom-fields` | `user-service.ts` |

### `UserGroupUsers.php`

**Class:** `UserGroupUsers` extends `AdminPortalControllerBase`  
**Methods:** index, create, delete  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserGroupUsers` | `GET` | `data/user/groups/{groupId}/users` | `user-service.ts` |
| `saveUserGroupRuleUser` | `POST` | `data/user/groups/{groupId}/users` | `user-service.ts` |
| `deleteUserGroupUser` | `DELETE` | `data/user/groups/{groupId}/users/{userId}` | `user-service.ts` |

### `UserGroupWarehouses.php`

**Class:** `UserGroupWarehouses` extends `AdminPortalControllerBase`  
**Methods:** index, create, delete  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserGroupWarehouses` | `GET` | `data/user/groups/{groupId}/warehouses` | `user-service.ts` |
| `saveUserGroupRuleWarehouse` | `POST` | `data/user/groups/{groupId}/warehouses` | `user-service.ts` |
| `deleteUserGroupWarehouse` | `DELETE` | `data/user/groups/{groupId}/warehouses/{warehouseId}` | `user-service.ts` |

### `UserGroups.php`

**Class:** `UserGroups` extends `AdminPortalControllerBase`  
**Methods:** index, create, delete  
**Services:** UserGroupsDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserGroups` | `GET` | `data/user/groups` | `user-service.ts` |
| `createUserGroup` | `POST` | `data/user/groups` | `user-service.ts` |
| `deleteUserGroup` | `DELETE` | `data/user/groups/{groupId}` | `user-service.ts` |

### `UserImpersonator.php`

**Class:** `UserImpersonator` extends `ControllerBase`  
**Methods:** create  
**Services:** UserImpersonatorService

| Function | Method | Route | Service File |
|---|---|---|---|
| `impersonateUser` | `POST` | `user/impersonate` | `user-service.ts` |

### `UserOrderTemplate.php`

**Class:** `UserOrderTemplate` extends `AdminPortalControllerBase`  
**Methods:** index, delete, create  
**Services:** UserOrderTemplateDataService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserTemplates` | `GET` | `data/order-templates/user` | `order-template-service.ts` |
| `createUserTemplate` | `POST` | `data/order-templates/user` | `order-template-service.ts` |

### `UserOrderTemplateDetail.php`

**Class:** `UserOrderTemplateDetail` extends `AdminPortalControllerBase`  
**Methods:** index, delete, create  
**Services:** UserOrderTemplateDetailService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserTemplate` | `GET` | `data/order-templates/user/detail` | `order-template-service.ts` |
| `deleteUserTemplateItem` | `DELETE` | `data/order-templates/user/detail/{id}` | `order-template-service.ts` |
| `addUserTemplateItem` | `POST` | `data/order-templates/user/detail` | `order-template-service.ts` |

### `UserOrderTemplates.php`

**Class:** `UserOrderTemplates` extends `ControllerBase`  
**Methods:** show, update, delete  
**Services:** UserOrderTemplateService

| Function | Method | Route | Service File |
|---|---|---|---|
| `deleteUserTemplate` | `DELETE` | `data/order-templates/user/remove/{id}` | `order-template-service.ts` |

### `UserRoles.php`

**Class:** `UserRoles` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** RoleService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserRoles` | `GET` | `ap/user/roles` | `system-service.ts` |

### `UserSessions.php`

**Class:** `UserSessions` extends `AdminPortalControllerBase`  
**Methods:** show, delete  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserSessions` | `GET` | `data/user/sessions/{userId}` | `user-service.ts` |
| `deleteUserSession` | `DELETE` | `data/user/sessions/{sessionId}` | `user-service.ts` |

### `UserSettings.php`

**Class:** `UserSettings` extends `AdminPortalControllerBase`  
**Methods:** create  
**Services:** UserSettingService

| Function | Method | Route | Service File |
|---|---|---|---|
| `previewActivation` | `POST` | `ap/user` | `user-service.ts` |
| `saveUserSetting` | `POST` | `ap/user` | `user-service.ts` |

### `UserTags.php`

**Class:** `UserTags` extends `AdminPortalControllerBase`  
**Methods:** index, delete  
**Services:** UserTagService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUserTags` | `GET` | `data/user/tags` | `user-service.ts` |

### `Users.php`

**Class:** `Users` extends `ControllerBase`  
**Methods:** update  
**Services:** UserService, UserManagerService, UserLoginService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getUsers` | `GET` | `data/user` | `user-service.ts` |
| `getUser` | `GET` | `data/user/{id}` | `user-service.ts` |
| `updateUser` | `PUT` | `data/user/{id}` | `user-service.ts` |
| `deleteUserTag` | `DELETE` | `data/user/{userId}/tags` | `user-service.ts` |
| `deleteUser` | `DELETE` | `data/user/{userId}` | `user-service.ts` |
| `createUser` | `POST` | `data/user` | `user-service.ts` |

### `UsersAutocomplete.php`

**Class:** `UsersAutocomplete` extends `ControllerBase`  
**Methods:** index  
**Services:** UserService

| Function | Method | Route | Service File |
|---|---|---|---|
| `userAutocomplete` | `GET` | `data/users/autocomplete` | `user-service.ts` |

### `ViewSettings.php`

**Class:** `ViewSettings` extends `AdminPortalControllerBase`  
**Methods:** index, update  
**Services:** —

| Function | Method | Route | Service File |
|---|---|---|---|
| `getPreviewSettings` | `GET` | `data/site/view-settings` | `site-service.ts` |
| `updatePreviewSetting` | `PUT` | `data/site/view-settings/{id}` | `site-service.ts` |

### `WarehouseConditions.php`

**Class:** `WarehouseConditions` extends `AdminPortalControllerBase`  
**Methods:** index, update  
**Services:** WarehouseConditionService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getWarehouseConditions` | `GET` | `data/site/warehouse/conditions` | `warehouse-service.ts` |
| `updateWarehouseCondition` | `PUT` | `data/site/warehouse/conditions/{id}` | `warehouse-service.ts` |

### `Warehouses.php`

**Class:** `Warehouses` extends `AdminPortalControllerBase`  
**Methods:** index  
**Services:** WarehouseService

| Function | Method | Route | Service File |
|---|---|---|---|
| `getWarehouses` | `GET` | `ap/warehouses` | `warehouse-service.ts` |

---

## Unmapped Routes

These routes could not be matched to a controller. Add them to `ROUTE_CONTROLLER_MAP` in `generate-api-map.js`.

| Function | Method | Route | Service File |
|---|---|---|---|
| `` | `GET` | `ap/cache/status` | `cache-service.ts` |
| `` | `GET` | `ap/cache/contents` | `cache-service.ts` |
| `getShippingCalculatorConfiguration` | `GET` | `data/configuration)}` | `shipping-calculator-service.ts` |
| `createShippingCalculator` | `POST` | `data/configuration)}` | `shipping-calculator-service.ts` |
| `updateShippingCalculator` | `PUT` | `data/configuration)}` | `shipping-calculator-service.ts` |
| `deleteShippingCalculator` | `DELETE` | `data/configuration)}` | `shipping-calculator-service.ts` |
| `updateShippingCalculatorFlatRateSettings` | `PUT` | `data/configuration)}` | `shipping-calculator-service.ts` |
| `updateShippingCalculatorRangeSettings` | `PUT` | `data/configuration)}` | `shipping-calculator-service.ts` |
| `createShippingCalculatorRange` | `POST` | `data/configuration)}` | `shipping-calculator-service.ts` |
| `updateShippingCalculatorRange` | `PUT` | `data/configuration)}` | `shipping-calculator-service.ts` |
| `deleteShippingCalculatorRange` | `DELETE` | `data/configuration)}` | `shipping-calculator-service.ts` |
