Concept - Product Preview

1 Introduction

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).

2 Preview Configuration

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

ProductOnlineDate, ProductEndOfLifeDate, ProductLastOrderDate

Date getProductOnlineDateConfigurationValue(), boolean isProductOnlineDateConfigurationActive()

Make all products visible

ProductIgnoreOnlineConfiguration, ProductIgnoreAvailableConfiguration

boolean is...Active(), boolean get...Value()

Make all products visible

ProductIgnoreInventoryConfiguration, ProductIgnoreEndOfLifeDateConfiguration, ProductIgnoreLastOrderDateConfiguration

boolean is...Active()

Make all products available

ProductIgnoreInventoryConfiguration, ProductIgnoreEndOfLifeDateConfiguration, ProductIgnoreLastOrderDateConfiguration

boolean get...Value()

The extension implementation of the attribute configuration gets configuration values from the preview context.

  • Date/Time
    • It determines whether the current date or a fixed date specified by the user is used for the preview.
    • Below is the configuration panel used for storefront preview for date/time configuration.
  • Make all products visible
    • Selecting that checkbox allows the user to see all products including offline and not available.
  • Make all products available
    • Selecting that checkbox allows the user to see all products which are out of stock(no inventory) and not available because of LastOrderDate and/or EndOfLifeDate.

2.1 Preview Date - ProductOnlineDate

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.

2.2 Make all products visible/available

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.

3 Code Changed for Preview to Work

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.

4 API

4.1 Description

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).

4.2 Classes - Diagram

ConceptProductPreviewAPI

5 Further Documentation

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Support Tickets