IBM® WebSphere Commerce V7 Developer Fix Pack 7, APAR JR53048.fp, readme fileIBM® WebSphere Commerce V7 Fix Pack 7, APAR JR53048.fp, readme fileIBM® WebSphere Commerce V7 Feature Pack 6, APAR JR53048.fep, readme fileIBM® WebSphere Commerce V7 Developer Feature Pack 6, APAR JR53048.fep, readme file

Cumulative interim fix JR53048 is a fully tested package that includes all the interim fixes that have accumulated for Fix Pack 7Feature Pack 6. This package eliminates the complicated installation process of applying many fixes individually. Any Fix Pack 7Feature Pack 6 interim fixes that are installed on the environment do not need to be uninstalled. Any Fix Pack 7 interim fixes that are created after the release of this cumulative interim fix require this cumulative interim fix as a prerequisite.Any Feature Pack 6 interim fixes that are created after the release of this cumulative interim fix require this cumulative interim fix as a prerequisite.

Follow these instructions to successfully install the interim fix JR53048.fpJR53048.fep on WebSphere Commerce Developer 7.0.0.77.0.0.7V7 Developer Feature Pack 6V7 Feature Pack 6.
Attention: If you encounter an Out Of Memory condition during the installation of this fix, see Encountering Out Of Memory during APAR installation.

1. Preparing to install the interim fix

  • Ensure that WebSphere Commerce Developer 7.0 is at the 7.0.0.7 level (Fix Pack 7)Feature Pack 6 level before you apply this interim fix. This interim fix is not applicable to any other fix packfeature pack versions of WebSphere Commerce Developer 7.0.
  • Ensure that features are enabled. For more information, see Enabling features.
  • If you are on Fix Pack 8 or later, download the prerequisite cumulative interim fix (JR53048.fp) for the Fix Pack version that you are on. Save the .pak file to a location that is accessible to the WebSphere Commerce Update Installer. For example, the UPDI_installdir/maintenance/ directory.
    Note: If you are on Fix Pack 7, you do not have to download the fix pack cumulative. The package is included when you downloaded the cumulative for Feature Pack 6.
  • Install the latest cumulative interim fix for the fix pack version that you are on before you attempt to install the feature pack cumulative. The fix pack cumulative is a prerequisite.
  • Ensure that you are using the latest version of WebSphere Commerce Update Installer.
    Warning: If you need to install a newer version of Update Installer (UPDI), ensure that you do not overwrite the original Update Installer that is in the WCDE_installdir/UpdateInstaller directory. Install the new version to a different directory and use the new UPDI version to install an interim fix. The original UPDI version is used by Installation Manager when you upgrade a fix pack in WebSphere Commerce Developer. If you overwrite the original UPDI version, Installation Manager will fail during a fix pack upgrade.
  • Ensure that customizations are backed up and can be reimplemented if necessary. IBM ensures that the IBM Management Center for WebSphere Commerce compile completes successfully when only IBM code is present. IBM cannot ensure that the compile is successful when client-customized OpenLaszlo code is also present. If the compile is not successful, you must consult with Management Center developers who implemented the customizations.
  • Ensure that all customizations are deployed by using the recommended methods or customizations might be lost when you apply this fix. For information about the recommended method, see Deploying in the IBM Knowledge Center.
  • Create a back-up of your store archive file (.sar) if you are using a published store that is based on the Feature Pack 6 Aurora starter store.

    This fix changes Aurora starter store files.

    You can locate the file in the ConsumerDirect or ExtendedSites subdirectories in the following location:
    • WC_installdir/instances/instance_name/starterstores/
    • WCDE_installdir/starterstores/

2. Installing WebSphere Commerce Developer interim fix JR53048.fpJR53048.fep

You must install this interim fix from the machine where you created your WebSphere Commerce instances. If customizations are not deployed by using the recommended methods, they might be lost by applying this fix. For more information, see Deploying in the IBM Knowledge Center. Complete the following steps to install the cumulative interim fix and then manually enable fixes on your environment.

Procedure

  1. Install the cumulative interim fix by following the steps in Installing WebSphere Commerce Developer interim fixes Installing WebSphere Commerce interim fixes.
  2. Complete the required steps to apply critical fixes to your environment.
  3. Review the optional steps and complete any steps that apply to your environment.
  4. Review the optional steps and complete any steps that apply to your environment.
  5. Republish your WebSphere Commerce Test Server.

3. Completing required steps after you install cumulative interim fix JR53048.fep

Complete the following required steps to apply critical fixes. If you do not complete these required steps, your environment might not function properly.

Before you begin

The prerequisite fix pack cumulative interim fix might include additional installation steps to successfully enable the fix pack changes onto your environment. Before you move on to the following procedure, complete the required installation steps (section 3) for the fix pack cumulative interim fix.

Procedure

  1. Required: (Search) Update Solr Web ARchive (WAR) - Required to support search-related fixes that are included in this cumulative interim fix (JR53048).
  2. Required: (Search) Apply fix JR50044 - Allows search to work correctly for sales categories with multiple parents.
  3. Optional: Complete optional steps after you install cumulative interim fix JR53048.fep.

    JR53048.fep includes some optional fixes and enhancements that are not automatically applied to your WebSphere Commerce environment. To apply these optional fixes and enhancements, you need to complete some manual steps.

Required: Update Solr web archive (WAR)

Cumulative interim fix JR53048 contains an updated Solr web archive that you must deploy to support other search-related fixes that are included in this cumulative interim fix.

Procedure

  1. Extract the Solr.zip file from the SolrUpdate_6.0.0.0-WS-WC70FeaturePack6Server-IFJR53048.fep.zipSolrUpdate_6.0.0.0-WS-WC70FeaturePack6Toolkit-IFJR53048.fep.zip package to a local directory.
  2. Deploy the Solr.zip file.
    For more information, see Deploying Java EE assets for a partial application.
    Note:
    • When the procedure refers to the WebSphere Application Server Administration Console, use the Solr server WebSphere Application Server Administration Console
    • Replace WC_instance_name with Solr_instance_name
    • Select the "Replace, add, or delete multiple files" radio button on the "Preparing for the application update" page

    Back to Additional steps

Required: Apply interim fix JR50044

This interim fix removes the limitation where a sales category can have only one parent because the search navigation cache caches the first path only. To remove the limitation, complete the following procedure:

Procedure

  1. Open the WC_eardir/Stores.war/<StoreFolder>/Widgets/LeftNavigation/CategoryFacetDisplay.jspf file.
  2. Locate the following line of code:
    <c:if test="${WCParam.categoryId != item.value && fn:endsWith(item.extendedData['parentIds'], WCParam.categoryId)}">
  3. Change the line to the following code:
    <c:if test="${WCParam.categoryId != item.value && fn:contains(item.extendedData['parentIds'], WCParam.categoryId)}"> 

    Back to Additional steps

4. Completing optional steps after you install cumulative interim fix JR53048.fep

Some fixes and enhancements that are included in this package are not automatically enabled because you might not need them on your environment. The following list describes optional fixes and enhancements that you can manually enable. Review the following section to see if you want to enable any new features or apply any particular fixes.

