Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Extension points is mechanism introduced in version 

Label
Body3.5.0+
 in order to allow for better modularisation and separation of custom code from core YC platform's functions. The crux of the approach is provision of standard hooks that can be used to add or reconfigure core functionality without modification of the core code.

...

Persistence

 

Persistence is handled in YC using Hibernate, which is configured though hibernate configuration files. There files are provided as lists of names to the hibernate factory bean. Extending the mapping resources list allow to plug in additional mapping files that can include additional table mapping and/or queries.

...

ModuleExtension pointKey pointsVersion
store-wicket wicket.xmlwicket-ext.xml

Wicket specific app extensions:
wicketPagesMapping wicket URI to pages mapping (extend using LinkedHashMapBean)
wicketPagesEncoderEnabledUrls wicket URI list of SEO supported encoder pages (extend using ArrayListBean)
wicketResourceMounterEnabledPatterns wicket resource mounter enabled patterns (extend using ArrayListBean)
wicketResourcesMapping wicket IResources mapping (extend using LinkedHashMapBean)
wicketRendererPanelMap wicket central panel view mapping (extend using LinkedHashMapBean)
wicketCategoryTypeMap wicket category central view type mapping (extend using LinkedHashMapBean)

3.5.0+
store-wicketapplicationContext.xmlsfw-applicationContext-ext.xmlapplication listener context specific extension3.5.0+

Groovy storefront app 
Label
Body

...

SaaS
Colourinfo

 

ModuleExtension pointKey pointsVersion
store-groovy groovy.xmlgroovy-ext.xml

Groovy MO (view model) layer beans extension. Additionally exposes mapping extension points:
moInterfaceToClassFactoryMapping mapping for MO (extend using LinkedHashMapBean)
moAssemblerAdaptersRepositoryMapping mapping for MO adapters (extend using LinkedHashMapBean)

3.5.0+
store-groovy groovy-mvc.xmlgroovy-mvc-ext.xml

Groovy specific app extensions:
groovyRendererPanelMap groovy central panel view mapping (extend using LinkedHashMapBean)
groovyCategoryTypeMap groovy category central view type mapping (extend using LinkedHashMapBean)

3.5.0+
store-groovy rest-mvc.xmlrest-mvc-ext.xmlGroovy REST API context specific extension3.5.0+
store-groovyapplicationContext.xmlsfg-applicationContext-ext.xmlapplication listener context specific extension3.5.0+
store-groovy groovy-servlet.xmlsfg-servlet-ext.xmlservlet context specific extension3.5.0+
store-groovy@Controller

Scanner packages:
org.yes.cart.web.service.mixin
org.yes.cart.web.service.groovy

3.5.0+
store-groovy rest-servlet.xmlsfg-rest-servlet-ext.xmlservlet context specific extension3.5.0+
store-groovy@Controller

Scanner packages:
org.yes.cart.web.service.mixin
org.yes.cart.web.service.rest

3.5.0+

...

InterfaceSystem unitDescriptionVersion
ProductAvailabilityStrategyShop.productAvailabilityStrategy

Implementation of the availability strategy that allows to determine ProductAvailabilityModel for a given product / SKU, which drives the UI rendering for add to cart (ATC) button. Has default implementation ProductAvailabilityStrategyDefaultImpl. 

As of 3.7.0+ new configuration is available productAvailabilityStrategyBackorderInStockOnly that allows to disable ATC if back order items do not have stock.

3.5.0+
InventoryResolverFC.inventoryResolver

Implementation of the inventory service. Has default implementation InventoryResolverDefaultImpl which uses fulfilment centre inventory records to determine current stock state. 

3.5.0+
DeliveryTimeEstimationVisitorShop.deliveryTimeEstimationVisitor

Implementation of the delivery time estimation. Has default implementation DeliveryTimeEstimationVisitorDefaultImpl which uses fulfilment centre lead times, shipping method lead times and exclusions in order to estimate potential delivery time. 

3.5.0+
TaxProviderShop.taxProvider

Implementation of the tax calculation service. Has default implementation TaxProviderDefaultImpl which uses tax and tax configuration setting to workout applicable tax rate for given SKU, additionally contains regional specific settings triggered by address used by customers. 

3.5.0+
PricingPolicyProviderShop.pricingPolicyProvider

Implementation of the pricing policy service that is used to determine applicable price list to use for given customer. Has default implementation PricingPolicyProviderCustomerAttributeImpl which uses customer pricing policy property. 

3.5.0+
PriceResolverShop.priceResolver

Implementation of the pricing service that determines the price customer should pay for a SKU. Has default implementation PriceResolverDefaultImpl which uses cheapest price available policy to determine price for SKU (before promotions are applied). 

3.5.0+
CartContentsValidatorShop.cartContentsValidator

Implementation of the cart validation service that is used to determine if cart is in consistent state and customer should be allowed to go through with the checkout. Has default implementation on a compound validator (CheckoutBlockedValidator + ItemsAvailableValidator) which determine if customer is allowed to checkout 

Label
BodyYCE
Colourinfo
 and whether items in the cart are available. 

3.5.0+
OrderAssemblerPostProcessorShop.orderAssemblerPostProcessor

Implementation of the order post processor service that is used to enhance order details just after the order has been assembled from cart and is ready to be persisted as "pending". There is no default service as this is pure extension hook, see "noopOrderAssemblerPostProcessor" for more details in config panel. 

3.7.0+
ContentServiceCMS.contentService

Implementation of content service currently supports two values:
contentServiceCMS1 - old style CMS based on Category domain model
contentServiceCMS3 (default) - new style CMS based on Content domain model

3.5.0+
DtoContentServiceCMS.dtoContentService

Implementation of content service currently supports two values:
dtoContentServiceCMS1 - old style CMS based on Category domain model
dtoContentServiceCMS3 (default) - new style CMS based on Content domain model

3.5.0+
MediaFileNameStrategyCMS.contentFileNameStrategy

Implementation of content service currently supports two values:
contentCMS1FileNameStrategy - old style CMS based on Category domain model
contentCMS3FileNameStrategy (default) - new style CMS based on Content domain model

3.5.0+
MediaFileNameStrategyCMS.contentImageNameStrategy

Implementation of content service currently supports two values:
contentCMS1ImageNameStrategy - old style CMS based on Category domain model
contentCMS3ImageNameStrategy (default) - new style CMS based on Content domain model

3.5.0+
SecurityAccessControlServiceSYS.httpSecurityAccessControlService

Implementation of SAC service currently supports one value:
servletRequestSecurityAccessControlService - default implementation that include blacklisting/whitelisting of IP and throttling settings

3.7.0+ 
SSOProcessorShop.SSOProcessorImplementation of the SSO bridge for frontend.4.1.0+