New features
ID | Description |
---|---|
CCSF-681 | Extended functionality for the page creator executable |
New features
ID | Description |
---|---|
CCSF-679 | Updated the english documentation |
ID | Description |
---|---|
CCSF-669 | Added ability to retrieve custom attributes for categories |
This version of the ContentConnect module adds storefront caching, which speeds up the preview generation in FirstSpirit. Details on the functionality and configuration of the cache can be found in chapter 4.6 of the documentation.
The new Storefront Cache parameter |
Customers, that do not use the Preview Filter
but a JSP based approach for downloading the storefront need to make an adaption to the FirstSpirit template.
The code to download the storefront needs to be replaced by the following snippet.
Project specific adaptions may be necessary. |
<%@ page import="java.time.Duration" %> <%@ page import="java.util.regex.Pattern" %> <%@ page import="java.util.function.Function" %> <%@ page import="java.net.*" %> <%@ page import="java.io.*" %> <%@ page import="java.java.util.Base64" %> <%@ page import="com.espirit.moddev.demandware.preview.cache.*" %> <% StorefrontCacheConfiguration.Builder cacheConfigurationBuilder = StorefrontCacheConfiguration.builder(); $CMS_IF(!ps_storefrontDownloaderMaxCacheEntries.isEmpty)$ cacheConfigurationBuilder.maxEntries($CMS_VALUE(ps_storefrontDownloaderMaxCacheEntries)$); $CMS_END_IF$ $CMS_IF(!ps_storefrontCacheRefreshAfterWrite.isEmpty)$ cacheConfigurationBuilder.refreshAfterWrite( Duration.ofHours($CMS_VALUE(ps_storefrontCacheRefreshAfterWrite)$)); $CMS_END_IF$ $CMS_IF(!ps_storefrontCacheExpireAfterWrite.isEmpty)$ cacheConfigurationBuilder.expireAfterWrite( Duration.ofHours($CMS_VALUE(ps_storefrontCacheExpireAfterWrite)$)); $CMS_END_IF$ $CMS_IF(!ps_storefrontCacheExcludePatterns.isEmpty)$ $CMS_FOR(for_excludePatternCard, ps_storefrontCacheExcludePatterns)$ $CMS_SET(set_excludePattern, for_excludePatternCard.item.get(null, "st_storefrontCacheExcludePattern").get())$ $CMS_IF(!set_excludePattern.isEmpty)$ cacheConfigurationBuilder.addExcludePattern( Pattern.compile("$CMS_VALUE(set_excludePattern)$")); $CMS_END_IF$ $CMS_END_FOR$ $CMS_END_IF$ final StorefrontCacheConfiguration cacheConfiguration = cacheConfigurationBuilder.build(); ServletContextStorefrontCacheStorage cacheStorage = new ServletContextStorefrontCacheStorage(application); final Function<StorefrontCacheKey, String> storefrontProvider = cacheKey -> { try { String webPage = cacheKey.getStorefrontUrl(); URL url = new URL(webPage); URLConnection urlConnection = url.openConnection(); if (cacheKey.isStorefrontProtectionEnabled()) { String name = cacheKey.getStorefrontProtectionUser(); String password = cacheKey.getStorefrontProtectionPassword(); String authString = name + ":" + password; byte[] authEncBytes = Base64.getEncoder().encode(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); } return sb.toString(); } catch (Exception e) { // Must not return a fallback String, because that one would be cached. throw new RuntimeException("Downloading the storefront failed.", e); } }; StorefrontCacheKey cacheKey = StorefrontCacheKey.from( "$CMS_VALUE(set_previewUrl, default:"")$", $CMS_VALUE(ps_isProtected, default:false)$, "$CMS_VALUE(ps_authUser, default:"")$", "$CMS_VALUE(ps_authPassword, default:"")$"); StorefrontCache storefrontCache = cacheStorage.computeIfNullOrConfigOutOfDate( cacheConfigurationBuilder.build(), () -> new StorefrontCache(cacheConfiguration, storefrontProvider)); String html = storefrontCache.get(cacheKey); %>
ID | Description |
---|---|
CCSF-660 | Added storefront caching |
ID | Description |
---|---|
CCSF-665 | Updated OCAPI version to 19.5 |
ID | Description |
---|---|
CCSF-656 | Changed labels and fixed broken links |
ID | Description |
---|---|
CCSF-526 | Updated architecture diagram in the documentation |
ID | Description |
---|---|
CCSF-641 | Fixed Javascript errors on product detail pages |
ID | Description |
---|---|
CCSF-509 | Added hint to the rebuild of the Search Indexes in the documentation |
CCSF-514 | Added hint to use banners and sliders in blog articles and banner |
CCSF-534 | Added hint for link replacement by Regex using the storefront URL in the docu |
CCSF-618 | Adding the missing resolution and adapting the blog article to the reference of the resolutes of the ARTICLE_TEASER_IMAGE |
ID | Description |
---|---|
CCSF-648 | Generation warning for ProductTiles in a ProductDetailPage resolved |
ID | Description |
---|---|
CCSF-640 | Promotion text on product detail pages does not disappear anymore |
ID | Description |
---|---|
CCSF-633 | Added missing JavaScript und CSS references to slider template |
ID | Description |
---|---|
CCSF-634 | Replaced faulty variable in Article Link by hard coded id |
CCSF-636 | Delete hard coded site id from preview_generation template |
ID | Description |
---|---|
CCSF-456 | added chapter about CMS-PARAM-PREVIEWLANG |
ID | Description |
---|---|
CCSF-518 | changed example links from http to https; added note for mediaurl prefix |
CCSF-603 | Compatibility with the Storefront Reference Architecture 3.3.0 |
ID | Description |
---|---|
CCSF-497 | Added reference for configuration of the technical user in WebDAV-Deployment. |
CCSF-502 | Added note about content asset ID. |
ID | Description |
---|---|
CCSF-580 | Added note for mediaurl parameter in deployment schedule. |
ID | Description |
---|---|
CCSF-630 | Improvements for running on a FirstSpirit Isolated server |
ID | Description |
---|---|
CCSF-620 | Improved support for FirstSpirit Isolated server and Java 11 |
ID | Description |
---|---|
CCSF-565 | Updated images in the documentation to the new FirstSpirit design |
This version of the ContentConnect module extends the Salesforce Commerce Cloud content cleanup and the API.
The content cleanup feature now provides configuration options to set a Commerce Cloud site and to filter obsolete content.
The class SlotConfigurationManager
of the API was extended by the method deleteSlotConfigurations(siteId, slotConfigurations)
which removes multiple slot configurations of a given site.
In addition to that, a new query
constructor parameter was added to the RangeFilterQuery
class.
The new parameter expects a string containing a Query object as JSON.
For further information head to Open Commerce API > Data API documents > RangeFilter document in the Commerce Cloud documentation.
ID | Description |
---|---|
CCSF-275 | Removed chapter Apache Commons Codec |
CCSF-616 | Extended the Salesforce Commerce Cloud content cleanup |
This version of the ContentConnect modules extends the provided API.
The method loadProduct(locale, identifier)
which allows the retrieval of localized product data was added to the ProductManager
class.
Additionally, the methods getTitle(language)
, getName(language)
and getDescription(language)
of the Product
class are now marked as deprecated.
The replacement methods are listed in the API documentation of the deprecated methods and should be used instead because the deprecated methods will be completely removed in the future.
ID | Description |
---|---|
CCSF-612 | Extended the API by a retrieval of localized product data |
ID | Description |
---|---|
CCSF-611 | Fixed wrong visualization of the storefront icons |
ID | Description |
---|---|
CCSF-128 | Instant adoption of configuration changes |
CCSF-598 | Minor style changes to the buttons for creating paragraphs and pages |
CCSF-610 | Form of the xml generation template is now language independent |
ID | Description |
---|---|
CCSF-607 | Fixed flawed display of sliders when using the variant selection |
CCSF-608 | Fixed an exception while processing a product without price |
ID | Description |
---|---|
CCSF-604 | Fixed wrong visualization of the storefront icons |
The Java 10 compatibility of the ContentConnect module does not comprise the module for WebDAV deployment included in the delivery. In its current version the WebDAV deployment module does not work when using Java 9 or 10 for the FirstSpirit server. |
ID | Description |
---|---|
CCSF-573 | The module is now compatible with Java 10 and FirstSpirit servers in the isolated mode |
CCSF-575 | The category report now shows more than 100 entries |
CCSF-578 | The search function in the category report now also takes names of parent categories into account |
CCSF-601 | Renamed default groups of reference project |
ID | Description |
---|---|
CCSF-606 | Improved error handling of the report in connection with SSL certificates |
ID | Description |
---|---|
CCSF-600 | It is now possible to pass url parameters for the Storefront url dynamically to the preview filter |
ID | Description |
---|---|
CCSF-602 | Fixed an error in the OC API settings chapter in the english documentation |
ID | Description |
---|---|
CCSF-231 | The reference project now provides a variant selection on content areas |
CCSF-597 | Fixed flawed time indications of the effective period within slot configurations |
CCSF-599 | Fixed issues in the documentation |
ID | Description |
---|---|
CCSF-476 | Added default usergroups and permissions to reference project |
CCSF-596 | The english documentation has been updated |
The reference project and cartridges were updated to the SFRA (Storefront Reference Architecture) version 3.0.0 with this version of the ContentConnect module.
The StarterPackage won’t be backward compatible to older versions of the MFRA from now on. |
ID | Description |
---|---|
CCSF-590 | Minor documentation changes |
CCSF-591 | Compatibility with the Storefront Reference Architecture 3.0.0 |
ID | Description |
---|---|
CCSF-574 | Improved page reference extraction mechanism |
ID | Description |
---|---|
CCSF-510 | The reference project now supports editing the login page |
ID | Description |
---|---|
CCSF-576 | Removed obsolete page Preview Content Page |
CCSF-582 | Fixed wrong rule of Social Media Embedding section template |
CCSF-583 | Adjusted allowed sources for fs content links |
CCSF-585 | Removed duplicate Content Highlighting from Social Media Share section template |
CCSF-589 | Added missing documentation for page template Product Detail Page Preview |
CCSF-593 | Added missing preview images for category and product detail page templates |
ID | Description |
---|---|
CCSF-520 | Adjusted visibility of slot configurations within magazine articles |
ID | Description |
---|---|
CCSF-572 | Removed limit of slot configurations |
CCSF-577 | Links in the footer are now inactive |
CCSF-579 | Removed obsolete label of article table template |
CCSF-581 | Small banners without title are now correctly displayed |
CCSF-586 | Fixed creating blog articles using the ContentCreator |
CCSF-588 | Stores are in a released state again |
ID | Description |
---|---|
CCSF-267 | The reference project now supports editing product detail pages |
ID | Description |
---|---|
CCSF-528 | Improved styling of the title of banner and slider images |
CCSF-568 | Fixed an issue when reloading non-managed pages |
ID | Description |
---|---|
CCSF-570 | Product Tile sections allow up to three products |
ID | Description |
---|---|
CCSF-516 | Improved handling of product links |
CCSF-569 | Improved displaying of products without thumbnails |
ID | Description |
---|---|
CCSF-472 | Improved slot configurations of sections |
CCSF-517 | Adjusted styling of the title of banner images and sliders |
CCSF-549 | Optimized validation of the project component configuration |
ID | Description |
---|---|
CCSF-168 | Made reports use the DataAccessPlugin-API |
CCSF-478 | Adjusted labels of banner image decorations |
CCSF-525 | Removed caching of the preview configuration |
CCSF-537 | Optimized page creation of category detail pages |
CCSF-560 | Improved XML of the slot configuration link template |
The reference project and cartridges were updated to the MFRA (Mobile First Reference Architecture) version v2.1.0 with this version of the ContentConnect module. In order to migrate to the new MFRA version the affected components have to be updated as follows:
The cartridges int_firstspirit_cms_mfra
and int_firstspirit_cms_core
have to be updated within the WebDAV directory.
The following custom regex needs to be appended to the output channel of the preview_generation
format template:
$-- Remove tracking consent popup --$ <!-- CMS-REGEX-PATTERN-START --> regex-match="<span.*?class=".*?tracking-consent.*?"(?s).*?><\/span>" regex-value="" <!-- CMS-REGEX-PATTERN-END -->
ID | Category |
---|---|
CCSF-551 | Updated controllers and templates of the MFRA cartridge to support the MFRA version v2.1.0 |
ID | Description |
---|---|
CCSF-548 | Updated the english documentation |
ID | Description |
---|---|
CCSF-562 & CCSF-558 | Fixed issues in the documentation |
ID | Description |
---|---|
CCSF-521 | Added web component for the BasicWorkflows |
CCSF-525 | Added workflow permissions to all stores |
CCSF-529 | Deactivated search refinements on category detail pages |
CCSF-541 | Fixed bug when generating magazine articles |
The version 2.48.0 fixes a typo in the reference name of the product page folder within the page creation. As a result, creating product pages after updating to this version might create a second page folder for product pages. Since this doesn’t interfere with any functionality whatsoever, a migration is not necessary.
However, if a migration is still needed it will be sufficient to move all of the product pages of the old page folder (with the reference name containing the typo) to the newly created page folder (with the correct reference name).
ID | Description |
---|---|
CCSF-162 | Added Executable to create category oder product pages |
ID | Description |
---|---|
CCSF-415 | Each section must not have more than one slot configuration |
CCSF-542 | Fixed a typo in the reference name of the product page folder |
CCSF-544 | Added invalidation of the page cache |
CCSF-545 | Fixed issues of the documentation |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-269 | Navigation | Added extension of the navigation |
CCSF-530 | Documentation | Updated the english documentation |
ID | Category | Description |
---|---|---|
CCSF-513 | Documentation | Adjusted description of the media url of WebDAV deployment |
The version 2.48.0 introduces the new feature Apache Velocity code rendering. It provides the functionality to render Velocity code within the preview of pages that are managed by FirstSpirit.
Further information about Velocity rendering can be found in the chapters Preview and Category detail pages of the german documentation.
In order to make use of the CommerceCloud Script-API you need to provide a Storefront controller that performs the rendering of the velocity code.
An example implementation of such a Storefront controller is contained within the module distribution at:
/cartridge/controllers/Content.js
The Storefront controller that is responsible for Velocity rendering has to strictly adhere to the following traits:
The name of the controller and the method can be chosen freely because they are managed with an input component within FirstSpirit.
The ContentConnect Preview finds all velocity code fragments of a page and sends them to the Storefront controller. Therefore it needs some way of finding the Velocity code fragments which means you have to provide HTML comments with this predefined syntax:
<!-- CMS-VELOCITY-{ID}-START --> {Velocity code} <!-- CMS-VELOCITY-{ID}-END -->
For more information about the Velocity rendering markings and the configuration of the Storefront controller head to chapter Category detail pages of the german documentation.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-285 | Social media | Added embedding and sharing of social media content |
CCSF-320 | Preview | Added support for velocity rendering |
CCSF-420 | Navigation | Improved links within the navigation |
ID | Category | Description |
---|---|---|
CCSF-524 | Generation | Fixed generation error of blog articles |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-483 | Project settings | Added version of the StarterPackage project |
CCSF-486 | Language references | Removed obsolete language references |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-172 | Page creation | Optimized page creation of product and category pages |
ID | Category | Description |
---|---|---|
CCSF-488 | Videos | Removed aspect ratio configuration for Vimeo videos |
CCSF-522 | Blog articles | Removed validity period of blog articles |
The new version of the ContentConnect module extends the available API.
The class ProductManager
now contains the additional methods getTemplateMappingCategory
and getTemplateMappingProduct
.
Those methods grant access to the template mapping configurations of categories and products which can be configured within the project component.
Due to the newly added methods the CategoryTemplateMapping
class became obsolete, is marked as deprecated, and the new TemplateMapping
class will serve as a replacement.
With this version of the ContentConnect module the cartridge was split into the following three cartridges:
int_firstspirit_cms_core
)
int_firstspirit_cms_mfra
)
int_firstspirit_cms_sitegenesis
)
A migration to the new cartridges is not necessary because no additional functionality was introduced with this version of the module. In case of migrating to the new cartridges the core cartridge has to be added to the cartridge path of the site in addition to the architecture-dependent cartridge (either MobileFirst reference architecture cartridge or SiteGenesis cartridge).
This version of the ContentConnect module also adds support for the version 2.0 of the Mobile First Reference Architecture (MFRA). The StarterPackage won’t be backward compatible to older versions of the MFRA from now on.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-180 | Report | Added configuration options to hide dialog when creating detail pages |
CCSF-190 | Project component | Added mapping for render templates of products |
CCSF-346 | Reference project | Templates of slot configurations are stored in the forms of sections |
CCSF-466 | Cartridge | Splitting of the cartridge |
CCSF-498 | MFRA | Support of the Mobile First Reference Architecture 2.0 |
ID | Category | Description |
---|---|---|
CCSF-508 | Project | Adjusted styling of the banner and slider |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-268 | Content pages | Added blog articles for content pages |
CCSF-452 | Project settings | Changed preconfiguration of project settings |
CCSF-470 | Templates | Removed UTM parameters of link templates |
CCSF-471 | Templates | Reworked display- and reference names of link templates |
CCSF-474 | Templates | Removed page template Meta Data |
CCSF-475 | Media | Added stock photos |
CCSF-493 | Documentation | Updated english documentation |
ID | Category | Description |
---|---|---|
CCSF-372 | Rules | Updated rules syntax of various templates |
CCSF-411 | Links | Deactivated links to the login page |
CCSF-481 | Section templates | Overhauled Shop-The-Look template |
CCSF-485 | Content pages | Optimized visualization of the header |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-515 | Reports | Fixed a problem with many catalogs on the SFCC instance |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-507 | Schedule | Handled a special error case when triggering the import job. |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-368 | Documentation | Explained the generation |
CCSF-391 | Documentation | Explained means to debug problems in the preview in the German documentation |
CCSF-451 | Documentation | Updated the English documentation |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-344 | Project component | Removed button for template import |
CCSF-443 | Configuration | Moved configuration of input components for controller and context id from web.xml to project settings |
This version contains a renewed StarterPackage. The reference project and the templates in the cartridge are now based on the new MobileFirst Reference Architecture.
The documentation of the ContentConnect module has also been rewritten. It has a strong relation to the new StarterPackage and focuses on the implementation of specific use cases.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-426 | Preview | Affixes of crop marks are now configurable |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-396 | Preview | Removed need of a technical user |
CCSF-398 | Reports | Standardization of the context ID field |
The new version of the ContentConnect module includes the ContentConnect Preview Proxy. The ContentConnect Preview Proxy provides means to cope with problems caused by Cross-origin requests while loading external resources within the preview.
For further information on how to configure and use the ContentConnect Preview Proxy head to the section ContentConnect Preview Proxy of the german documentation. The english documentation will contain the new section ContentConnect Preview Proxy in the near future.
By adding the ContentConnect Preview Proxy to the ContentConnect web component the web.xml has been extended by two entries regarding the proxy. The web.xml will be updated automatically during the update of the module, as long as the file hasn’t been edited previously. In this case the file will remain unchanged after the update and the following entries have to be added manually to the web.xml of the Preview and the ContentCreator:
<servlet> <servlet-name>ContentConnectPreviewProxy</servlet-name> <servlet-class>com.espirit.moddev.demandware.preview.proxy.ProxyServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ContentConnectPreviewProxy</servlet-name> <url-pattern>/proxy/*</url-pattern> </servlet-mapping>
For further information on the web components head to the chapter Adding web components of the documentation.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-340 | Preview | Added the ContentConnect Preview Proxy |
CCSF-350 | Preview | Fallback category for offline categories |
The new version of the ContentConnect module introduces the Content cleanup feature and extends the available API. The Content cleanup feature allows for automatic cleanup of obsolete content assets and slot configurations that were managed by FirstSpirit. In order to make use of this feature follow all of the instructions below.
The actions Salesforce Commerce Cloud Initializer
and Salesforce Commerce Cloud Cleanup
have to be added to the deployment schedule.
Further information on how to properly configure them is currently only available in chapter 6 of the german documentation.
The english documentation will be adapted with a future release.
Furthermore the OCAPI access privileges need to be adjusted to allow certain requests to the following resources:
ShopAPI
/content_search
(GET only)
DataAPI
/libraries/*/content/* (DELETE only)
/sites/*/slot_configuration_search (POST only)
/sites/*/slots/*/slot_configurations/* (DELETE only)
Before the content cleanup can be started the search index has to be updated. To achieve that the ContentSync pipeline has been adjusted to do a synchronous updating of the search index instead of an asynchronous update. To use the content cleanup feature updating the pipeline is necessary.
Finally, to make us of the Content cleanup
feature you have to import the Custom-Attributes-Metadata.xml
and create a search refinement definition.
Detailed instructions can currently only be found in chapter 3.2.3 of the german documentation.
Several different methods were added to the API.
The SlotConfigurationManager
interface now contains the two new methods deleteSlotConfigurations
and searchSlotConfigurations
.
The class SearchRequest
was added to the API to use the searchSlotConfigurations
method.
The SearchRequest
class represents a generic OCAPI search requests by providing a Query
, which was also added to the API.
Besides that, the deleteContentAssets
method was added to the LibraryManager
interface.
Further information about the specific usage of the ContentConnect API can be found within the Javadoc documentation.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-234 | Feature | Content cleanup, new API methods, Batch requests for reducing network load |
This version update adds the ContentConnect Preview Filter to the module. It increases template code readability, replaces JSP-logic and reduces error-proneness with large pages.
There are several things that need to be adjusted in order to use the new ContentConnect Preview Filter. That includes adjustments within page templates, format templates and project settings. Additionally, the web componenent of the ContentConnect Preview filter needs to be configured.
A detailed description of all the adjustments mentioned above can be found in chapter 8 of the documentation.
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-235 | Preview | Added the ContentConnect Preview Filter |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
CCSF-367 | Categories | Fixed a bug when requesting categories |
Product | Version(s) | Notice |
---|---|---|
FirstSpirit | 5.2 | - |
ID | Category | Description |
---|---|---|
DEM-319 | Caching | Fixed a caching bug |
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.