Class AbstractProductConfigController
java.lang.Object
de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractPageController
de.hybris.platform.sap.productconfig.frontend.controllers.AbstractProductConfigController
- Direct Known Subclasses:
AbstractConfigurationOverviewController,AddConfigToCartController,AnalyticsController,CartConfigureProductController,ConfigureProductController,PricingController,SearchSimilarVariantsController,UpdateConfigureProductController
Abstract base class for all CPQ UI controllers.
-
Nested Class Summary
Nested classes/interfaces inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
AbstractController.HttpNotFoundException -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final Stringprotected static final StringFields inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractPageController
CMS_PAGE_MODEL, CMS_PAGE_TITLE, PAGE_ROOT, REDIRECT_TO_LOGIN_FOR_CHECKOUT, REDIRECT_TO_MULTISTEP_CHECKOUT, REGISTRATION_CONSENT_ID, UTF_8Fields inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
FORWARD_PREFIX, REDIRECT_PREFIX, ROOT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ConfigurationDataafterReloadConfiguration(ConfigurationData configData, UiStatus uiStatus) protected voidcleanUpSessionAttribute(String productCode) protected org.springframework.validation.BindingResultgetBindingResultForConfigAndSaveUiStatus(ConfigurationData configData, UiStatus uiStatus) protected org.springframework.validation.BindingResultgetBindingResultForConfiguration(ConfigurationData configData, UiStatus uiStatus) protected ProductConfigureBreadcrumbBuilderprotected IntegergetCartEntryNumber(AbstractOrderData orderData, String configId) protected IntegergetCartEntryNumber(String productCode) protected CartFacadeprotected StringgetCartItemByConfigId(String configId) protected StringgetCartItemByProductCode(String productCode) protected ConfigurationCartIntegrationFacadeprotected ConfigurationFacadegetGalleryImages(ProductData productData) protected OrderEntryDatagetOrderEntry(int entryNumber, AbstractOrderData abstractOrder) protected Optional<OrderEntryData>getOrderEntry(String cartItemKey, AbstractOrderData abstractOrder) protected Stringprotected Stringprotected StringgetProductCodeForCartItem(String cartItemKey) protected ConflictCheckerprotected org.springframework.validation.Validatorprotected ProductDatagetProductDataForProductCode(String productCode) protected ProductFacadeprotected ConfigurationProductLinkStrategyprotected ProductServiceprotected SessionAccessFacadeprotected Stringprotected UiTrackingRecorderprotected UiStateHandlerprotected UiStatusgetUiStatusForConfig(ConfigurationData configData) protected UiStatusgetUiStatusForConfigId(String configId) protected UiStatusSyncprotected voidhandleRequestContext(javax.servlet.http.HttpServletRequest request, String productCode) protected voidinitBinderConfigData(org.springframework.web.bind.WebDataBinder binder) protected UiStatusinitializeUiStatus(ConfigurationData configData) protected booleanisConfigLinkedToCart(String configId) protected booleanisConfigRemoved(String productCode) protected ConfigurationDataloadNewConfiguration(KBKeyData kbKey) protected voidlogConfigurationCheckDeviation(org.springframework.validation.BindingResult errors, ConfigurationData configData) The ConflictChecker checks only visible characteristics for consistency and completeness as only those characteristics might be changed by the user.
If the model is modeled in a way that a conflict appears for an invisible characteristic or an invisible characteristic is mandatory but not filled this would not be identified by those checks but the overall configuration status is not consistent/complete.protected voidlogLoadConfig(ConfigurationData configData, String action) protected voidlogModelmetaData(ConfigurationData configData) protected voidlogRequestMetaData(ConfigurationData configData, javax.servlet.http.HttpServletRequest request) protected voidpopulateCMSAttributes(org.springframework.ui.Model model) protected voidpopulateProductData(ProductData productData, org.springframework.ui.Model model) protected ProductDatapopulateProductData(String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) protected ProductDatapopulateProductDetailForDisplay(String productCode, org.springframework.ui.Model model) protected ConfigurationDatareloadConfigurationById(String configId, KBKeyData kbKey, UiStatus uiStatus) protected ConfigurationDatareloadConfigurationByKBKey(KBKeyData kbKey, UiStatus uiStatus) protected voidremoveNullCstics(List<UiGroupData> groups) protected voidremoveNullCsticsFromGroup(List<CsticData> dirtyList) voidsetAbstractOrderEntryLinkStrategy(ConfigurationAbstractOrderEntryLinkStrategy configurationAbstractOrderEntryLinkStrategy) voidsetBreadcrumbBuilder(ProductConfigureBreadcrumbBuilder productConfigurationBreadcrumbBuilder) protected voidsetCartEntryLinks(ConfigurationData configData) voidsetCartFacade(CartFacade cartFacade) voidsetConfigCartFacade(ConfigurationCartIntegrationFacade configCartFacade) voidsetConfigFacade(ConfigurationFacade configFacade) voidsetConfigurationErrorHandler(ConfigErrorHandler configurationErrorHandler) voidsetProductConfigurationConflictChecker(ConflictChecker productConfigurationConflictChecker) voidsetProductConfigurationValidator(org.springframework.validation.Validator productConfigurationValidator) voidsetProductFacade(ProductFacade productFacade) voidsetProductLinkStrategy(ConfigurationProductLinkStrategy configurationProductLinkStrategy) voidsetProductService(ProductService productService) voidsetSessionAccessFacade(SessionAccessFacade sessionAccessFacade) voidsetUiRecorder(UiTrackingRecorder uiRecorder) voidsetUiStateHandler(UiStateHandler uiStateHandler) protected voidsetUiStatusForConfig(ConfigurationData configData, UiStatus uiStatus) voidsetUiStatusSync(UiStatusSync uiStatusSync) protected voidupdatePageTitle(String productCode, org.springframework.ui.Model model) Methods inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractPageController
addRegistrationConsentDataToModel, checkRequestUrl, createMetaElement, decodeWithScheme, getBaseSiteService, getCheckoutRedirectUrl, getCmsPageService, getCmsPreviewService, getCmsSiteService, getConfigurationService, getConsentFacade, getContentPageForLabelOrId, getCurrencies, getCurrentCurrency, getCurrentLanguage, getCustomerFacade, getHostConfigService, getI18nService, getLanguages, getMessageSource, getPageTitleResolver, getRequestContextData, getSessionService, getSiteConfigService, getSiteName, getSiteUid, getStoreSessionFacade, getUser, getUserFacade, getViewForPage, getViewForPage, prepareNotFoundPage, setUpMetaData, setUpMetaDataForContentPage, storeCmsPageInModel, storeContentPageTitleInModel, storeContinueUrl, urlEncodeMethods inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
addRequestToModel, getBean
-
Field Details
-
CMS_PC_PAGE_TYPE
- See Also:
-
CMS_PC_PAGE_ID
- See Also:
-
CMS_PAGE_TYPE
- See Also:
-
-
Constructor Details
-
AbstractProductConfigController
public AbstractProductConfigController()
-
-
Method Details
-
initBinderConfigData
@InitBinder("config") protected void initBinderConfigData(org.springframework.web.bind.WebDataBinder binder) -
getBindingResultForConfigAndSaveUiStatus
protected org.springframework.validation.BindingResult getBindingResultForConfigAndSaveUiStatus(ConfigurationData configData, UiStatus uiStatus) -
getBindingResultForConfiguration
protected org.springframework.validation.BindingResult getBindingResultForConfiguration(ConfigurationData configData, UiStatus uiStatus) -
logConfigurationCheckDeviation
protected void logConfigurationCheckDeviation(org.springframework.validation.BindingResult errors, ConfigurationData configData) The ConflictChecker checks only visible characteristics for consistency and completeness as only those characteristics might be changed by the user.
If the model is modeled in a way that a conflict appears for an invisible characteristic or an invisible characteristic is mandatory but not filled this would not be identified by those checks but the overall configuration status is not consistent/complete. This leads to a situation where the configuration cannot be sent to the backend system.
In this case the modeler needs to improve the model to avoid such situations. The user cannot do anything about this so this is only logged as an error as a hint for the modeler. -
setCartEntryLinks
-
getCartItemByProductCode
-
getCartItemByConfigId
-
isConfigLinkedToCart
-
getCartEntryNumber
- Throws:
BusinessException
-
getUiStatusForConfig
-
setUiStatusForConfig
-
getUiStatusForConfigId
-
getCartEntryNumber
protected Integer getCartEntryNumber(AbstractOrderData orderData, String configId) throws BusinessException - Throws:
BusinessException
-
loadNewConfiguration
-
initializeUiStatus
-
reloadConfigurationByKBKey
-
reloadConfigurationById
protected ConfigurationData reloadConfigurationById(String configId, KBKeyData kbKey, UiStatus uiStatus) -
afterReloadConfiguration
protected ConfigurationData afterReloadConfiguration(ConfigurationData configData, UiStatus uiStatus) -
logLoadConfig
-
populateProductData
protected ProductData populateProductData(String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) -
populateCMSAttributes
protected void populateCMSAttributes(org.springframework.ui.Model model) throws CMSItemNotFoundException - Throws:
CMSItemNotFoundException
-
getPageId
-
getPageType
-
populateProductDetailForDisplay
protected ProductData populateProductDetailForDisplay(String productCode, org.springframework.ui.Model model) -
getProductDataForProductCode
-
populateProductData
-
getGalleryImages
-
cleanUpSessionAttribute
-
removeNullCsticsFromGroup
-
removeNullCstics
-
handleRequestContext
protected void handleRequestContext(javax.servlet.http.HttpServletRequest request, String productCode) -
logModelmetaData
-
logRequestMetaData
protected void logRequestMetaData(ConfigurationData configData, javax.servlet.http.HttpServletRequest request) -
updatePageTitle
-
getConfigFacade
-
getConfigCartFacade
-
getSessionAccessFacade
-
getProductConfigurationValidator
protected org.springframework.validation.Validator getProductConfigurationValidator() -
getProductConfigurationConflictChecker
-
getProductFacade
-
getProductService
-
getOrderEntry
protected OrderEntryData getOrderEntry(int entryNumber, AbstractOrderData abstractOrder) throws BusinessException - Throws:
BusinessException
-
getOrderEntry
protected Optional<OrderEntryData> getOrderEntry(String cartItemKey, AbstractOrderData abstractOrder) throws BusinessException - Throws:
BusinessException
-
getProductCodeForCartItem
- Throws:
BusinessException
-
getBreadcrumbBuilder
-
setConfigFacade
- Parameters:
configFacade- CPQ facade
-
setConfigCartFacade
- Parameters:
configCartFacade- CPQ cart integration facade
-
setSessionAccessFacade
- Parameters:
sessionAccessFacade- CPQ session cache access
-
getAbstractOrderEntryLinkStrategy
-
setAbstractOrderEntryLinkStrategy
public void setAbstractOrderEntryLinkStrategy(ConfigurationAbstractOrderEntryLinkStrategy configurationAbstractOrderEntryLinkStrategy) -
setProductConfigurationValidator
public void setProductConfigurationValidator(org.springframework.validation.Validator productConfigurationValidator) - Parameters:
productConfigurationValidator- CPQ validator
-
setProductConfigurationConflictChecker
public void setProductConfigurationConflictChecker(ConflictChecker productConfigurationConflictChecker) - Parameters:
productConfigurationConflictChecker- status and UI error handling&checking
-
setProductFacade
- Parameters:
productFacade- for accessing product master data
-
setProductService
- Parameters:
productService- for accessing product related service
-
setBreadcrumbBuilder
public void setBreadcrumbBuilder(ProductConfigureBreadcrumbBuilder productConfigurationBreadcrumbBuilder) - Parameters:
productConfigurationBreadcrumbBuilder- for building UI breadcrumbs
-
getUiRecorder
-
setUiRecorder
- Parameters:
uiRecorder- triggering CPQ tracking
-
isConfigRemoved
-
getSessionId
-
getConfigurationErrorHandler
- Returns:
- configuration error handler
-
setConfigurationErrorHandler
- Parameters:
configurationErrorHandler- for handling configuration errors
-
getUiStateHandler
-
setUiStateHandler
- Parameters:
uiStateHandler- UI state handler
-
getUiStatusSync
-
setUiStatusSync
- Parameters:
uiStatusSync- UI status sync
-
getProductLinkStrategy
-
setProductLinkStrategy
public void setProductLinkStrategy(ConfigurationProductLinkStrategy configurationProductLinkStrategy) -
getCartFacade
-
setCartFacade
-