Procedure

  1. Fixes and enhancements related to Stores and Mobile:
    1. Optional: (Stores and Mobile) JR46451 - Apply this fix to enable relativeURL generation by using wcf:url tags.
  2. Fixes and enhancements related to Search:
    1. Optional: (Search) JR47563 - Apply this fix if you have multiple instances at different feature pack levels so that you can run the preprocess utility and buildindex utility to use instance level JAR files rather than product level JAR files.
    2. Optional: (Search) JR48121 and JR49050. - Apply these fixes to improve performance of Solr multi-index reader.
    3. Optional: (Search) JR50286 - Apply this fix to improves Management Center performance by providing a flag so that unstructured delta indexing is not triggered by Management Center.
    4. Optional: (Search) JR49419 - Apply this fix to enable delta index build instead of always using the full index build.
    5. Optional: (Search) JR49587 - Apply this fix if you want to make entitlement fast flow configurable.
    6. Optional: (Seach) JR49326 and JR48977 - Apply these fixes to enable a new parameter for the invalidateSearchCache script so that you can specify a custom password file to store the encrypted passwords for the
    7. Optional: (Search) JR48148 - Apply this fix if shoppers cannot add to cart or add to wish list.
    8. Optional: (Seach) JR50755.fep and JR50129 - Apply this fix to update the the di-buildindex and di-preprocess utilities.
    9. Optional: (Search) Apply fix JR49109 - Corrects the multi-index handler to allow fields from inventory index to be returned along with collate spellcheck results.
    10. Optional: (Search) Apply fix JR48954 - Supports sequencing products across categories and all its subcategories.
    11. Optional: (Search) Apply fix JR50873 - If you modify StaticContentSitemap.jsp with crawurl and indexurl to contain the same value, complete this step to fully apply the fix.
    12. Optional: (Search) Apply fix JR48101 - Hides attribute values with zero count upon filtering and hides the facet if all facet counts are zero upon filtering.
  3. Fixes and enhancements related to Runtime:
    1. Optional: (Runtime) Apply fix JR49630 - Adds support for shared inventories for the Extended Sites business model.
  4. Fixes and enhancements related to Messaging and Integration:
    1. Optional: (Messaging and Integration) Apply fix JR46224 - Improves performance for WebSphere Commerce environments that leverage the DOM inventory model.
    2. Optional: (Messaging and Integration) Apply fix JR49610 - Firing Phase capability is enabled in the WebSphere Commerce and Sterling Configurator integration
    3. Optional: (Messaging and Integration) Apply fix JR48683 - Add support for the Test Model button when you integrate WebSphere Commerce with Sterling Configurator.
    4. Optional: (Messaging and Integration) Apply fix JR49090 - Supports the option to set the Visual Modeler skin in the WebSphere Commerce transport setting.
  5. Fixes and enhancements related to Marketing and Promotions:
    1. Optional: (Marketing and Promotions) Apply fix JR50383 - Management Center: Enables the ability to add a web activity to a campaign.
    2. Optional: (Marketing and Promotions) Apply fix JR47728 - Improves performance of promotion code generation utility on WebSphere Commerce environments with an Oracle database.
    3. Optional: (Marketing and Promotions) Apply fix JR49477 and JR49896 - Ensures that 'one time use' promotion codes expire after it is used.
  6. Fixes and enhancements related to Orders, Payments, and Inventory:
    1. Optional: (Orders, Payments, and Inventory) Apply fix JR47546 - Enhance DOM inventory performance.
  7. Fixes and enhancements related to Data load and other utilities:
    1. Optional: (Data load and other utilities) Apply fix JR48801 - Can export existing promotions from one machine and import the promotions to a different machine.
    2. Optional: (Data load and other utilities) Apply fix JR50311 - Enhances Data Load utility to support organization data that contains special characters for the organization name.
  8. Fixes and enhancements related to Catalog, Assets, Contracts, and Pricing:
    1. Optional: (Catalog, Assets, Contracts, and Pricing) Apply fix JR48359 - Supports modification of the preprocess SQL statements that are used in the CatalogHierarachyPreProcessor to customize them in the wc-dataimport-preprocess-parent-catgroup.xml file.
    2. Optional: (Catalog, Assets, Contracts, and Pricing) Apply fix JR46213 - Allows more than one contract to be passed in and evaluated in the GetCatalogNavigationView service call.
    3. Optional: (Catalog, Assets, Contracts, and Pricing) Apply fix JR47308 - For Madisons starter stores: Fixes how the ProductViewHandler returns URLs.
    4. Optional: (Catalog, Assets, Contracts, and Pricing) Apply fix JR47399 - Enables integration between IBM Web Content Manager and IBM WebSphere Commerce.
    5. Optional: (Catalog, Assets, Contracts, and Pricing) Apply fix JR50830 - Enables the ability to save catalog entry descriptive attribute values for multiple languages in the Management Center.

Optional: Apply interim fix JR46451

Interim fix JR46451 enables relative URL generation by using wcf:url tags. For the wcf:url tag to construct relative URLs with context path, complete the following procedure.

Procedure

  1. Open the WebSphere Commerce configuration file.
  2. Search for the SEOConfiguration element.
  3. Add the constructUrlWithoutHost="true" parameter.
    For example:
    <SEOConfiguration defaultUrl="" dynamicUrl="true" enable="true" constructUrlWithoutHost="true"/>
  4. Save the file.
  5. Propagate changes to the WebSphere Commerce configuration file

Optional: Apply interim fix JR47563

This interim fix updates the preprocess and buildindex utilities to use instance level JAR files rather than product level JAR files. If you have multiple instances at different feature pack levels, you must complete the following steps so that you can update the search index for your instances.

Procedure

  1. Copy the buildindex utility (di-buildindex.bat or di-buildindex.sh) and preprocess utility (di-preprocess.bat or di-preprocess.sh) from the components\foundation\bin directory.
  2. Paste the files into the WC_installdir/bin directory.

Optional: Apply interim fix JR48121 and JR49050

This interim fix improves performance of Solr multi-index reader. To apply the fix, complete the following procedure:

Procedure

  1. Open the WC_eardir/xml/config/com.ibm.commerce.catalog-fep/wc-component.xml file.
  2. Find the following line of code:
    <_config:property name="BoostByRankInCatalogAndCategory" value="product(-0.001,getSequenceByCatalogAndCategory(sequence,'%s','%s'))" />
  3. Replace the line with the following code:
    <_config:property name="BoostByRankInCatalogAndCategory" value="getSequenceByCatalogAndCategory(sequence,'%s','%s')" />

    Back to Additional steps

Optional: Apply interim fix JR50286

Unstructured indexing that is triggered in Management Center slows down the business users productivity. You can now set a flag so that unstructured delta indexing does not occur. If you want to disable the index for unstructured index for store preview, complete the following procedure.

