What can I expect while updating to CPv3.9 or beyond?
Environment:
Customer Portal (CP) Administration and framework migrations
Oracle B2C Service, All versions
Resolution:
We identified a few challenges your business may experience while updating to Customer Portal (CP) framework v3.9 or beyond. These challenges were discussed and demonstrated during a November webinar. A staff account associated with a full CP Administrator Profile is required. For additional information, refer to the 'Select Administration permissions'
Please consider watching the Update Basics and Exciting New Features webinar for general CP framework update guidance.
Challenge 1:
Custom widget errors are reported in the Development Sandbox after updating to CP framework v3.9 or beyond.
Solution:
A site admin needs to edit custom widget's info.yml file in order to add the new CP framework version. Every custom widget will require this info.yml file update. Please see an example info.yml file edit below where the text highlighted in red illustrates the required change.
version: "1.0"
requires:
framework: ["3.4", "3.5", "3.6", "3.7", "3.8", "3.9"]
jsModule: [standard, mobile]
yui: [anim]
Challenge 2:
Customer Portal warns “The form submission token either did not match or has expired. You will need to refresh this page, possibly log back in, and fill out the form again to successfully submit.” or “There was a problem with the request and the action could not be completed.”.
Solution:
The form token (f_tok) parameter cannot be reused due to improved security. Your custom models/custom controllers need to be updated to return a new response token in subsequent request. This edit is required on the CP page where multiple form submits are implemented without reloading the page.
$return['newFormToken'] = Framework::createTokenWithExpiration(0);
Add the following snippet in your widget logic.js so that new token is updated in form object for next request:
if (responseObject.result != null && responseObject.result.newFormToken) {
RightNow.Event.fire("evt_formTokenUpdate", new RightNow.Event.EventObject(this, {data: {newToken: responseObject.result.newFormToken}}));
Additional information available through Form token is stripped from widget AJAX calls
Challenge 3:
File upload “allowed file types” configuration changed.
Solution:
The list of allowed file types must be configured in config/siteConfig.json under the key CP.ValidFileExtensions
For example:
“CP.ValidFileExtensions” : “png,jpg,txt,gif,pdf”