Updating to a newer version of Commerce Composer widgets
As new WebSphere Commerce versions release, significant updates might be made to the Commerce Composer widgets, or new widgets released. For updates or new widgets, WebSphere Commerce releases a new version of the widgets instead of applying the changes automatically to existing widgets.
Before you begin
Fixes and changes are applied automatically to existing widgets during fix pack or feature pack installations. In WebSphere Commerce Version 8, the Commerce Composer widgets were rewritten to use REST services rather than data beans and web services. Therefore, the transition of the programming model can cause breakages to existing pages that use the widgets, so a new version of Commerce Composer widgets was released, for example Widgets_701.
This task explains the high-level approach for an existing store that is already using Commerce Composer. The store must be moved to use the most recent set of Commerce Composer widgets that are supplied with the latest installed WebSphere Commerce release.
About this task
- Your store must be working well with Commerce Composer. If your store is not using Commerce Composer, you must enable it. For more information about enabling Commerce Composer with your store, see Task flow: Enabling Commerce Composer support for a starter store.
- WebSphere Commerce is already installed and is at the most current level.
- A new version of Commerce Composer widgets that you are not currently using, and would like to use.
Procedure
-
Move all of the customization from your existing widgets into the Composer widgets from
WebSphere Commerce Version 7 Feature Pack 8.
The Widgets_701 folder holds all of the widgets from WebSphere Commerce Version 7 Feature Pack 8.
-
Set the WebSphere CommerceVersion 8 default page
layouts, for your custom Feature Pack 8 default page layouts you want to upgrade.
update pagelayout set isdefault = 0 where isdefault = 1 AND storeent_id = (SELECT storeent_id FROM storeent WHERE identifier = 'V8AuroraSAS') AND pagelayouttype_id IN ('Search', 'Content', 'Category', 'Bundle','Product');
Note: WebSphere Commerce Version 8 has an extra item page layout that does not exist in Feature Pack 8. The supplied Version 8 default layout for that type is used unless a custom one is created. -
Set all Feature Pack 8 custom default page layouts to a new WebSphere Commerce Version 8 Asset store.
UPDATE pagelayout SET storeent_id = (SELECT storeent_id FROM storeent WHERE identifier ='V8AuroraSAS') WHERE storeent_id = (SELECT storeent_id FROM storeent WHERE storeent.identifier = 'FEP8AuroraSAS') AND isdefault = 1 AND name LIKE '%';
Note: Repeat this step for all of your custom default page layouts. - Associate all Feature Pack 8 created layouts to use Version 8 widgets.
-
Associate all Feature Pack 8 layouts to use Version 8 asset store containers.
UPDATE plwidget SET plwidgetdef_id = (SELECT plwidgetdef_id FROM plwidgetdef WHERE identifier = 'ContentPageContainer' AND storeent_id = (SELECT storeent_id FROM storeent WHERE identifier = 'FEP8AuroraSAS')) WHERE plwidgetdef_id IN (SELECT plwidgetdef_id FROM plwidgetdef WHERE identifier = 'ContentPageContainer' AND storeent_id = (SELECT storeent_id FROM storeent WHERE identifier = 'V8AuroraSAS')) AND pagelayout_id IN (SELECT pagelayout_id FROM pagelayout WHERE istemplate = 0 AND state = 1 AND storeent_id = (SELECT storeent_id FROM storeent WHERE identifier = 'ESiteStore')); where ESiteStore is the store identifier of your customer facing store
-
Default Feature Pack 8 page layouts were moved to Version 8, the same query must be run for the
Version 8 asset store.
UPDATE plwidget SET plwidgetdef_id = (SELECT plwidgetdef_id FROM plwidgetdef WHERE identifier = 'DepartmentPageContainer' AND storeent_id = (SELECT storeent_id FROM storeent WHERE identifier = 'V8AuroraSAS')) WHERE plwidgetdef_id IN (SELECT plwidgetdef_id FROM plwidgetdef WHERE identifier = 'DepartmentPageContainer' AND storeent_id = (SELECT storeent_id FROM storeent WHERE identifier = 'FEP8AuroraSAS')) AND pagelayout_id IN (SELECT pagelayout_id FROM pagelayout WHERE istemplate = 0 AND state = 1 AND storeent_id = (SELECT storeent_id FROM storeent WHERE identifier = 'V8AuroraSAS'));
-
Delete any custom created Content Pages that use
HomePage
as a name.The use of the nameHomePage
must be defined only at the asset store level.delete from plpage where storeent_id = (SELECT storeent_id FROM storeent WHERE identifier = 'ESiteStore') AND adminname = 'HomePage'; where ESiteStore is the store identifier of your customer facing store