Procedure

  1. Open the wc-component.xml configuration file.

    For more information about changing configuration files, see Changing properties in the component configuration file.

  2. Add the following configuration:
    <_config:DevelopmentComponentConfiguration
    xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../xsd/wc-component.xsd ">
    
        <_config:extendedconfiguration>
            <_config:configgrouping name="SearchConfiguration">
                <_config:property name="IndexUnstructured" value="false" />
            </_config:configgrouping>
        </_config:extendedconfiguration>
    </_config:DevelopmentComponentConfiguration> 

    Back to Additional steps

Optional: Apply interim fix JR49419

If you require a delta index build instead of always using the full index build, complete the following procedure to enable delta index builds.

Procedure

  1. Go to WC_installdir/components/foundation/subcompoment/search/bin directory.
  2. If you changed the configuration file under solrhome/MC_MasterCatalogId/generic/, back-up your changes.
  3. Run the setupSearchIndex command for indexsubtype Inventory for the master catalog ID only.
    For more information, see Setting up the inventory search index.
  4. Create UpdateSearchIndex scheduler with mode=6 for inventory delta index:
    For example, use the job parameters: mode=6&amp;indexSubType=Inventory&amp;masterCatalogId=10001.

    For more information, see Creating and scheduling the UpdateSearchIndex job.

  5. When the inventory is updated for a catalog entry, insert an entry to TI_DELTA_INVENTORY table with the correct CATENTRY_ID.

Optional: Apply interim fix JR49587

If you installed interim fixes for APARs JR49158 and JR48850, you might see empty categories in the storefront. A new entitlement flow was introduced, but when there is no catalog filter, or 'catalog filter apply to all' option, you end up seeing empty categories in the storefront.

To disable the entitlement flow, complete the following procedure.

Procedure

  1. Open the configuration file for the catalog component WC_installdir/xml/config/com.ibm.commerce.catalog-fep/wc-component.xml.
  2. Disable the fast flow option by changing the FastFlowForEntitlement property to false.
    For example:
    <_config:property name="FastFlowForEntitlement" value="false"/>  

Optional: Apply interim fix JR49326 and JR48977

You can now pass an encrypted password to the invalidateSearchCache script. To use the new script, complete the following procedure.

Procedure

  1. Copy the invalidSearchCache script from the components\foundation\bin directory.
  2. Paste the script to the WC_installdir/bin directory.

Optional: Apply interim fix JR48148

If you disabled Ajax 'Add to Cart' but enabled search-based navigation, complete the following procedure to fix failures when shoppers attempt to add to cart or add to wish list.

Procedure

Optional: Apply interim fix JR50755.fep and JR50129

Two fixes are included for the di-buildindex and di-preprocess utilities:
  • JR50755 includes the ability to specify a custom password file to store encrypted passwords for the utilities
  • JR50129 includes performance enhancements to the utilities when run against large catalogs
To apply the fixes, complete the following procedure.

Procedure

  1. Copy the di-buildindex and di-preprocess utilities from the components\foundation\bin directory.
  2. Paste the script to the WC_installdir/bin directory.

Optional: Apply interim fix JR49109 and JR50878.fep

This interim fix corrects the multi-index handler to allow fields from inventory index to be returned along with collate spellcheck results. To apply the fix, complete the following procedure.

Procedure

  1. Open the solrconfig.xml file from all of the existing CatalogEntry Solr core conf directories.
  2. Add the following two lines within the UpdateHandler section.
    
    <listener event="postCommit" class="com.ibm.commerce.solr.listener.PostCommitNotifyOnChangeListener" >
    </listener>
    

    Back to Additional steps

Optional: Apply interim fix JR48954

This interim fix supports sequencing products across categories and all its subcategories. If you want to enable deep category sequencing functionality, complete the following procedure.

