The document describes the concept for the site preview of products. The site preview started in the back office can be done for a selected date and with a configuration to show all products (online and/or enabled).
Preview configuration parameters will be accessed using a provider: ProductConfigurationProvider
. This provider defines extension points for several attribute configurations.
The implementation of the provider maps configuration values from preview user interface to "technical" attributes.
UI Configuration | Technical Attribute | Used in method |
---|---|---|
Preview date |
|
|
Make all products visible |
|
|
Make all products visible |
|
|
Make all products available |
|
|
The extension implementation of the attribute configuration gets configuration values from the preview context.
LastOrderDate
and/or EndOfLifeDate
.The "Preview Date" set by the user in the "Design View" configuration is used for the product online date, products last order date and end of life date.
This setting influences if product(s) "Online" and "In Stock" flags are considered for the preview or not.
It also influences if product(s) last order date and end of life date is used to change its online state for preview.
In order to make the preview configuration take the preview settings into account, several Java classes and database queries were changed.
It checks first if an individual preview configuration is...Active()
and then does get...Value()
to get its active value. ("..." stands for the preview configuration parameter name).
To make the preview parameter available in the queries the class ProductConfigurationQueryProcessor
is used.
It provides an easy access to the configured preview parameters in the queries changed.
The DefaultProductConfigurationProvider
class provides default values for Java extensions methods. It checks if an extension implementation is available; if not, the default value is returned. The default values simulate the standard shop behavior.
The extension implementation is done in sld_preview and therefore only available if cartridge sld_preview is assigned to the application. This makes it easy to deactivate the preview functionality for a certain server (e.g. live system) by not assigning the sld_preview cartridge to a application.
For each parameter which influences the preview behavior there is a Java extension(xcs) and a Java extension implementation(sld_preview).