Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
DEM-123 | Documentation | Modified chapter 3.1.4 in the German documentation |
DEM-155 | Documentation | Modified chapter 3.1.4 and 4.1 in the German documentation |
DEM-248 | Documentation | Added chapter 3.2.3 to the German documentation |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
DEM-211 | Documentation | Revision of the German documentation |
DEM-225 | Schedule | Added a schedule task for triggering an import job |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
DEM-274 | Categories | Fixed a potential cpu overload when requesting the render template of a category. |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
DEM-260 | Preview | Show product information even if the product image can not be loaded. |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
Product | Version(s) | Notice |
---|---|---|
DEM-166 | Projectcomponent | Improved error messages. |
DEM-192 | Templates | The field 'ps_isProtected' in the project settings is now language independent. |
DEM-213 | Templates | Optimized script |
DEM-244 | Report | Automatically update the product / category icon after a detail page has been created. |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
Product | Version(s) | Notice |
---|---|---|
DEM-241 | API | New method in the |
The template Preview Generation
has been updated:
Old.
$CMS_SET(set_replaceTracker, "(<!-- Demandware Analytics)((.|[\\t\\n\\r])*)(</script>)")$
New.
$CMS_SET(set_replaceTracker, "(<!-- Demandware Analytics)(?s:.)*(</script>)")$
This update prevents a possible Stackoverflow exception. It is highly recommended to perform this update in existing projects manually as well.
The cartridge has been updated as well. Existing projects do not have to update the cartridge or the import jobs.
The following changes have been made:
int_firstspirit_cms
in order to conform to the Commerce Cloud convention.
ContentSync
only contains two branches, that have been renamed as well.
The import mode can be set by a new parameter.
ContentSync
now validates the xml files before they are imported.
ContentSync
pipeline initiates an update of the Content index.
custom.FirstSpirit.ImportLibrary
and custom.FirstSpirit.ImportSlotConfigurations
.
When using the job framework, these can be used to easily create the needed import jobs.
metadata
contains the export file of an example job,
that is based on the job framework and uses the mentioned custom job steps.
Further information can be found in the chapters 2.4 and 3.2 in the documentation.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
Product | Version(s) | Notice |
---|---|---|
DEM-223 | Reports | Show hidden categories |
DEM-229 | Templates | Optimized a regular expression |
DEM-237 | Cartridge | Cleanup and optimization of the cartridge |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
Product | Version(s) | Notice |
---|---|---|
DEM-224 | Cartridge | Removed demo templates |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
DEM-219 | Configuration | No authentification in header for template requests. |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
DEM-197 | Configuration | Fixed a configuration problem after importing another ContentConnect project |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
DEM-195 | API | Fixed a type in the method name of |
DEM-218 | Module | Fixed a name conflict between the module components |
Demandware was renamed to Salesforce Commerce Cloud. Therefore the module got a new name as well: ContentConnect for Salesforce Commerce Cloud
ContentConnect supports the usage of the Content Integration API. Chapter 8 of the documentation describes the integration with FirstSpirit.
Besides the steps described in the documentation, further adjustments are necessary to use the Content Integration API in existing projects.
First, in the format template preview_generation
the following code snippet should be moved
to the top of the enclosing JSP scriptlet:
$-- Inject CMS preview content: Replace placeholder with actual CMS content --$ $CMS_FOR(for_item, [0..stringToReplace.size-1])$ html = html.replaceFirst( "$CMS_VALUE(stringToReplace[for_item])$", "$CMS_VALUE(stringToInsert[for_item].toString().quoteJS())$"); $CMS_END_FOR$
Second, the new template include_html
must be created manually.
Use the following content:
//!Beanshell import java.net.URL; import java.net.URLConnection; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; String includeURL = gc.getVariableValue("includeURL").toString(); String name = gc.getVariableValue("name").toString(); String password = gc.getVariableValue("password").toString(); String isProtected = gc.getVariableValue("isProtected").toString(); String html = ""; includeURL = includeURL.replaceAll(" ","%20"); URL url = new URL(includeURL); URLConnection urlConnection = url.openConnection(); if (isProtected.equals("true")){ import org.apache.commons.codec.binary.Base64; String authString = name + ":" + password; byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); String authStringEnc = new String(authEncBytes); urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc); } InputStream is = urlConnection.getInputStream(); InputStreamReader isr = new InputStreamReader(is); int numCharsRead; char[] charArray = new char[1024]; StringBuffer sb = new StringBuffer(); while ((numCharsRead = isr.read(charArray)) > 0) { sb.append(charArray, 0, numCharsRead); } html = sb.toString(); html = html.replaceAll("\\$", "$"); return(html);
With the new version it is possible to configure more than one FirstSpirit page template for detail pages for categories. Therefore the cartridge needs to be updated in exisitng projects.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
Product | Version(s) | Notice |
---|---|---|
DEM-207 | Service | Special characters in product ids are correctly encoded for in requests |
Product | Version(s) | Notice |
---|---|---|
DEM-173 | Detail pages | Depending on the render template of a category different page templates for detail pages can be chosen |
DEM-183 | Services | The module uses the OCAPI verison 16.9 |
DEM-187 | Documentation | Documented the usage of the Content Integration API |
DEN-193 | Module | Renaming the module to ContentConnect for Salesforce Commerce Cloud |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-171 | Templates | Fixed template import problem |
When linking a product, editors can now select values for variation attributes. That allows to link partly specified product variations.
When a master product is dragged and dropped, a dialog is shown that offers the editor to select values for the different variation attributes of the product. Figure Product specification shows this dialog for a product that exists in different colours and sizes.
In order to use this feature, two adjustments in the link template are necessary.
First you have to add a hidden textfield to the form:
<CMS_INPUT_TEXT name="variationAttributes" hFill="yes" hidden="yes" singleLine="no" useLanguages="no"> <LANGINFOS> <LANGINFO lang="*" label="Variation Attributes as JSON"/> </LANGINFOS> </CMS_INPUT_TEXT>
Furthermore the FS_BUTTON
needs a new parameter:
<PARAM name="variationAttributes">#field.variationAttributes</PARAM>
Afterwards the dialog will be shown whenever a master product is dragged and dropped.
To use the selected values in the channel,
the interface ProductManager
offers the new method convertVariationValuesJSON2List
.
This method takes the value of the hidden text field variationAttributes
and creates a list of VariationValue
objects.
These store the ids of the selected variation attributes and the ids of the selected values.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-156 | Documentation | The method getImage() is not part of the Product interface |
ID | Category | Description |
---|---|---|
DEM-122 | Product report | Select variation attributes when linking products |
DEM-153 | Detail pages | Set a default value for site store folder |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-152 | Category report | Categories with detail pages will not be marked |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-106 | Documentation | Fixed a rendering error in the documentation |
DEM-135 | Cartridge | Removed hard coded links |
DEM-136 | Cartridge | Removed obsolete template |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-150 | Report | Category report causes an exception in projects that don’t use the module |
The ContentConnect API has been extended with this version of the module.
First, the package com.espirit.moddev.demandware.manangers
has been extended.
Besides ProductManager
, it now contains the interfaces LibraryManager
and SlotConfigurationManager
.
Using these interfaces one can delete content assets, library folders and slot configurations.
Another important change is the introduction of the package com.espirit.moddev.demandware.factories
.
This package contains the class ManagerFactory
that can be used to create instances of the interfaces mentioned above.
If the ContentConnect module is installed,
ManagerFactory
will be accessible server-wide and can therefore be used e.g. in BeanShell scripts,
workflows or schedule entries.
Analogous to ManagerFactory
, XmlCollectorFactory
provides means to create instances of the interface XmlCollector
.
ManagerFactory
as well as XmlCollectorFactory
used to be FirstSpirit executables in previous versions of the ContentConnect module.
These executables are still present, but their implementing classes have been renamed to ManagerFactoryExecutable
and XmlCollectorFactoryExecutable
.
Despite this change, adjustments in existing projects are not necessary, since executables are accessed by their name.
The names of the two executables haven’t been changed.
More information about the ContentConnect API can be found in the provided Javadoc documentation.
The ContentConnect module now allows to easily create detail pages for products and categories. For this purpose a button is shown on every report item, that opens the form of a project specific page template. A detail page will be based on this template and the form input.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-40 | API | New api for deleting content assets and slot configurations |
DEM-51 | Report | Create detail pages for products and categories |
DEM-114 | Report | Improved flyout in the products report |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-130 | Configuration | Definition of the locale to be used |
DEM-131 | Configuration | Definition of refinements |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-149 | API | The interface Product again provides methods to query custom attributes |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-144 | Report | A configured image service is used for the product image in the flyout as well |
DEM-145 | Report | Flyout is shown for products without an image as well |
DEM-148 | Report | Flyout is shown for products without a price as well |
ID | Category | Description |
---|---|---|
DEM-108 | Configuration | Added checkbox for activation of category report |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-132 | Cartridge | Added missing resource bundles |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-80 | Product report | It is possible to find a product variation by searching the ID of the product variation. |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-118 | Templates | Missing referenced media folder |
DemandwareConnect 1.5.0 delivers improved performance and communicates with Demandware via the FirstSpirit server and not the FirstSpirir client as it used to do.
DemandwareConnect 1.5.0 contains several changes and new features. Therefore it is necessary to perform some migration steps if a prior version of the module is installed. These steps are listed below and should be executed in the same order they are listed:
Backup the project app properties:
After the installation of the new module some templates need to be adjusted.
If the scripts CreateProductManager
(reference name "createproductmanager") and CreateXmlCollector
(reference name "createxmlcollector") do not exist, they need to be created using the stated reference names and the following contents:
CreateProductManager.
#!executable-class ManagerFactory
CreateXmlCollector.
#!executable-class XmlCollectorFactory
The initialization of the xml collectors needs to be adjusted in the project settings template.
Furthermore, the instantiation of Connector
must be replaced because now the interface ProductManager
must be used to request product information in templates.
Xml collector for the content library:
old.
$CMS_SET(ps_xmlCollector,class("com.espirit.moddev.demandware.xml.DemandwareXmlCollector").newInstance())$
new.
$CMS_RENDER(script:"createxmlcollector",variableName:"ps_xmlCollector")$
Xml collector for the content slot configuration:
old.
$CMS_SET(ps_xmlCollectorContentSlot,class("com.espirit.moddev.demandware.xml.DemandwareXmlCollector").newInstance(false))$
new.
$CMS_RENDER(script:"createxmlcollector", variableName:"ps_xmlCollectorContentSlot", createLibraryNode:false)$
Object for requesting product information:
old.
$CMS_SET(ps_DWRconnector,class("com.espirit.moddev.demandware.products.Connector").create(#global))$
new.
$CMS_RENDER(script:"createproductmanager", variableName:"ps_productManager")$
Some components in the module have been renamed. Therefore all occurrences of FSDWC_
need to be replaced by DemandwareConnect_
.
The product drop handler is one of the components that have been renamed.
The interface ProductManager
is incompatible with the public interface of the formerly used class Connector
.
Therefore, the retrieval of product information must be adjusted:
queryProduct(old).
ps_DWRconnector.queryProduct(for_product.id)
loadProduct (new).
ps_productManager.loadProduct(for_product.id)
Besides the replacement of Connector
by ProductManager
, the interfaces Product
and Category
have been modified as well.
Corresponding template changes might be necessary.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.1 | - |
ID | Category | Description |
---|---|---|
DEM-91 | Project component | Exception when opening the project app configuration for the first time |
DEM-95 | Product report | Exception if the search query is empty |
DEM-96 | Product report | Exception when searching for '*' in all categories |
DEM-103 | Product report | Exception if the search has no results |
DEM-105 | Project component | Exception when opening a project in the SiteArchitect that does not use the DemandwareConnect project app |
DEM-107 | Project component | Exceptions when opening a project if the project component config is empty |
ID | Category | Description |
---|---|---|
DEM-13 | Product report | Improved retrieval of the available categories |
DEM-22 | Service | Communication with Demandware via the FirstSpirit server |
DEM-23 | Templates | Modified instantiation of the object for requesting product information |
DEM-24 | Documentation | Updated and extended documentation |
DEM-30 | API | Updated interface Product |
DEM-38 | Documentation | English version of the Hosting Offer document |
DEM-45 | Product report | Improved product search |
DEM-49 | Product report | Listing all products within a category |
DEM-54 | Module | Improved scoping of the module classes |
DEM-59 | Product report | Improved loading behaviour when opening the report |
DEM-64 | Product report | Improved loading behaviour if the search has no results |
DEM-75 | Templates | Automatic template import |
DEM-79 | Documentation | JavaDoc for API classes |
DEM-99 | Documentation | English version of the documentation |
DEM-100 | Documentation | Documentation of XmlCollectorFactory and ManagerFactory |
The Technical Support of the e-Spirit AG provides expert technical support to customers and partners covering any topic related to the FirstSpirit™ product. You can get and find more help concerning relevant topics in our community.