Procedure

  1. Open the wc-component.xml under the catalog component configuration extension directory (for example, WC\xml\config\com.ibm.commerce.catalog-ext\).
  2. Paste the following code to add the new feature:
    <_config:property name="BoostByRankInCatalogAndCategory" value="getSequenceByCatalogAndCategory(globalSequence,'%s','%s')" />

    Optionally, to allow search rules with filtering conditions to work with product sequencing during category navigation, add the following property to the same file:

    <_config:property name="CombineFilterRuleWithProductSequencing" value="true" />

    When this property is enabled, search rules for all keywords can be used for category navigation, and products that are returned are ordered according to their sequence defined at that category. Default value is false.

    Limitation: Because sorting overrides ranking at runtime, search rules with boosting and relevancy ranking criteria are ignored. Only search rules with filtering conditions can be used with product sequencing.
    Note: To trigger search rules for all keywords during category navigation, add a '*' search term to the browse query request.
    For more information about updating configuration files, see Change configuration in wc-component.xml
    The following code is a sample with the changes:
    <_config:DevelopmentComponentConfiguration  xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../xsd/wc-component.xsd ">
    	<_config:extendedconfiguration>
    		<_config:configgrouping name="SearchConfiguration">
    			<_config:property name="BoostByRankInCatalogAndCategory" value="getSequenceByCatalogAndCategory(globalSequence,'%s','%s')" />
    			<_config:property name="CombineFilterRuleWithProductSequencing" value="true" />
    		</_config:configgrouping>
    	</_config:extendedconfiguration>
    </_config:DevelopmentComponentConfiguration>
  3. Open the solr_home/MC_catalogId/locale/CatalogEntry/conf/schema.xml file.
  4. Add the following new index fields to the <fields> section:
    <!--
    Catentry's display sequence: map to table: TI_ENTGRPPATH
    -->
    <field name="globalSequence" type="wc_keywordText" indexed="true" stored="true" multiValued="true"/>
  5. Open the solr_home/MC_catalogId/locale/CatalogEntry/conf/solrconfig.xml file.
  6. Add the following code:
    <valueSourceParser name="getSequenceByCatalogAndCategory"
         class="com.ibm.commerce.foundation.internal.server.services.search.function.solr.SolrSearchGetDeepSequenceFunctionParser" />
  7. Copy the components/foundation/samples/dataimport/catalog/database/wc-dataimport-preprocess-catgroup-global-sequence.xml file.
  8. Paste the file to the solr_home/pre-processConfig/MC_catalogId/database/ directory.
  9. Find the index scope tag by running this SQL statement:
    select indexscope, indextype, config from srchconf 
    where indexscope='masterCatalogId' and indextype='CatalogEntry'
    For example, if the IndexScopeTag=0, then the tag is 0.
  10. Open the wc-dataimport-preprocess-catgroup-global-sequence.xml file in a text editor.
  11. Replace all occurrences of #INDEX_SCOPE_TAG# with the tag number that you found.
  12. Replace all occurrences of #MASTER_CATALOG_ID# with the master catalog ID that you used in step 9.
  13. Check the table names in the file.
    For example, TI_GROUPPATH_0, to ensure that the index scope tag is 0.
  14. If you have more than one MC_masterCatalogId directory, repeat the steps for all the MC_masterCatalogId directories.
  15. Open the solr_home/MC_catalogId/locale/CatalogEntry/conf/wc-data-config.xml file.
  16. Update the file with the following snippets that are in bold:
    <dataSource name="WC database"
    	type="JdbcDataSource"
    	transactionIsolation="TRANSACTION_READ_COMMITTED"
    	holdability="CLOSE_CURSORS_AT_COMMIT"
      />
    
      <dataSource name="unstructuretmpfile"
    	type="FileDataSource"
    
           <!-- Product start -->
           <entity name="Product"
           	
             TI_CATGPENREL.SEQUENCE,
             TI_ENTGRPPATH.ENTGRPPATH,
             TI_SEOURL.SEO_TOKEN,
    
             LEFT OUTER JOIN TI_CATGPENREL_indexScope TI_CATGPENREL ON (CATENTRY.CATENTRY_ID=TI_CATGPENREL.CATENTRY_ID)
             LEFT OUTER JOIN TI_ENTGRPPATH_indexScope TI_ENTGRPPATH ON (CATENTRY.CATENTRY_ID=TI_ENTGRPPATH.CATENTRY_ID)
             LEFT OUTER JOIN TI_SEOURL_indexScope_languageId TI_SEOURL ON (CATENTRY.CATENTRY_ID=TI_SEOURL.CATENTRY_ID)
    
             deltaImportQuery="SELECT CATENTRY.CATENTRY_ID,CATENTRY.MEMBER_ID,CATENTRY.CATENTTYPE_ID,CATENTRY.PARTNUMBER,
    		CATENTRY.MFPARTNUMBER,CATENTRY.MFNAME, CATENTRY.BUYABLE, CATENTRY.STARTDATE, CATENTRY.ENDDATE,
    
             TI_CATGPENREL.SEQUENCE,
             TI_ENTGRPPATH.ENTGRPPATH,
             TI_SEOURL.SEO_TOKEN,
    
             LEFT OUTER JOIN TI_CATGPENREL_indexScope TI_CATGPENREL ON (CATENTRY.CATENTRY_ID=TI_CATGPENREL.CATENTRY_ID)
             LEFT OUTER JOIN TI_ENTGRPPATH_indexScope TI_ENTGRPPATH ON (CATENTRY.CATENTRY_ID=TI_ENTGRPPATH.CATENTRY_ID)
             LEFT OUTER JOIN TI_SEOURL_indexScope_languageId TI_SEOURL ON (CATENTRY.CATENTRY_ID=TI_SEOURL.CATENTRY_ID)
    
             <field column="sequence" splitBy=";" sourceColName="SEQUENCE"/>
             <field column="ENTGRPPATH" clob="true" />
             <field column="globalSequence" splitBy=";" sourceColName="ENTGRPPATH"/>
             <field column="productset_id" splitBy=";" sourceColName="PRODUCTSET"/>
    
           <!-- Product end -->
    
           <!-- Bundle start -->
           <entity name="Bundle"
           
             TI_CATGPENREL.SEQUENCE,
             TI_ENTGRPPATH.ENTGRPPATH,
             TI_SEOURL.SEO_TOKEN,
    
             LEFT OUTER JOIN TI_CATGPENREL_indexScope TI_CATGPENREL ON (CATENTRY.CATENTRY_ID=TI_CATGPENREL.CATENTRY_ID)
             LEFT OUTER JOIN TI_ENTGRPPATH_indexScope TI_ENTGRPPATH ON (CATENTRY.CATENTRY_ID=TI_ENTGRPPATH.CATENTRY_ID)
             LEFT OUTER JOIN TI_SEOURL_indexScope_languageId TI_SEOURL ON (CATENTRY.CATENTRY_ID=TI_SEOURL.CATENTRY_ID)
    
             deltaImportQuery="SELECT CATENTRY.CATENTRY_ID,CATENTRY.MEMBER_ID,CATENTRY.CATENTTYPE_ID,CATENTRY.PARTNUMBER,
    		CATENTRY.MFPARTNUMBER,CATENTRY.MFNAME, CATENTRY.BUYABLE, CATENTRY.STARTDATE, CATENTRY.ENDDATE,
    
             TI_CATGPENREL.SEQUENCE,
             TI_ENTGRPPATH.ENTGRPPATH,
             TI_SEOURL.SEO_TOKEN,
    
             LEFT OUTER JOIN TI_CATGPENREL_indexScope TI_CATGPENREL ON (CATENTRY.CATENTRY_ID=TI_CATGPENREL.CATENTRY_ID)
             LEFT OUTER JOIN TI_ENTGRPPATH_indexScope TI_ENTGRPPATH ON (CATENTRY.CATENTRY_ID=TI_ENTGRPPATH.CATENTRY_ID)
             LEFT OUTER JOIN TI_SEOURL_indexScope_languageId TI_SEOURL ON (CATENTRY.CATENTRY_ID=TI_SEOURL.CATENTRY_ID)
    
             <field column="sequence" splitBy=";" sourceColName="SEQUENCE"/>
             <field column="ENTGRPPATH" clob="true" />
             <field column="globalSequence" splitBy=";" sourceColName="ENTGRPPATH"/>
             <field column="productset_id" splitBy=";" sourceColName="PRODUCTSET"/>
    
           <!-- Bundle end -->
    
           <!-- Dynamic Kit start -->
           <entity name="DynamicKit"
    
             TI_CATGPENREL.SEQUENCE,
             TI_ENTGRPPATH.ENTGRPPATH,
             TI_SEOURL.SEO_TOKEN,
    
             LEFT OUTER JOIN TI_CATGPENREL_indexScope TI_CATGPENREL ON (CATENTRY.CATENTRY_ID=TI_CATGPENREL.CATENTRY_ID)
             LEFT OUTER JOIN TI_ENTGRPPATH_indexScope TI_ENTGRPPATH ON (CATENTRY.CATENTRY_ID=TI_ENTGRPPATH.CATENTRY_ID)
             LEFT OUTER JOIN TI_SEOURL_indexScope_languageId TI_SEOURL ON (CATENTRY.CATENTRY_ID=TI_SEOURL.CATENTRY_ID)
    
             deltaImportQuery="SELECT CATENTRY.CATENTRY_ID,CATENTRY.MEMBER_ID,CATENTRY.CATENTTYPE_ID,CATENTRY.PARTNUMBER,
    		CATENTRY.MFPARTNUMBER,CATENTRY.MFNAME, CATENTRY.BUYABLE, CATENTRY.STARTDATE, CATENTRY.ENDDATE,
    
             TI_CATGPENREL.SEQUENCE,
             TI_ENTGRPPATH.ENTGRPPATH,
             TI_SEOURL.SEO_TOKEN,
    
             LEFT OUTER JOIN TI_CATGPENREL_indexScope TI_CATGPENREL ON (CATENTRY.CATENTRY_ID=TI_CATGPENREL.CATENTRY_ID)
             LEFT OUTER JOIN TI_ENTGRPPATH_indexScope TI_ENTGRPPATH ON (CATENTRY.CATENTRY_ID=TI_ENTGRPPATH.CATENTRY_ID)
             LEFT OUTER JOIN TI_SEOURL_indexScope_languageId TI_SEOURL ON (CATENTRY.CATENTRY_ID=TI_SEOURL.CATENTRY_ID)
    
             <field column="sequence" splitBy=";" sourceColName="SEQUENCE"/>
             <field column="ENTGRPPATH" clob="true" />
             <field column="globalSequence" splitBy=";" sourceColName="ENTGRPPATH"/>
             <field column="productset_id" splitBy=";" sourceColName="PRODUCTSET"/>
    
           <!-- Dynamic Kit end -->
    
  17. Perform a full search reindex and restart your WebSphere Commerce server.

Optional: Apply interim fix JR50873

With this interim fix, when the crawlurl and indexurl are the same, the URL is still crawled. To use this implementation, you must complete the following procedure:

Procedure

  1. Go to the following directory: WCDE_installdir\temp\directory
  2. Rename the Solr directory to a different name.

Optional: Apply interim fix JR48101

You can now hide attribute values with zero count upon filtering and you can hide the facet if all facet counts are zero upon filtering.

To enable this behavior, complete the following procedure.

Procedure

  1. Open the SearchBasedNavigationDisplay.js file.
  2. Uncomment line 48:
    //SearchBasedNavigationDisplayJS.removeZeroFacetValues();
  3. If you want to test the new behavior, refresh the store page.

Optional: Apply interim fix JR49630

If you use the inventory index with the non-ATP inventory model and you need support for shared inventories for the Extended Sites business model, complete the following procedure.

Procedure

  1. Open your custom wc-component.xml file under the com.ibm.commerce.catalog-ext directory.
  2. Add the IsStoreInventorySharingConfigured configuration flag into the file.
    For example:
    <_config:property name="IsStoreInventorySharingConfigured" value="true" /> 
    For more information about how to configure the wc-component.xml file, see Changing properties in the component configuration file.

Optional: Apply interim fix JR46224

To reduce the amount of GetInventoryAvailability calls when the available INVAVL inventory quantity is below the threshold, complete the following procedure:

Procedure

For runtime environments, some files are updated automatically. However, you still need to complete some manual steps as in the WebSphere Enterprise Service Bus mediation module.
  1. In the WebSphere Integration Developer environment, open the WIDInstallationDirectory\{ModuleWorkspace}\xslt\custom\MultiApiOutputToShowInventoryAvailability.xsl file.
  2. Find the occurrence of "<_inv:InventoryStatus>Unavailable</_inv:InventoryStatus>". This snippet is for the online store.
  3. Add the following code snippet after "<_inv:InventoryStatus>Unavailable</_inv:InventoryStatus>":
    <_inv:AvailableQuantity><xsl:attribute name="uom">C62</xsl:attribute>0</_inv:AvailableQuantity>

    Back to Additional steps

Optional: Apply interim fix JR49610

If you want to use the Firing Phase capabilities that are in Sterling Selling and Fulfillment Suite v9.2.1 or later, complete the following procedure.

Procedure

  1. Copy the WC_installdir/components/foundation/samples/integration/SterlingConfigurator/visualModeler/commerceBlankWhite.jsp file.
  2. Deploy the file to VM_wardir/WEB-INF/web/en/US/visualModeler/.
  3. Restart the server for the virtual machine.

Optional: Apply interim fix JR48683

After you integrate WebSphere Commerce with Sterling Configurator, you might notice that the Test Model button in the Visual Modeler tool does not work properly. To fix this issue, complete the following procedure.

Procedure

  1. Copy VM_wardir/WEB-INF/web.xml to a temporary location, then update the copied file.
    1. Add the following code to the end of filter definitions:
      <filter> 
      	<filter-name>WCContextCookieFilter</filter-name> 
      	<filter-class>com.ibm.commerce.filters.WCContextCookieFilter</filter-class> 
      	<init-param> 
      		<param-name>Parameters</param-name> 
      		<param-value>WC_USERACTIVITY,storeId,contractId,currency,identityId,identitySignature</param-value> 
      	</init-param> 
      </filter>
    2. Add the following code in filter mappings towards the end of DispatchServlet filter mappings after CookieCredentialFilter:
      <filter-mapping> 
      	<filter-name>WCContextCookieFilter</filter-name> 
      	<servlet-name>DispatchServlet</servlet-name> 
      </filter-mapping>
    3. Add the following code in filter mappings towards the end of NoCacheDispatchServlet filter mappings after CookieCredentialFilter:
      <filter-mapping> 
      	<filter-name>WCContextCookieFilter</filter-name> 
      	<servlet-name>NoCacheDispatchServlet</servlet-name> 
      </filter-mapping> 
  2. Copy VM_wardir/WEB-INF/properties/init.xml to a temporary location, then update the copied file.
    1. Add the following code towards the end of the file just before the ending element tag </initializationManager>:
      <module name="WebSphereCommerce"> 
      	<config name="MessageType"> WEB-INF/properties/WebSphereCommerceMessageTypes.xml </config> 
      </module>
  3. Copy VM_wardir/WEB-INF/properties/ObjectMap.xml to a temporary location, then update the copied file.
    1. Add the following lines towards the end of the file:
      <Object ID="com.comergent.api.msgService.MsgContext"> 
      	<ClassName>com.ibm.commerce.msgService.WCMsgContext</ClassName> 
      </Object>
  4. Get the WC_installdir/components/foundation/samples/integration/SterlingConfigurator/visualModeler/WebSphereCommerceMessageTypes.xml file from the WebSphere Commerce server.
  5. Deploy the file to VM_wardir/WEB-INF/properties/.
  6. Get the WC_installdir/components/foundation/samples/integration/SterlingConfigurator/visualModeler/commerceBlankWhite.jsp from the WebSphere Commerce server.
  7. Deploy the file to VM_wardir/WEB-INF/web/en/US/visualModeler/.
  8. Get the following JAR files from the WebSphere Commerce server:
    • WC_installdir/components/foundation/samples/integration/SterlingConfigurator/SterlingCommerceVisualModeler.jar
    • WC_eardir/Foundation-Core.jar
  9. Deploy the files to VM_wardir/WEB-INF/lib.
  10. Deploy the three changed files that you updated in steps 1 - 3 to the application by using a partial application update. For more information, see Ways to update enterprise application files.
  11. Restart server for the virtual machine.

Optional: Apply interim fix JR49090

With this interim fix, you can set the Visual Modeler skin in the WebSphere Commerce transport setting.

The Sterling Configurator Visual Modeler URL configured in transports should be modified to be http://vm_hostname:VM_port/context_root/en/US/enterpriseMgr/skin

Back to Additional steps

Optional: Apply interim fix JR50383

You might notice that in Management Center, if you attempt to add an activity to a campaign, the 'Find and Add' button is grayed out or disabled. To enable the ability to add an activity to a campaign, complete the following procedure.
Note: To apply this fix, you must implement and deploy changes to LOBTools code that is reserved for client customization.

Procedure

  1. Start WebSphere Commerce Developer.
  2. Open the J2EE perspective and select the Enterprise Explorer view.
  3. Go to Dynamic Web Project > LOBTools > WebContent > config > commerce > marketing > objectDefinitions folder.
  4. Open the MarketingTopObjectDefinition.def file.
  5. Search for the following line:
    <OpenCoremetricsReportClientAction 
    	displayName="${mktMarketingResources.viewActivitiesReport}" reportUri="report:/websphere/campaign_fulllist.ftl"/>
  6. Append the following code:
    <UnassignedActivityFolderFilter package="mkt"/> 
  7. Save the file.
    Note: To test the fix, open a new browser window, clear the browser cache, and open Management Center.
  8. Deploy the changes to your WebSphere Commerce Server.
    1. Export the LOBTools project:
      1. In the Enterprise Explorer view, expand Dynamic Web Project.
      2. Right-click LOBTools and select Export > WAR file.
      3. Click Browse to select a destination.
      4. Click Finish.
    2. Deploy the new LOBTools.war on the target WebSphere Commerce Server

Optional: Apply interim fix JR47728

This interim fix improves the performance of Promotion Code Generation by using the Oracle DML Error Log feature that is found in Oracle 10.2 or higher. This interim fix requires the creation of a new table on Oracle. Without this table, WebSphere Commerce does not use the Oracle DML Error Log and it uses the generic method for generating promotion codes. You need to apply the fix to the staging environment only, since that is where promotion codes are generated.
The database table creation text is available in the file:
WC_installdir/schema/database/apar/wcs.schema.px_cdpool_error.sql
Invoke the following command to run the sql file:
sqlplus -S [username]/[password]@[connection-spec]@[wc-install-dir]/schema/oracle/apar/wcs.schema.px_cdpool_error.sql;
quit;
  • [username] refers to the username authorized to create objects on the appropriate schema
  • [password] refers to the password for [username] required to connect
  • [connection-spec] refers to the SID or TNS service-name or expanded service-name of the WebSphere Commerce Oracle instance
  • If the schema associated with tables in the database is not the default ([username]) in most cases, you might need to invoke a schema change. For example, to change the schema name:
    • If database back end is Oracle, issue this statement before line 2:
      alter session set current_schema=[schemname]
    • Here, [schemaname] refers to the schema associated with tables in the WebSphere Commerce database

Back to Additional steps

Optional: Apply interim fix JR49477 and JR49896

The interim fix changes the way the Order ID and Promotion Code status is stored in PX_CDUSAGE so that a code cannot be changed out of the redeemed status. A new task command is added to validate that the Unique Promotion Codes applied to an order are unused at the time that the order is submitted.

To use the new Unique Promotion Code validation task command, complete the following procedure:

Procedure

  1. Open a connection to your database.
  2. Run the following SQL insert statement:
    Insert into CMDREG (STOREENT_ID,INTERFACENAME,CLASSNAME,TARGET)  VALUES
    (0,'com.ibm.commerce.promotion.facade.server.commands.ValidateUniquePromotionCodesTaskCmd',
    'com.ibm.commerce.promotion.facade.server.commands.ValidateUniquePromotionCodesTaskCmdImpl','Local');
            

    Back to Additional steps

Optional: Apply interim fix JR47546

This interim fix provides a WebSphere Application Server distributed cache to cache the inventory configuration data, which can help improve DOM inventory performance. To leverage the new improvements, complete the following procedure:

Procedure

  1. Open the wc-server.xml configuration file.
  2. Add a registry node:
    <registry name="InventoryConfigurationRegistry" regClassName="com.ibm.commerce.registry.InventoryConfigurationRegistry"/> 
    When you update the INVCNF table, you can go to the Administration Console to update the registry. The new data is automatically loaded.
  3. Add the cache to the WebSphere Application Server:
    1. Launch the WebSphere Application Server Administration Console.
    2. Click Resources.
    3. Click Cache instances.
    4. Click Object cache instances.
    5. Create a cache:
      • In the name field, input InventoryConfigurationCache
      • In the JNDI name field, input dmap/IC_Cache
    6. Save the cache.

Optional: Apply interim fix JR48801

If you need to export existing promotions from one machine and import the promotions to a different machine, complete the following procedure.

Procedure

The following promotion data extraction sample configuration files are included with this interim fix in the WC_installdir/components/foundation/samples/DataExtract/promotion directory:
  • wc-dataextract.xml
  • wc-dataextract-env.xml
  • wc-extract-xml-promotion.xml
  1. Modify the wc-dataextract-env.xml file to point to your database and to your store.
  2. Change to the WC_installdir/bin and run the promotion data extract utility.
    For example:
    ./dataextract.sh WC_installdir/components/foundation/samples/DataExtract/promotion/wc-dataextract.xml
    Note: After the data extract finishes, all promotions in the database for the store are saved in the promotion.xml file that is in the same sample configuration directory.
The following promotion Data Load sample configuration files are included with this interim fix in the WC_installdir/components/foundation/samples/DataLoad/promotion directory:
  • wc-dataload.xml
  • wc-dataload-env.xml
  • wc-loader-xml-promotion.xml
  • promotion.xml
  1. Modify the wc-dataload-env.xml file to point to your database and to your store.

    The sample input file is promotion.xml. You can either modify this file or overwrite this file with the file you previously extracted.

  2. Change to the WC_installdir/bin and run the data load utility.
    For example:
    ./dataload.sh WC_installdir/components/foundation/samples/DataLoad/promotion/wc-dataload.xml 

    The promotion Data Load always creates new promotions. If promotions exist in the database, new promotions are created with the same names. Therefore, before you load the promotions, you can either delete all existing promotions, or load these promotions to a new store or another machine. All promotions are loaded with an inactive status. After the promotions are loaded, you need to log on to Management Center to activate these new promotions.

Optional: Apply interim fix JR50311

This interim fix enhances the Data Load utility to allow special characters in the organization name. This is accomplished by turning off validation checks for organization names. To enable this enhancement, complete the following procedure.

Procedure

Turn off the validation checking of the organization name:
  1. Open the wc-loader-organization.xml configuration file.
  2. Add the following property to the mediator section.
    <_config:property name="validateOrgName" value="false" /> 

    If this property is not specified, the default value is true. That is, Data Load utility validates the organization name.

Optional: Apply interim fix JR48359

With this interim fix, you can modify the preprocess SQL statements that are used in the CatalogHierarachyPreProcessor to populate the TI_APGROUP table.
Restriction: Custom SQL statements can include static parameters only (as well as returning the same number of fields in the same order in the result set) in order to avoid breaking the default preprocessor.
If you need to modify preprocessor SQL statements, then complete the following procedure.

Procedure

  1. Go to the following directory: Search_home/pre-processConfig
    Note: If the directory does not exist, or if no subdirectories exist starting with MC_masterCatalogId, then you can skip this procedure.
  2. Perform the following steps for each of the MC_masterCatalogId directories:
    1. Go to the Search_home/pre-processConfig/MC_masterCatalogId/db_type directory.
    2. Rename the wc-dataimport-preprocess-parent-catgroup.xml file to wc-dataimport-preprocess-parent-catgroup.xml.orig
    3. Go to the WC_installdir/components/foundation/samples/dataimport/catalog/db_type directory.
    4. Copy the wc-dataimport-preprocess-parent-catgroup.xml file to Search_home/pre-processConfig/MC_masterCatalogId/db_type
    5. Find the index scope tag by running the following SQL statement.
      select indexscope, indextype, config from srchconf where indexscope='masterCatalogId' and indextype='CatalogEntry'
      For example, if IndexScopeTag=0, then the tag is 0.
    6. Open the wc-dataimport-preprocess-parent-catgroup.xml file under Search_home/pre-processConfig/MC_masterCatalogId/db_type in a text editor.
    7. Replace all occurrences of #INDEX_SCOPE_TAG# with the index scope tag.
    8. Replace all occurrences of #MASTER_CATALOG_ID# with the master catalog ID.
    9. Check the table names in the file.
      For example, TI_CATENTREL_0 if the index scope tag is 0.

Optional: Apply interim fix JR46213

This interim fix allows more than one contract to be passed in and evaluated in the GetCatalogNavigationView service call. Also, functionality is added to allow changing the default OR evaluation of contract product-set exclusion to AND the product sets together. To use this new functionality, complete the following procedure:

Procedure

  1. Open a connection to your database.
  2. Run the following SQL statement on the database client:
    1. delete from cmdreg where interfacename = 'com.ibm.commerce.contract.catalogfilter.command.ResolveProductSetSearchExpressionCmd';
    2. insert into cmdreg (storeent_id,interfacename,classname,target) values 
      (0,'com.ibm.commerce.contract.catalogfilter.command.ResolveProductSetSearchExpressionCmd',
      'com.ibm.commerce.contract.catalogfilter.command.ResolveProductSetSolrExpressionWithAndOpertionCmdImpl','LOCAL');
    3. delete from cmdreg where interfacename = 'com.ibm.commerce.contract.commands.CalculateProductSetEntitlementCmd';
    4. insert into cmdreg (storeent_id,interfacename,classname,target) values
      (0,'com.ibm.commerce.contract.commands.CalculateProductSetEntitlementCmd',
      'com.ibm.commerce.contract.commands.CalculateProductSetEntitlementWithAndOpertationCmdImpl', 'LOCAL');
  3. The default value is "OR" for the operation between multiple buyer contracts. To configure the operation between multiple buyer contracts with 'AND', complete the following steps:
    1. Open the WC_eardir/xml/config/com.ibm.commerce.contract-fep/wc-component.xml
    2. Add the following code snippet:
      <_config:extendedconfiguration>
      
          <_config:configgrouping name="MultipleContracts">
              <_config:property name="operation" value="AND"/> 
          </_config:configgrouping> 
      
      </_config:extendedconfiguration> 
    3. Deploy your changes.

Optional: Apply interim fix JR47308

The way the ProductViewHandler returns URLs was modified in the Madisons starter store.
This interim fix changes 10 JSP files:
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/ShoppingArea/CheckoutSection/MultipleShipment/MSOrderItemDetailSummary.jsp
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/ShoppingArea/CheckoutSection/MultipleShipment/MSOrderItemDetails.jsp
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/ShoppingArea/CheckoutSection/SingleShipment/OrderItemDetailSummary.jsp
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/ShoppingArea/CheckoutSection/SingleShipment/OrderItemDetails.jsp
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/ShoppingArea/DiscountSection/DiscountDetailsDisplay.jsp
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/Snippets/Order/Cart/OrderItemDetail.jsp
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/Widgets/CatalogEntry/CatalogEntryDisplay_Data.jspf
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/Widgets/ProductDescription/ProductDescription_Data.jspf
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/Widgets/ProductFullImage/ProductFullImage_Data.jspf
  • src/businessModels/internal/sar/MadisonsV2/StoreAssetsDir/Widgets/Shared/GetCatalogEntryDetailsByID.jsp
If you customized any of these files, reapply the customizations.

Back to Additional steps

Optional: Apply interim fix JR50830

With this interim fix, you can save catalog entry descriptive attribute values for multiple languages.
Note: To apply this fix, you must implement and deploy changes to LOBTools code that is reserved for client customization.

Procedure

  1. Start WebSphere Commerce Developer.
  2. Open the J2EE perspective and select the Enterprise Explorer view.
  3. Go to Dynamic Web Project > LOBTools > WebContent > config > commerce > catalog > objectDefinitions.
  4. Open the AttributeDictionaryAttributePrimaryObjectDefinition.def file.
  5. Search for the following code in the file:
    <ChildObjectDefinition
    definitionName="catAttributeDictionaryAttributeAssignedValueDescription"
    idProperty="languageId"
    objectType="AttributeDictionaryAttributeAssignedValueDescription"
    languageSensitive="true"
    releaseWhenClosed="false">
    
    <!--- Create service. -->
    <CreateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="catalogEntryAttributesLanguageId" propertyName="languageId"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" parentProperty="true" resolvePrimaryParent="false" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrValId"/>
    <ServiceParam name="attrDictAttrValue" parameterName="attrDictAttrValue" propertyName="value" optional="false" sendEmpty="false"/>
    </CreateService>
    
    <!--- Update service. -->
    <UpdateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="catalogEntryAttributesLanguageId" propertyName="languageId"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" parentProperty="true" resolvePrimaryParent="false" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrValId"/>
    <ServiceParam name="attrDictAttrValue" parameterName="attrDictAttrValue" propertyName="value" optional="false" sendEmpty="false"/>
    </UpdateService>
  6. Replace it with the following code:
    <ChildObjectDefinition
    definitionName="catAttributeDictionaryAttributeAssignedValueDescription"
    idProperty="languageId"
    objectType="AttributeDictionaryAttributeAssignedValueDescription"
    languageSensitive="true"
    releaseWhenClosed="false">
    
    <!--- Create service. -->
    <CreateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="catalogEntryAttributesLanguageId" propertyName="languageId"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" parentProperty="true" resolvePrimaryParent="false" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrValId"/>
    </CreateService>
    
    <!--- Update service. -->
    <UpdateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="catalogEntryAttributesLanguageId" propertyName="languageId"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" parentProperty="true" resolvePrimaryParent="false" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValId" parentProperty="true" resolvePrimaryParent="false" propertyName="attrValId"/>
    </UpdateService>
  7. Save the file.
  8. Open the AttributeDictionaryCommonObjectDefinition.def file.
  9. Search for the following code:
    <ChildObjectDefinition baseDefinitionName="catAttributeDictionaryAttributeAssignedValueDescription"/>
    
    <!--- Create service. -->
    <CreateService url="/cmc/CreateCatalogEntryAttributeDictionaryAttribute">
    <ServiceParam name="storeId"/>
    <ServiceParam name="languageId" objectPath="AttributeDictionaryAttributeAssignedValueDescription" propertyName="languageId"/>
    <ServiceParam name="attrDisplaySequence" propertyName="attrDisplaySequence"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" objectPath="AttributeDictionaryAttributes" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" objectPath="AttributeDictionaryAttributes" propertyName="attrDataType"/>
    <ServiceParam name="attrDictAttrValue" objectPath="AttributeDictionaryAttributeAssignedValueDescription" propertyName="value" optional="false" sendEmpty="false"/>
    <ServiceParam name="type" value="assigned"/>
    </CreateService>
    
    <!--- Update service. -->
    <UpdateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue">
    <ServiceParam name="storeId"/>
    <ServiceParam name="attrDisplaySequence" propertyName="attrDisplaySequence"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" objectPath="AttributeDictionaryAttributes" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDictAttrValId" propertyName="attrValId"/>
    <ServiceParam name="attrDictAttrValue" objectPath="AttributeDictionaryAttributeAssignedValueDescription" propertyName="value" optional="false" sendEmpty="false"/>
    <ServiceParam name="type" value="assigned"/>
    <ServiceParam name="attrDataType" objectPath="AttributeDictionaryAttributes" propertyName="attrDataType"/>
    </UpdateService>
  10. Replace it with the following code:
    <ChildObjectDefinition baseDefinitionName="catAttributeDictionaryAttributeAssignedValueDescription"/>
    
    <!--- Create service. -->
    <CreateService url="/cmc/CreateCatalogEntryAttributeDictionaryAttribute" sendDefaultLanguageProperties="true">
    <ServiceParam name="storeId"/>
    <ServiceParam name="languageId" objectPath="AttributeDictionaryAttributeAssignedValueDescription" propertyName="languageId"/>
    <ServiceParam name="attrDisplaySequence" propertyName="attrDisplaySequence"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" objectPath="AttributeDictionaryAttributes" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDataType" objectPath="AttributeDictionaryAttributes" propertyName="attrDataType"/>
    <ServiceParam name="type" value="assigned"/>
    </CreateService>
    
    <!--- Update service. -->
    <UpdateService url="/cmc/UpdateCatalogEntryAttributeDictionaryAttributeValue" sendDefaultLanguageProperties="true">
    <ServiceParam name="storeId"/>
    <ServiceParam name="attrDisplaySequence" propertyName="attrDisplaySequence"/>
    <ServiceParam name="catentryId" parentProperty="true"/>
    <ServiceParam name="attrDictAttrId" objectPath="AttributeDictionaryAttributes" propertyName="attrId"/>
    <ServiceParam name="attrUsage" value="Descriptive"/>
    <ServiceParam name="attrDictAttrValId" propertyName="attrValId"/>
    <ServiceParam name="type" value="assigned"/>
    <ServiceParam name="attrDataType" objectPath="AttributeDictionaryAttributes" propertyName="attrDataType"/>
    </UpdateService>
  11. Save the file.
  12. Go to Dynamic Web Project > LOBTools > WebContent > WEB-INF > config > com.ibm.commerce.catalog.
  13. Open the wc-catalog-clientobjects.xml file.
  14. Search for the following code:
    <_config:URLParameter name="attrDictAttrValId"
    	nounElement="/CatalogEntryAttributes/Attributes/Value/@identifier"
    	key="false" return="true" allowEmpty="false"/>
    <_config:URLParameter name="attrDictAttrValue"
    	nounElement="/CatalogEntryAttributes/Attributes/Value/@value"
    	key="false" return="false" allowEmpty="false"/>
    
  15. Replace it with the following code:
    <_config:URLParameter name="attrDictAttrValId"
        nounElement="/CatalogEntryAttributes/Attributes/Value/@identifier" key="false"
        return="true" allowEmpty="false"/>   
    <_config:URLParameter name="value"
        nounElement="/CatalogEntryAttributes/Attributes/Value/@value" key="false"
        return="false" allowEmpty="false"/>
  16. Save the file.
    Note: To test the fix, open a new browser window, clear the browser cache, and open the Management Center.
  17. Deploy the changes to your WebSphere Commerce Server.
    1. Export the LOBTools project:
      1. In the Enterprise Explorer view, expand Dynamic Web Project.
      2. Right-click LOBTools and select Export > WAR file.
      3. Click Browse to select a destination.
      4. Click Finish.
    2. Deploy the new LOBTools.war on the target WebSphere Commerce Server

3. Completing optional steps after you install cumulative interim fix JR53048.fp

Some fixes and enhancements that are included in this package are not automatically enabled because you might not need them on your environment. The following list describes optional fixes and enhancements that you can manually enable. Review the following section to see if you want to enable any new features or apply any particular fixes.

Procedure

  1. Fixes and enhancements related to Catalog, Assets, Contracts, and Pricing:
    1. Optional: Enabling interim fix JR48723 - Enable this fix if workspaces is enabled in your development environment (WebSphere Commerce Developer).
  2. Fixes and enhancements related to Orders, Payments, and Inventory:
    1. Optional: Enabling interim fix JR47545 - Enable this fix if you want to enhance DOM inventory performance.
  3. Fixes and enhancements related to Member and Session Management:
    1. Optional: Enabling interim fix JR45670 - Enable this fix if you want to allow simultaneous logon across multiple channels and browsers.
  4. Fixes and enhancements related to Marketing and Promotions:
    1. Optional: Enabling interim fixes JR41022 and JR46449 - Enable this fix if you want to allow dialog activities to be able to send emails that contain order details of a previous order.
    2. Optional: Enabling interim fix JR50747 - Enable this fix to add support for invalidation policies in the cachespec.xml file to invalidate base cache JSP pages when a new e-Marketing Spot is created.
    3. Optional: Enabling interim fix JR48904 - Enable this fix if you want to improve the performance of catalog entry entitlement checks during e-Marketing Spot recommendations.
  5. Fixes and enhancements related to Authoring and Staging:
    1. Optional: Enabling interim fix JR47235 - Enable this fix to avoid database connection timeouts when the stagingprop utility is run.
    2. Optional: Enabling interim fix JR49401 - Enable this fix to rectify an issue where records in the CATGRPTPC table cannot be updated by using the stagingprop utility.

65. List of fixes

JR53048.fp provides a set of interim fixes for WebSphere Commerce V7 Fix Pack 7. All interim fixes for Fix Pack 7 that are created after the release of JR53048.fp require JR53048.fp as a prerequisite.JR53048.fep provides a set of interim fixes for WebSphere Commerce V7 Feature Pack 6. All interim fixes for Feature Pack 6 that are created after the release of JR53048.fep require JR53048.fep as a prerequisite. The following fixes are included in this cumulative interim fix JR53048.fepJR53048.fp:

JR53048.fp provides a set of interim fixes for WebSphere Commerce V7 Fix Pack 7. All interim fixes for Fix Pack 7 that are created after the release of JR53048.fp require JR53048.fp as a prerequisite.JR53048.fep provides a set of interim fixes for WebSphere Commerce V7 Feature Pack 6. All interim fixes for Feature Pack 6 that are created after the release of JR53048.fep require JR53048.fep as a prerequisite.

For a complete list of fixes that are included in this package, see Cumulative interim fixes for Fix Pack 7Cumulative interim fixes for Feature Pack 6.