If you have a comment on this topic, contact Aptify Documentation. If you want to return to the Aptify Community Site, please click here.

Aptify e-Business 5.5.2 Release Notes

This topic contains the release notes for Aptify e-Business version 5.5.2. The new features, resolved issues, and notes in Aptify e-Business version 5.5.2 are found in the following sections:

Important Notes

One-Way Cryptographic Hash Security Enhancement

Aptify e-Business 5.5.2 introduces a one-way cryptographic hash function to improve the security of password changes for the application. The one-way cryptographic hash function turns the password into a fixed string of digits, which makes it nearly impossible to derive the original password text from the string. The AptifySecurityKey object was updated to support the one-way cryptographic hash function, while maintaining support for the existing two-way cryptographic encryption methodology. There were also changes made to the EbusinessLogin object and the code behind for the user controls related to the login process.

The Aptify one-way cryptographic hash function uses the SHA 512 Secure Hash Standard. For more information on the SHA 512 Secure Hash Standard, see FIPS PUB 180-4:

http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf

 

When a Web User enters his/her password in the e-Business login control, the system encrypts that password using the same encryption approach and then the hashed value is compared with the value stored in the database. If they are the same, the login is successful.

Note that while you can continue to set and overwrite passwords, one-way hash encrypted Web User passwords cannot be decrypted once set. This means that neither staff nor members will be able to retrieve an existing password. To set a password that a user has forgotten, use the new password reset feature (which generates a 24-hour temporary password).

The one-way cryptographic hash function is the default security methodology for full installations of e-Business 5.5.2. This includes database updates to include a TemporaryPWD field, add a new Security Key, and an update to the security key in the Webuser entity fields.

Users that upgrade to e-Business 5.5.2 maintain their existing two-way cryptographic encryption, but have the option to change to the one-way cryptographic encryption after the upgrade is complete. See Configuring One-Way Cryptographic Hash for instructions.

Aptify e-Business 5.5.2 updates the LoginSF4.ascx.vb ,Login.ascx.vb, and profile.ascx.vb files to ensure that existing users are able to log on as expected after the security methodology is changed from two-way to one-way encryption.

 

Important Notes

  • To support single sign on with Sitefinity while using a one way hash encrypted password, you must set the Sitefinity site's to use Forms Authentication.
  • In an upgraded environment, once you have converted Web User passwords to a one way hash, you will not be able to retrieve them.
  • Do not rotate your one way hash key – changing the key will prevent users from logging into the system since the hash of the passwords they enter will not match the hash stored in the database.

(Issue 17790)

Forgot Password Retrieve with 24-Hour Temporary Password Sent via Email

In addition to the introduction of the one way hash implementation in Aptify e-Business 5.5.2, this release also includes a new password reset functionality to provide customers with the ability to randomly generate a temporary password and automatically email the temporary password to a user's registered email address. This allows for secondary validation of the web user identity by forcing the password reset through the registered email address in the Web Users record.

When the new ForgotUID control is included on an e-Business site, a user who forgets his or her password is prompted to enter the User Name. Then, the system sends the generated temporary password to the email address associated with that user name. You can also optionally require the user to enter the password hint answer before sending the temporary password. The temporary password is valid for 24 hours from the time it was generated. After logging in to e-Business with the temporary password (within the 24 hour window), the user is prompted to reset his/her password.

The ForgotUI control includes three new properties to control this feature:

  • AutomaticPasswordResets: Set this property to True to enable the automated password reset functionality. Aptify strongly recommends that you set this to True in conjunction with deploying e-Business 5.5.2 and the updated ForgotUID control. Note that you do can adopt this feature at any time, even if you are not yet ready to convert to one way hash encrypted passwords.
  • PasswordQuestionsEnabled: Set this property to True to require a user to enter his/her password hint answer before sending the temporary password to the email address associated with the user account specified. If you do not want to require the user to enter the hint answer, set this property to False. When set to False, the system will send the generated temporary password to the email address associated with the user account specified without requiring additional verification.
  • passwordResetEmailProcessFlowName: This property identifies the process flow responsible for sending the generated temporary password to the email address associated with the provided user account. By default, it is set to Send eBusiness User Password Reset, which is the process flow Aptify provides by default with this functionality. If you want to change the process flow responsible for sending the email, specify the name of that new process flow for this property.

For more information on configuring these parameters can be found in Configuring One-Way Cryptographic Hash. Additional information on these parameters and the Aptify_UC_Navigation file can be found in the "User Control Development" section in the Working With an e-Business Site chapter of the Aptify-e-Business 5.5.2 Developers Guide.
(Issues 17790, 19941, and 20015)

Support for Responsive Design

Aptify e-Business 5.5.2 includes updated sample sites that illustrate how e-Business user controls can be used in a responsive web site whose design changes based on the browsing device or window size. This release includes an update to the front end for all user controls and new style sheets to implement the responsive design behavior.

ICE Site Based on Sitefinity 7.1

The International Coffee Executives (ICE), which is one of the sample sites included with e-Business 5.5.2, is based on Sitefinity 7.1 (Sitefinity version 7.1.5200).

Note that new versions of Sitefinity come out quarterly and sometimes more frequently than that. Aptify will support organizations who want to use a later version of Sitefinity than 7.1, however, the ICE starter site is tied to that version. Organizations that want to use the ICE starter site to begin development should start with Sitefinity 7.1 and then upgrade it to a newer version of Sitefinity by following Sitefinity's recommended upgrade path (the Sitefinity project manager includes an option that will update an older site to the current version). Below is an outline of the process to follow:

  1. Install Sitefinity 7.1.
  2. Install e-Business ICE site on Sitefinity 7.1 following the steps in the Installing the e-Business Sitefinity Sample Site.
  3. Install the newer version of Sitefinity.
  4. Follow Sitefinity's instructions to upgrade a site from 7.1 to the current version.


Clients who want to use e-Business controls but do not want to base their development on the starter site can go directly to their desired version of Sitefinity (Sitefinity 7.1 is not required in this case – you only need 7.1 if using the ICE site).

Aptify understands that clients frequently want to use a newer version of Sitefinity, so as long as an organization follows one of the upgrade paths defined above (i.e., with or without the sample site), Aptify will support the latest version of Sitefinity, even if it has not been formally tested in conjunction with an e-Business release. (Issues 19651 and 18505)

e-Business 5.5.2 Support on Aptify 5.5.1 or 5.5.2

The e-Business 5.5.2 setup programs can be run against a database running Aptify 5.5.1 or Aptify 5.5.2. The default installation path assumes that Aptify 5.5.2 or later is installed. However, the setup programs also work for Aptify 5.5.1.

However, if you install the e-Business 5.5.2 database components to Aptify 5.5.1 and you install an e Business 5.5.2 starter site, the site will fail to load due to a version mismatch for NewtonsoftJson.dll (Aptify 5.5.2 deploys an updated version of this DLL which will not exist if your database is running Aptify 5.5.1). If you encounter this error, follow these steps to resolve the issue and load the ICE site:

  1. Open the web site's web.config in a text editor.
  2. Locate the dependentAssembly element for Newtonsoft.Json, as shown below:

    <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
    </dependentAssembly>



  3. Comment out or delete this dependent assembly binding. To comment out the element, add <!- to the start of the element and -> to the end, as shown below:

    <!--<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
    </dependentAssembly>-->



  4. Save and close the web.config file.
  5. Restart IIS.

Support for Current Browsers, Including Microsoft Internet Explorer 11

Aptify e-Business 5.5.2 has been tested with all current browsers, including Google Chrome, Mozilla Firefox, Apple Safari, and Microsoft Internet Explorer 11. Note that the sample sites include a new Ebusiness.browser file (in a folder named App_Browsers) to ensure that the sample sites behave as expected when working with Microsoft Internet Explorer 11. (Issue 20001)

Support for Google Maps JavaScript API version 3

Aptify e-Business 5.5.2 supports use of Google Maps JavaScript API v3. If you are upgrading from Google Maps JavaScript API v3, use the instructions on the page below to obtain an API key for Google Maps JavaScript v3, and use that key in the Aptify UC Navigation file.

https://developers.google.com/maps/documentation/javascript/v2/v2tov3

New Features

The following new features are included with Aptify e-Business 5.5.2:

Customer Service

The following new feature in Customer Service controls is included in Aptify e-Business 5.5.2.

Add Option to Show Featured Product to Web User Who Purchased Product and Then Cancelled Purchase

Aptify e-Business 5.5.2 adds an option to continue showing a featured product to a web user even when a person purchased a featured product but later cancelled that purchase (so effectively, they are back to not having purchased it). To support this functionality, Aptify e-Business 5.5.2 updates the Product Catalog user control and includes a new stored procedure to retrieve the set of feature products to display for a particular web user. By default, e-Business uses this new baseline stored procedure (called spGetFeaturedProductsWeb), but an organization can modify the feature products logic by writing its procedure. To specify this new logic, update the value of the GetFeaturedProductsStoredProcedure attribute found on the Web Shopping Cart entity with the name of the organization-specific stored procedure. (Issue 18891)

Framework

The following new Framework application features are included in Aptify e-Business 5.5.2:

Add Option to Verify Addresses with Melissa Data

Aptify e-Business 5.5.2 includes a new optional button on the Profile control to verify a provided address using Melissa Data's Web Service-based address verification system. The user experience is similar to what employees see when verifying an address in the staff interface. The Verify Address option is enabled or disabled by setting a parameter for the Profile control in the Aptify_UC_Navigation.config file. (Issue 18138)

Support RadGrid Options for Responsive Design

Aptify e-Business 5.5.2 updates the data-form.css file to be responsive to Telerik Radgrid and Radwindow behavior, so that the e-Business web site can automatically change its appearance when the available screen area decreases. (Issue 19167)

Remove Search Box and Place on Search Page

Aptify e-Business 5.5.2 updates the header of the e-Business ICE starter site by removing the Search box and replacing it with a Search button. This change was made to improve the usability of the e-Business site for smaller tablet and smartphone devices. Clicking Search redirects the user to the Search page, where a user can use the Search box to enter search criteria. This helps improve the look in the smaller tablet/phone layouts. (Issue 19315)

Update Header When ICE Site Viewed in Phone Size

Aptify e-Business 5.5.2 updates the layout.css file, data-form.css file, and sample site (ICE site) data to display a different header image for the ICE site when it is displayed on a smartphone or a reduced browser window. (Issue 19384)

Update Login Assembly so Encryption Key Is Not Hard Coded

Aptify e-Business 5.5.2 updates the EbusinessLogin object by replacing references to the hard-coded E Business Login Key with a new parameter, GetEbusinessPasswordHashKey. This change supports the one way hash implementation, and increases flexibility by enabling the use of a different security key for web user password encryption.

An administrator can specify a different key for web user encryption (either a key that uses one way hash or an existing key approach) by following these steps:

  1. Create the new security key.
  2. Specify the name of that security key in a new entity attribute for the Web Users entity, named GetEbusinessPasswordHashKey.
  3. Change the security key for the Web Users.PWD and Web Users.Temporary Password fields to match the new key.

     

Note

If you are switching from a standard key to the one way hash key, you must decrypt the password fields first and then encrypt them as follows:

  1. Turn off Field Level Encryption for the fields and save the entity.
  2. Turn on Field Level Encryption again, this time pointing to the new key.
  3. Update the GetEbusinessPasswordHashKey attribute in the Web Users entity with the appropriate key name.
  4. Save the entity.

(Issue 19249)

Update the User Control Generator to Generate DIVs Rather than Tables

Aptify e-Business 5.5.2 updates the EntityUserControlGenerator object to generate ascx front-end code to align with the design changes in e-Business user controls, such as DIVs rather than tables and no in-line styling within the control. (Issue 20109)

Update User Controls to Increase Flexibility

Aptify e-Business 5.5.2 updates the front-end ascx file for every user control included with e-Business so they are more flexible and compatible with responsive design principles. Changes include modifying every control to use HTML Div tags in place of Table tags and removing all in-line styling within the controls. Style information is now centralized in a centralized set of CSS files: data_form.css, layout.css, and UC_Profile.css (which are styles specific to the profile control).

These files are available in the ICE site's ..App_Data\Sitefinity\WebsiteTemplates\ICE\App_Themes\ICE\Global folder, the ASP.NET site's ..\App_Themes\Aptify folder and in the updater package's ..\ Web Site Updates\eBusiness\5.5.2 Responsive layout folder.
(Issues 18871, 18935, 18936, 18937, 18938, 18939, 18940, 18941, 18942, 18943, 18944, 18945, 18947, 18948, 18949, 18950, 18951, 18952, and 18953)

Website Menu Should Collapse to Three Line (Burger) Menu on a Mobile Device

Aptify e-Business 5.5.2 updates the website menu control so that when it is displayed on a mobile device, it collapses to a three line menu. These files include navbar.ascx.vb and the data-form.css files for CMS and non-CMS sites. (Issue 19327)

Setup

The following new Setup program features are included in Aptify e-Business 5.5.2:

Create and Deploy Text File to Object Repository to Indicate Software Is Installed

Aptify e-Business 5.5.2 updates the setup program by adding a text file, eBusiness552Installed.txt, that is deployed to the EWA package in the object repository during a 5.5.2 installation. The presence of this text file can be used to confirm that a user ran the setup program on the system. (Issue 19365)

Setup Program Should Not Downgrade GE Objects

Aptify e-Business 5.5.2 updates the setup program to check the version of the Generic Entity and Generic Entity Base objects. If the object versions are already 5.5.2.x or later, the full installer and updater will not overwrite the object. (Issue 20002)

Support Starter Site Name of Something Other Than Ebusiness

Aptify e-Business 5.5.2 updates the setup program to allow the user to specify a name for the e-Business ICE starter site that is something other than "Ebusiness". In previous releases, the setup program required that the starter site be named "Ebusiness". (Issue 19363)

Resolved Issues

The following issues have been resolved in Aptify e-Business 5.5.2:

 

Chapter Management

The following issue was resolved in the Chapter Management controls as part of Aptify e-Business 5.5.2.

Add ChapterAssignmentRules.dll to the e-Business Sync Repository Objects Record

In Aptify e-Business 5.5.1, the ChapterAssignmentRules.dll object is missing from the e-Business Sync Repository Objects record and not added automatically to an e-Business site's bin folder. This can generate an error on sites that automatically assign members to chapters based on a set of assignment rules. Aptify e-Business 5.5.2 updates the setup program to ensure that the object is deployed. (Issue 19419)

Framework

The following issues were resolved in the Framework application as part of Aptify e-Business 5.5.2.

Add Security Related Code to the Web Config to Secure Uploads

In the current version of Aptify e-Business, there is an issue where the files uploading by a user may not be secure. Aptify e-Business 5.5.2 updates the web.config file to ensure that the permissions for the user uploads folder in the CMS and non-CMS site is set to read only and prevent the execution of malicious code. (Issue 19452)

Component Upgrade Issue with spGetItemRatingByTypeAndItem Database Object

Aptify e-Business 5.5.1 has an issue in the component upgrade setup program, where the setup may try to create the spGetItemRatingByTypeAndItem database object twice. Aptify e-Business 5.5.2 updates the component upgrade setup program to check whether the database object is already present before unpacking the object a second time. (Issue 18578)

Object Sync Repository Does Not Update ShoppingCart dll When Updating to Current Release

In Aptify e-Business 5.5 and 5.5.1, there is an issue where after running the synchronization tool, the ShoppingCart.dll was not updated to the latest version in the e-Business bin folder. Aptify e-Business 5.5.2 updates the installer tool to ensure that the latest DLLs are installed as expected. (Issue 18501)

Improve UserCredentials Object Creation in GetLoginCredentials

The GetLoginCredentials method in AptifyWebGlobal is used in e-Business to login to Aptify as the e-Business User. It first checks to see if the current session has an instance of the UserCredentials object. If it does, it uses it and no further processing is required. If there is no UserCredentials object returned from the session, the AptifyLogin object is used to create a UserCredentials object using its Login method. Upon successful login, the UserCredentials object is stored in the session object. If an exception is thrown while checking the session object, an alternate path is used to create a UserCredentials object, which bypasses the AptifyLogin object and ignores configuration attributes that can be used to configure the AptifyLogin object and UserCredentials object, like the Application Name and Connection Pool Max Size.

Aptify e-Business 5.5.2 updates the login process so that the altnerative path described above uses the ApplicationName and Connection Pool Max Size from the AptifyLogin object when creating the UserCredentials object. (Issue 17293)

Installer Fails When the Target System Has the Company Administrator Function Already

Aptify e-Business 5.5.1 has an issue where the installer fails when the target system already has the Company Administrator function configured. Aptify e-Business 5.5.2 updates the installer so that when the system has the Company Administrator function already configured, the installer detects this, does not add it, and continues with the installation. (Issue 19420)

Persons.ExternalAccountProfileURL Virtual Field Calculation Can Generate an Error

Aptify e-Business 5.5.1 and earlier has an issue where the calculation in the Persons.ExternalAccountProfileURL Virtual Field can return more than one result when a Web User is linked to more than one External System, causing the Persons Base View to throw an error and not return any results. Aptify e-Business 5.5.2 updates the Virtual Field in the Persons Entity, ExternalAccountProfileURL, to improve the calculation so that it can return, at most, one record. It also updates the system to return the information from the Active External System record with a SystemID of 'LinkedIn'. These changes ensure the correct information is returned when the Person is linked to multiple External Systems. (Issue 19342)

Possible Performance Issue within BaseUserControlAdvanced.ApplyStyles

In Aptify e-Business 5.5.1, a possible performance issue was identified within the ApplyStyles sub routine that could lead to a recursive loop / error condition. Aptify e-Business 5.5.2 updates the ApplyStyles sub routine in the BaseUserControlAdvanced DLL file to properly increment the loop counter. (Issue 19406)

Additional Security Added to Sitefinity Integration WebService

With e-Business 5.5.1 and earlier, the Web Service Aptify uses to synchronize Sitefinity users with Aptify Web Users does not validate the permissions of the user who calls it. Therefore, it may be possible for an unauthorized individual to add Sitefinity users to groups that have advanced permissions, like the Admin group. Beginning with Aptify e-Business 5.5.2, the Aptify/Sitefinity integration web service now requires and validates Sitefinity administrator credentials before performing any operation. This login information should already be available in the Sitefinity Content Management Systems record within Aptify, so no user intervention is required. (Issue 17549)

Sitefinity Index Issue When e-Business Login Control Is on the Page

When Aptify e-Business 5.5.1 and Sitefinity, some customers have reported that the Sitefinity index functionality does not work when the e-Business login control is present on that page. Aptify e-Business 5.5.2 updates the e-Business login assembly to ensure that the control does not inhibit the Sitefinity index process. Note that Aptify recommends that you add keywords to your pages to assist with the Sitefinity index process. Refer the Sitefinity documentation on indexing for more information. (Issue 10935)

Suppress Thread Was Being Aborted Event Log Errors on Billing Page

When working with a site running e-Business 5.5.1 or earlier, there are many "Thread was being aborted." errors logged to the event viewer when browsing the site and completing the checkout process. These are benign errors that do not have a functional impact. Aptify e-Business 5.5.2 suppresses these errors so they do not unnecessarily appear in the Event Viewer. (Issue 18632)

Update AptifyWebUserLogin InternalLogin Call to spLoginUser to Use Parameterized SQL

In Aptify e-Business 5.5.1, the InternalLogin method within the AptifyWebUserLogin class calls the stored procedure spLoginUser by building the SQL statement by appending parameter values to a string. Two of the parameters are strings that are passed into the method. The string parameters are enclosed in quotes and the string parameters are encoded before being appended and so, not vulnerable to SQL injection, but it is not a best practice method to prevent SQL injection. Aptify e-Business 5.5.2 updates the InternalLogin method to use a best practice to prevent SQL injection, using parameterized SQL. (Issue 19380)

Update Controls to Support Configurations

In Aptify e-Business 5.5.1, there are a set of controls that work in the sample site, but cause problems in implementations, based on the order in which certain functions are called when a page is opened. The NeedDatasource event of grid fires every time page load or page is postback from server even before page load event. The normal practice we follow is that we call LoadGrid() function on Page_Load Event for first time only and then save that DT in ViewState(DT). In NeedDatasource event we check if ViewState(DT) is not nothing then assign dt to Grid Datasource. Because of NeedDatasource event fire before page load event, properties were not initialized that was required for LoadGrid() function.

Aptify e-Business 5.5.2 modifies code to for the following user controls to resolve this situation:

  • ReviewAbstracts.ascx.vb
  • AddMembers.ascx.vb
  • Chapter.ascx.vb
  • ChapterOfficers.ascx.vb
  • ChapterProximitySearch.ascx.vb
  • ChapterSearch.ascx.vb
  • MyChapters.ascx.vb
  • CommitteeListing.ascx.vb
  • MyCommittees.ascx.vb
  • MakePayment.ascx.vb
  • OpenCart.ascx.vb
  • OrderHistory.ascx.vb
  • Renewals.ascx.vb
  • SavedPaymentMethods.ascx.vb
  • ClassRegistration.ascx.vb
  • InstructorAuthorizedCourses.ascx.vb,
  • InstructorClasses.ascx.vb
  • InstructorStudents.ascx.vb
  • MyCertifications.ascx.vb
  • MyCourses.ascx.vb
  • ViewClass.ascx.vb
  • ViewCourse.ascx.vb
  • ForumSubscription.ascx.vb
  • CreateMessage.ascx.vb
  • Message.ascx.vb
  • Search.ascx.vb
  • ChangePassword.ascx.vb
  • AdminOrderDetail.ascx.vb
  • CompanyMembership.ascx.vb
  • DirectoryMember.ascx.vb
  • EditBadgeInformation.ascx.vb
  • MemberCertifications.ascx.vb
  • ManageMyGroup.ascx.vb
  • MembershipExpireStatus.ascx.vb
  • Default.ascx.vb
  • Search.ascx.vb
  • Meeting.ascx.vb
  • MeetingsHome.ascx.vb
  • FindProduct.ascx.vb

(Issue 17472)

Web Menu Does Not Work on Tablets

In Aptify e-Business 5.5.1, the Web Menu does not work on tablet devices, such as an Apple iPad. Aptify e-Business 5.5.2 updates the navbar control so that the Web Menu works as expected on tablet devices. (Issue 19043)

Education

The following issue was resolved in the Education Management application by Aptify e-Business 5.5.2.

Class Registration Page Should Show a Message if Pre-requisite Exists for the Course

In Aptify e-Business 5.5.1, when a user attempts to register for a course that has a product prerequisite that the user does not satisfy, the user is unable to register for the course, but no message is displayed to the user to explain why the process failed. Aptify e-Business 5.5.2 updates the View Class user control to show the product's Web Prerequisite Failure Message, which explains to the web user why the registration process failed. (Issue 17936)

Meetings

The following issue was resolved in the Meeting Management applicationas part of Aptify e-Business 5.5.2.

When Registering on the Web Product Prerequisites Message Does Not Appear for a Meeting

In Aptify e-Business 5.5.1, if you try to register for a meeting and you do not meet the product prerequisites, nothing happens when you click Proceed to Checkout. This happens even for a top level meeting. An Object Reference error is logged in the event viewer. Aptify e-Business 5.5.2 updates the e-Business user controls to display the Web pre-requisites error message if the user does not qualify to order the meeting or any of the sessions. (Issue 18313)

Online Ordering

The following issues were resolved in the Online Ordering controls as part of Aptify e-Business 5.5.2.

Order Line Information Is Not Populated On Subscription Product When Web User Logs In Later After Adding it to the Cart

Aptify e-Business 5.5.1 has an issue where when a user adds a membership product in the shopping cart without logging into the website and tries to process the order, the Recipient and description on the order line is not populated because the user added the product first and then logged in. Aptify e-Business 5.5.2 updates the system to require that a user login before adding a product to the cart. (Issue 18752)

Order Source Hardcoded to Web in e-Business Shopping Cart Object

In Aptify e-Business 5.5.1 and earlier, an order placed on-line has its Order Source set to Web. This setting is hardcoded within the e-Business shopping cart assembly and cannot be changed. Aptify e-Business 5.5.2 updates the shopping cart object so it looks to an entity attribute to determine what Order Source to use for orders placed over the e-Business site. By default, the Order Source continues to be Web, but an organization can now change it as needed by following these steps:

  1. Create the Order Sources record for the order source value you want to use, if it does not already exist.
  2. Open the Web Shopping Carts entity.
  3. Click the Configuration > Attributes tab.
  4. Open the Order Source attribute.
  5. Update the Value to use the name of the Order Source that you want applied to orders placed over e-Business.
  6. Save and close the Web Shopping Carts entity.
  7. Clear the e-Business site's cache or restart IIS for the changes to take effect.

Note that if the Order Source attribute is not specified or is missing from the Web Shopping Carts entity, orders placed over e-Business will use the default Order Source identified in the Orders entity definition.
(Issue 18404)

Preferred Currency Price is Not Updated in the Cart after Logging In

In Aptify e-Business 5.5.1, if a user adds a product in the shopping cart without logging-in, it displays the default currency price and after checkout, if the user logs in, it does not change the price as per person's preferred currency type. Aptify e-Business 5.5.2 updates the system to re-evaluate the shopping cart once the web user logs in, and the information is changed as per the logged in person. (Issue 18753)

Order Does Not Proceed When Payment Types Set with Filters on Organization Record

In Aptify e-Business, payment types can be filters to be used by certain organizations. When an order or payment is created, the payment type is validated against a list of organizations filters. The filters are enforced when the parent entity contains an OrganizationID field. When the payment type is not valid for the organization, validation fails, however detailed error information is not provided. Because of this, it can be difficult to identify that an invalid Payment Type is responsible for the validation failure. Aptify e-Business 5.5.2 updates the validation logic to include a descriptive message and an informative message is displayed to the web user when the payment type is not valid. Note that it is up an administrator to ensure the organization and payment types are valid for the e-Business site. (Issue 18601)

Ship To Phone Number Not Shown on Order Confirmation When User Places the Order from the Website

Aptify e-Business 5.5 and e-Business 5.5.1 has an issue where the Ship To phone number is not appearing when a user places an order from the website. Aptify e-Business 5.5.2 updates the stored procedure to resolve this issue to ensure that the phone number is displayed as expected. (Issue 17800)

Update Shopping Cart to Support Backwards Compatibility

In Aptify e-Business 5.5.1, a change to the signature of the RemoveItems() function in the Shopping Cart object broke compatibility with existing Shopping Cart configurations. Aptify e-Business 5.5.2 updates the ShoppingCart DLL file to restore backwards compatibility for configurations created in earlier versions of the Shopping Cart object. (Issue 18470)

Products

The following issue was resolved in the Product controls as part of Aptify e-Business 5.5.2.

Kit Product: Attendee Information Is Not Displayed on the Meeting Registration Page

In Aptify e-Business, there is an issue where if a kit product has a meeting as a sub -product, upon adding this product to the shopping cart, the Meeting Registration page does not display the attendee information. Aptify e-Business 5.5.2 updates the Product.ascx user control to ensure that the attendee information for the kit product is displayed on the Meeting Registration page as expected. (Issue 18747)

Configuration Procedures

This section contains procedures that can be run on your e-Business environment to configure specific functionality after you complete an upgrade to Aptify e-Business 5.5.2.

Configuring One-Way Cryptographic Hash

The one-way cryptographic hash function, introduced in this release, turns the password into a fixed string of digits, which makes it nearly impossible to derive the original password text from the string. Beginning with e-Business 5.5.2, new e-Business installations will use one-way hash encryption to secure Web User passwords by default.

However, customers who upgrade to this release must perform the following steps if they want to take advantage of the security benefits of one-way cryptographic hashing.

 

IMPORTANT!

Try these steps in a test environment before running in your production system. Once you have converted Web User passwords to a one way hash, you will not be able to retrieve them. 

 

  1. Backup your Aptify database before starting.
  2. Log in to Aptify as a user with system administrator permissions.
  3. Open the Web Users entity (Framework > Entities, then search for Web Users).
  4. Open the record for the PWD field.
  5. On the Security tab, clear the Encrypt Data option and click OK.
  6. Open the TemporaryPWD field.
  7. On the Security tab, clear the Encrypt Data option and click OK.
  8. Save the Web Users entity.
    • Note that this will decrypt all of the Web User passwords in the database. This is only temporary until you reencrypt them with the one-way hash key.
  9. Open the PWD field again.
  10. On the Security tab, select the Encrypt Data option.
  11. In the Security Key field, enter E Business Login Key - One Way Hashing (this is the new one way hash key added by the e-Business 5.5.2 installation program).



  12. Click OK to save and close the Fields record.
  13. Open the TemporaryPWD field again.
  14. On the Security tab, select the Encrypt Data option.
  15. In the Security Key field, enter E Business Login Key - One Way Hashing.
  16. Click OK to save and close the Fields record.
  17. Click the Configuration > Attributes tab.
  18. Open the GetEbusinessPasswordHashKey attribute. This attribute identifies the key that you use for Web User password encryption.
  19. Update the Value to use the one-way hash key (E Business Login Key - One Way Hashing).



  20. Click OK to save and close the attribute.
  21. Save the Web Users entity.
    • The Web User passwords will be encrypted using the one-way hash key. Once complete, you will not be able to retrieve these passwords.
  22. Close the Web Users entity when the entity save process is finished.
  23. In your e-Business site, confirm that you have updated your site's controls to leverage the new encryption functionality by adopting the e-Business 5.5.2 version of those controls or by applying the e-Business 5.5.2 updates to your existing controls. This includes the following controls:
    • Login control (or the LoginSF4 control, if you are using Sitefinity)
    • ForgotUID control
    • ChangePassword control
    • Profile control
  24. Open the web config file, Aptify_UC_Navigation.config, in a text editor. The default location for the file is c:\inetpub\wwwwroot\ebusiness.
  25. Confirm that the entry for the ForgotUID control includes the three new properties related to the Password Reset functionality. See Forgot Password Retrieve with 24-Hour Temporary Password Sent via Email for details.
  26. Save the Aptify_UC_Navigation.config file and close the text editor.
  27. Restart IIS to ensure that the new settings take effect on the e-Business site.
  28. Perform tests to confirm that existing Web Users can still log in to the e-Business site and that new Web Users can create profiles and set their passwords.

 

Configuring e-Business to Leverage Shopping Cart Improvements

These instructions apply to upgrades from e-Business 5.5 or earlier to e-Business 5.5.2. If you are already running e-Business 5.5.1, you can review your site's user controls to confirm that you have already implemented these shopping cart improvements.

In Aptify e-Business 5.5.1, the EbusinessShoppingCart.dll was updated to improve the performance of the overall shopping cart checkout process to address Issue 19159. To take advantage of the performance enhancements to the e-Business shopping cart, you must manually update several user controls on your website. Perform the procedures in the sections below to leverage the changes made to the EbusinessShoppingCart object.

STEP 1 – Run the e-Business 5.5.2 Upgrader

If you have not already, run the e-Business 5.5.2 upgrader to install e-Business 5.5.2 schema to the database and update the e-Business objects in the Object Repository. See the Running the Object Repository Synchronizer for details.

STEP 2 – Run the Object Repository Synchronizer to Sync e-Business Objects

After the e-Business 5.5.2 updates are successfully applied to the database by the updater, run the Aptify Object Repository Synchronizer to download the updated e-Business objects to the e-Business Web site. See the Running the Object Repository Synchronizer for details.

 

To minimize the number of files in your e-Business site's Bin folder, choose the Specify a Sync Repository Objects Record option in the utility and select e-Business from the Object Name drop-down list (assuming you have not created your own Sync Repository Objects record for your site).

 


STEP 3 – Billing Control Changes

This step describes how to update the current version of the Billing Control so that it can interact with the e-Business 5.5.2 shopping cart. Modifications to the existing control are highlighted. Inline comments for clarification appear in blue – do not apply the blue comments to the code.

  1. Open the BillingControl.ascx.vb file from your web site in a text editor or in Visual Studio. Typically this control is located in the site's UserControls\Aptify_Product_Catalog folder.
  2. Add this line of code to the end of the import area section at the top of the file:
    • Imports Aptify.Applications.OrderEntry
  3. Locate the Page_Load event in the file.
  4. Comment out or remove the CheckOrderDetails() line and replace it with RefreshGrid(), as shown below:

    Replace the following code:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                         'set control properties from XML file if needed
                         SetProperties()
                         If Not IsPostBack Then
                               'CheckOrderDetails() 
                               LoadControls()
                         End If
    End Sub



    With the following code:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                 'set control properties from XML file if needed
                 SetProperties()
                 If Not IsPostBack Then
                        RefreshGrid() 
                        LoadControls()
                 End If
    End Sub



  5. Locate the CheckOrderDetails() function.
  6. In CheckOrderDetails(), replace this code:

    Private Sub CheckOrderDetails()
       Try
        If ShoppingCart1.GetOrderObject(Session, Page.User, Application).SubTypes("OrderLines").Count > 0 Then_



    With the following code:

    Private Sub CheckOrderDetails(ByVal oOrder As AptifyGenericEntityBase)
       Try
        If oOrder.SubTypes("OrderLines").Count > 0 Then



  7. Locate the LoadBillAddress() function.
  8. In LoadBillAddress(), add the new parameter oOrder byVal and comment out the first two lines after the Try statement:

    Private Sub LoadBillAddress(ByVal oOrder As AptifyGenericEntityBase)
    Try
          'Dim oOrder As AptifyGenericEntityBase
          'oOrder = CartGrid2.Cart.GetOrderObject(Session, Page.User, Application)



  9. Locate the LoadControls() function.
  10. In LoadControls(), call CheckOrderDetails(oOrder) and LoadBillAddress(oOrder), passing in the Order object. The code should match the following:

    Private Sub LoadControls()
           Dim oOrder As AptifyGenericEntityBase
           Try
              oOrder = ShoppingCart1.GetOrderObject(Session, Page.User, Application)
                 CheckOrderDetails(oOrder) 
                 LoadCreditCardInfo(oOrder)
                 LoadBillAddress(oOrder)



  11. Locate the ShowBillMeLater() function.
  12. In ShowBillMeLater(), replace this code:

    Private Sub ShowBillMeLater()
              Dim iPrevPaymentTypeID As Integer
              Dim iPOPaymentType As Integer = 0
              Dim sError As String
              Dim oOrder As Aptify.Applications.OrderEntry.OrdersEntity
              Try
                 If Not String.IsNullOrEmpty(AptifyApplication.GetEntityAttribute("Web Shopping Carts", "POPaymentTypeID")) Then
                      iPOPaymentType = CInt(AptifyApplication.GetEntityAttribute("Web Shopping Carts", "POPaymentTypeID"))
                 End If
              Dim dr As Data.DataRow = User1.CompanyDataRow
              CreditCard.UserCreditStatus = CInt(User1.GetValue("CreditStatusID"))
              CreditCard.UserCreditLimit = CLng(User1.GetValue("CreditLimit"))
              oOrder = ShoppingCart1.GetOrderObject(Session, Page.User, Application)



    With the following code:

    Private Sub ShowBillMeLater(ByVal a_oOrder As AptifyGenericEntityBase)
              Dim iPrevPaymentTypeID As Integer
              Dim iPOPaymentType As Integer = 0
              Dim sError As String
              Dim oOrder As Aptify.Applications.OrderEntry.OrdersEntity 
              Try
                 If Not String.IsNullOrEmpty(AptifyApplication.GetEntityAttribute("Web Shopping Carts", "POPaymentTypeID")) Then
                      iPOPaymentType = CInt(AptifyApplication.GetEntityAttribute("Web Shopping Carts", "POPaymentTypeID"))
                 End If
              Dim dr As Data.DataRow = User1.CompanyDataRow
              CreditCard.UserCreditStatus = CInt(User1.GetValue("CreditStatusID"))
              CreditCard.UserCreditLimit = CLng(User1.GetValue("CreditLimit"))
              oOrder = CType(a_oOrder, OrdersEntity)



  13. Locate the LoadCreditCardInfo() function.
  14. In LoadCreditCardInfo(), update the ShowBillMeLater() call to pass in the Order object as a parameter:

    Private Sub LoadCreditCardInfo(ByVal oOrder As AptifyGenericEntityBase) 
             Try 
               'RashmiP, Issue 6781, 09/20/10, to show bill me later option button in credit card uc 
               ShowBillMeLater(oOrder)



  15. Locate the cmdPlaceOrder_Click() event.
  16. In cmdPlaceOrder_Click(), update the code so that it matches the following:

    Private Sub cmdPlaceOrder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPlaceOrder.Click
              Dim lOrderID As Long, sError As String
              Dim oOrders As OrdersEntity
              oOrders=ShoppingCart1.GetOrderObject(Session, Page.User, Application)
              Try
                With oOrders



  17. Save and close BillingControl.ascx.vb.

STEP 4 – CartGrid User Control Changes

This step describes how to update the current version of the e-Business CartGrid Control so that it can interact with the e-Business 5.5.1 shopping cart. Modifications to the existing control are highlighted. Inline comments for clarification appear in blue – do not apply the blue comments to the code.

  1. Open the CartGrid.ascx.vb file from your web site in a text editor or in Visual Studio. Typically this control is located in the site's UserControls\Aptify_Product_Catalog folder.
  2. Locate the UpdateCart() function.
  3. In UpdateCart(), add the highlighted code in the specified location to create the Order object for the shopping cart, pass it to the RemoveItem method of shopping cart, and then call the SaveCart Method at the end of method.

    1. Create the Order object for the shopping cart by updating the code to match the following:

      Public Sub UpdateCart()
               Dim i As Integer, iOffset As Integer = 0
               Dim oOrder As AptifyGenericEntityBase 
                  oOrder = ShoppingCart1.GetOrderObject(Page.Session, Page.User, Page.Application) 
                  Try 



    2. Pass the Order object to the RemoveItem method of the shopping cart by updating the code to match the following:

                       Try
                          Dim lblProductID As Label
                          dQty = CDec(txtQuantity.Text)
                          lblProductID = CType(grdMain.Rows.FindControl("lblProductID"), Label) 
                          If dQty = 0 Or chkRemove.Checked = True Then
                            ShoppingCart1.RemoveItem(oOrder, i - iOffset) 
                          'HP Issue#9144: updated the Offset removal based on the total actually removed provided by new property in ShoppingCart



    3. Call the SaveCart method by updating the code to match the following:

                      Next 
                      ' update campaign code if necessary
                      If ShoppingCart1.CampaignCodeID > 0 Then
                         ShoppingCart1.SetOrderCampaign(ShoppingCart1.CampaignCodeName, Page.Session)
                      End If 
                      Me.ShoppingCart = ShoppingCart1
                         SaveCart()
                  Catch ex As Exception



    4. The updated UpdateCart() function should now match the following:

      Public Sub UpdateCart()
             Dim i As Integer, iOffset As Integer = 0
             Dim oOrder As AptifyGenericEntityBase 
                oOrder = ShoppingCart1.GetOrderObject(Page.Session, Page.User, Page.Application) 
             Try
               lblError.Visible = False
               'Navin Prasad Issue 11032
                For i = 0 To grdMain.Rows.Count - 1
                  ' Obtain references to row's controls
                    Dim txtQuantity As TextBox = CType(grdMain.Rows.FindControl("txtQuantity"), TextBox)
                    Dim chkRemove As CheckBox = CType(grdMain.Rows.FindControl("chkRemove"), CheckBox) 
                  ' Wrap in try/catch block to catch errors in the event that someone types in
                  ' an invalid value for quantity
                    Dim dQty As Decimal
                    Try
                      Dim lblProductID As Label
                      dQty = CDec(txtQuantity.Text)
                      lblProductID = CType(grdMain.Rows.FindControl("lblProductID"), Label) 
                      If dQty = 0 Or chkRemove.Checked = True Then
                          ShoppingCart1.RemoveItem(oOrder, i - iOffset) 
                          'HP Issue#9144: updated the Offset removal based on the total actually removed provided by new property in ShoppingCart
                          'iOffset = iOffset + 1 ' offset tracks how many
                          iOffset = iOffset + ShoppingCart1.TotalItemsRemovedByRemoveItem
                          ' items removed
                      Else
                          'HP Issue#9144: only update those rows which are not part of a kit and therefore their checkboxes visible
                          'ShoppingCart1.UpdateQuantity(i, dQty)
                          If Not chkRemove.Visible = False Then
                             ShoppingCart1.UpdateQuantity(i - iOffset, dQty)
                          End If
                      End If
                      Catch
                      lblError.Visible = True
                      lblError.Text = "There has been a problem with one or more of your inputs."
                    End Try
             Next 
             ' update campaign code if necessary
             If ShoppingCart1.CampaignCodeID > 0 Then
                 ShoppingCart1.SetOrderCampaign(ShoppingCart1.CampaignCodeName, Page.Session)
             End If 
             Me.ShoppingCart = ShoppingCart1
             SaveCart()
             Catch ex As Exception
             Aptify.Framework.ExceptionManagement.ExceptionManager.Publish(ex)
             End Try
      End Sub



  4. Save and close CartGrid.ascx.vb.

 

STEP 5 - Product User Control Changes

This step describes how to update the current version of the e-Business Product Control so that it can interact with the e-Business 5.5.2 shopping cart. Modifications to the existing control are highlighted.

  1. Open the Product.ascx.vb file from your web site in a text editor or in Visual Studio. Typically this control is located in the site's UserControls\Aptify_Product_Catalog folder.
  2. Locate the SetProperties() function.
  3. Sub SetProperties(), locate this line:
     

    If String.IsNullOrEmpty(Me.QueryStringRecordIDParameter) Then Me.QueryStringRecordIDParameter = "ID"
  4. Add End If after that line, so it reads:
     

    If String.IsNullOrEmpty(Me.QueryStringRecordIDParameter) Then Me.QueryStringRecordIDParameter = "ID"
    End If



  5. Locate the lnkAddToCart_ServerClick event.
  6. Replace the code for the lnkAddToCart_ServerClick event with the code shown below. 

    Private Sub lnkAddToCart_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkAddToCart.Click
             Dim sProductPage As String = ""
             Dim sOrderPage As String = ""
             Dim oOrder As OrdersEntity
             Dim bCombineLines As Boolean
             Dim iQty As Integer
             Dim lstProductID As List(Of Long) = Nothing
             Dim bFound As Boolean = False
             Dim iItemForUpdate As Integer = 0
             Try
               '8/30/06 RJK - Temporarily make Housing Products unavailable.
               'This was done because there were issues with Housing purchases not
               'creating Housing Reservation Detail records.
               'If Not IsNumeric(Request.QueryString("ID")) Then
                  ' Throw New ArgumentException("Parameter must be numeric.", "ID")
               'End If
               Dim strProductType As String = ShoppingCart1.GetProductType(Me.ProductID)
               If String.Compare(strProductType, "Housing", True) = 0 Then
                  lblAdded.Text = "Housing Products are not supported in this build."
                  lblAdded.Visible = True
               Else
                  _If String.Compare(strProductType, "Meeting", True) = 0 OrElse __
                  String.Compare(strProductType, "Housing", True) = 0 Then 
                  bCombineLines = False
               Else
                  bCombineLines = True
               End If 
               If IsNumeric(txtQuantity.Text) Then
                  iQty = CInt(txtQuantity.Text)
               Else
                  lblAdded.Text = "Quantity must be numeric"
                  lblAdded.Visible = True
                  Exit Sub
               End If
               'Added by Sandeep for performance Issue 
               oOrder = ShoppingCart1.GetOrderObject(Page.Session, Page.User, Page.Application)
               lstProductID = ShoppingCart1.CreateProductIDList(oOrder)
               If lstProductID Is Nothing Then
                  bFound = False
                  iItemForUpdate = 0
               Else
                  If lstProductID.Contains(Me.ProductID) Then
                  bFound = True
                  For i As Integer = 0 To lstProductID.Count - 1
                  If lstProductID = Me.ProductID Then
                      iItemForUpdate = i
                      Exit For
                  End If
               Next
               Else
                  If lstProductID.Count = 1 Or lstProductID Is Nothing Then
                      bFound = False
                      iItemForUpdate = lstProductID.Count
                  Else
                      bFound = False
                      iItemForUpdate = lstProductID.Count - 1
                  End If 
               End If
             End If
             'Anil Issue 14302
             If ShoppingCart1.AddToCart(oOrder, Me.ProductID, Me.User1.PersonID, bFound, iItemForUpdate, bCombineLines, , iQty) Then
             lstProductID = ShoppingCart1.CreateProductIDList(oOrder)
             If ShoppingCart1.GetProductTypeWebPages(Me.ProductID, sProductPage, sOrderPage) Then
                  'oOrder = ShoppingCart1.GetOrderObject(Page.Session, Page.User, Page.Application)
                  Session("ProductID") = Me.ProductID
                  If Len(sOrderPage) > 0 Then 
                      ShoppingCart1.SaveCart(Page.Session)
                      _Response.Redirect(sOrderPage & "?OL=" & __
                      oOrder.SubTypes("OrderLines").Count - 1)
                  Else 
                     Me.SetTotalCartQty()
                     Session("ProductID") = Nothing
                  End If 
             End If
             Session("ProductID") = Nothing 
             lblAdded.Text = "Product Added to Cart"
             lblAdded.ForeColor = Drawing.Color.Blue
             lblAdded.Visible = True
             lnkViewCart.Visible = True
             ShoppingCart1.SaveCart(Page.Session)
             MyBase.Response.Redirect(GroupingContentsViewProductPage + "?ID=" + Me.ProductID.ToString + "&Val2=" + "Product Added to Cart", False)
          Else
            Session("ProductID") = Nothing
            lblAdded.ForeColor = Drawing.Color.Red
            lblAdded.Visible = True
            ''RashmiP, Issue 9511, 09/08/10
            RemoveHandler lnkAddToCart.Click, AddressOf lnkAddToCart_ServerClick
            If ShoppingCart1.WebProdPreRequisiteErrMsg = String.Empty Then
                 lblAdded.Text = "Unable to Add Product"
            Else
                 lblAdded.Text = ShoppingCart1.WebProdPreRequisiteErrMsg
            End If
            lnkViewCart.Visible = False
         End If
      End If
      Catch ex As Exception
      Aptify.Framework.ExceptionManagement.ExceptionManager.Publish(ex)
      End Try
    End Sub
  7. Save and close Product.ascx.vb.

 

STEP 6 - ViewCart User Control Changes

This step describes how to update the current version of the e-Business ViewCart Control so that it can interact with the e-Business 5.5.2 shopping cart. Modifications to the existing control are highlighted.

  1. Open the ViewCart.ascx.vb file from your web site in a text editor or in Visual Studio. Typically this control is located in the site's UserControls\Aptify_Product_Catalog folder.
  2. Locate the RefreshGrid() function.
  3. In RefreshGrid(), define sCurrencyFormat as a string before the WithCartGrid.Cart line:

    Private Sub RefreshGrid() Try CartGrid.RefreshGrid() 'Navin Prasad Issue 11032
            If CartGrid.Grid.Items.Count > 0 Then 
                tblRowNoItems.Visible = False 
                cmdUpdateCart.Visible = True 
                cmdCheckOut.Visible = True 
                cmdSaveCart.Visible = True 
            Else     
                tblRowNoItems.Visible = True 
                cmdUpdateCart.Visible = False 
                cmdCheckOut.Visible = False 
                cmdSaveCart.Visible = False 
                divTotals.Visible = False 
                divCampaign.Visible = False 
                'divhr.Visible = False 
                tblbuttons.Visible = False 
            End If 
            Dim sCurrencyFormat As String 
            With CartGrid.Cart



  4. Still within RefreshGrid() but below the With CartGrid.Cart line, call the GetCurrencyFormat function to assign a value to sCurrencyFormat and update the label definitions to use the variable rather than call the function each time. Change the code to match the following:
     

            Dim sCurrencyFormat As String 
    		With CartGrid.Cart 
                sCurrencyFormat = .GetCurrencyFormat(.CurrencyTypeID)
                lblSubTotal.Text = Format$(.SubTotal, sCurrencyFormat)
                lblShipping.Text = Format$(.ShippingAndHandlingCharges, sCurrencyFormat)
                lblTax.Text = Format$(.Tax, sCurrencyFormat)
                lblGrandTotal.Text = Format$(.GrandTotal, sCurrencyFormat)

     
     

  5. Further down in the RefreshGrid() function, locate this line:

    SavingMessage = SavingMessage.Replace("{0}", Format$(dSavings, .GetCurrencyFormat(.CurrencyTypeID)))



    And replace it with this line:

    SavingMessage = SavingMessage.Replace("{0}", Format$(dSavings, sCurrencyFormat))



  6. Below the SavingMessage line, locate this line:

    lblTotalSavings.Text = "You have saved " + Format$(dSavings, .GetCurrencyFormat(.CurrencyTypeID)) + " in your shopping cart since you are a valued member!"



    And replace it with this line:

    lblTotalSavings.Text = "You have saved " + Format$(dSavings, sCurrencyFormat) + " in your shopping cart since you are a valued member!"



  7. Save and close Product.ascx.vb.

 

STEP 7 - MeetingRegistration User Control Changes

This step describes how to update the current version of the e-Business MeetingRegistration Control so that it can interact with the e-Business 5.5.2 shopping cart. Modifications to the existing control are highlighted. Inline comments for clarification appear in blue – do not apply the blue comments to the code.

  1. Open the MeetingRegistration.ascx.vb file from your web site in a text editor or in Visual Studio. Typically this control is located in the site's UserControls\Aptify_Meetings folder.
  2. Locate the CleanUpSessions() function.
  3. Update the function definition to add a new parameter for the Orders object, as shown below:

    Private Sub CleanUpSessions(ByVal lProductID As Long, ByVal iLine As Integer, ByVal oOrder As OrdersEntity)



  4. In the third line of the CleanUpSessions function, update the RemoveItems() call to use the oOrder parameter, as shown below:

    ShoppingCart1.RemoveItem(oOrder, iLine)



  5. Locate the btnFinish_Click() event.
  6. Update the event logic to create the order object and pass it to RemoveItem() by replacing the code with the following:

    Protected Sub btnFinish_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFinish.Click
              Dim oOrder As Aptify.Applications.OrderEntry.OrdersEntity
              oOrder = ShoppingCart1.GetOrderObject(Page.Session, Page.User, Page.Application)
              If oOrder.SubTypes("OrderLines").Count > 1 Then
                  ShoppingCart1.RemoveItem(oOrder, CInt(Request.QueryString("OL")))
                  ShoppingCart1.SaveCart()
                  Me.RedirectUsingPropertyValues() 
              Else
                  ShoppingCart1.RemoveItem(oOrder, 0)
                  ShoppingCart1.SaveCart()
                  Me.RedirectUsingPropertyValues()
              End If
    End Sub



  7. Locate the CheckForConflict() function.
  8. In CheckForConflict(), pass the order object as a parameter in two instances where the CleanUpSessions() method is called. For these two instances, replace this code:

    CleanUpSessions(lOrigProductID, iLine)



    With this code:

    CleanUpSessions(lOrigProductID, iLine, oOrder)



  9. Save and close MeetingRegistration.ascx.vb.

 

STEP 8 – Verify the New Functionality

After completing the modifications outlined above perform the necessary tests to confirm that the eBusiness 5.5.2 shopping cart behaves as expected on your existing e-Business website.

New and Modified Compiled Objects

This section lists the new and modified compiled objects in this and previous releases of Aptify.

Changes in e-Business 5.5.2

e-Business 5.5.2 modifies the following compiled assemblies:

  • AptifyCMSIntegration.dll (5.5.2.1)
  • AptifyEBusinessUser.dll (5.5.2.0)
  • AptifyGenericEntity.dll (5.5.1.101 – only if Aptify 5.5.2 is not installed)
  • AptifyGenericEntityBase.dll (5.5.1.100)
  • AptifyMelissaDataWebServiceVerification.dll (5.5.2.1)
  • AptifyOrdersEntity.dll (5.5.2.21 – only if Aptify 5.5.2 is not installed)
  • AptifySecurityKey.dll (5.5.2.4)
  • AptifySocialNetworkIntegration.dll (5.5.1.1)
  • AptifyWebGlobal.dll (5.5.2.3)
  • BaseUserControlAdvanced.dll (5.5.1.3)
  • EBusinessLogin.dll (5.5.2.7)
  • EBusinessShoppingCart.dll (5.5.2.2)
  • EntityUserControlGenerator.dll (5.5.2.0)
  • WebUserActivity.dll (5.5.2.0)

Note that the above only applies to changes between e-Business 5.5.1 and e-Business 5.5.2. For information on what changed in earlier versions, see the Changes in e-Business 5.5.1 section below.

Changes in e-Business 5.5.1

For the sake of references, the following sections describe what assemblies changed from e-Business 5.0 SP2 to e-Business 5.5.1:

e-Business 5.5 to e-Business 5.5.1

For reference, below is a list of e‐Business dlls that have been modified or added since e‐Business 5.5.

  • AptifyEBusinessUser.dll(5.5.1.7)
  • AptifyCMSIntegration.dll (5.5.1.0)
  • AptifyCMSIntegrationGUI.dll (5.5.1.0) ‐ Smart Client only
  • AptifyEktronCMSIntegration_86.dll (5.5.1.1)
  • AptifyKnowledgeWebControls.dll (5.5.1.0)
  • AptifyLinkedInIntegration.dll (5.5.1.5)
  • AptifyMarketplaceListingsEntity.dll (5.5.1.1)
  • AptifyMarketplaceListingsUI.dll (5.5.1.5) 0 Smart Client only
  • AptifyWebGlobal(5.5.1.0)
  • BaseUserControlAdvanced (5.5.1.2)
  • EBusinessHttpModule (5.5.1.5)
  • EBusinessLogin.dll (5.5.1.2)
  • EBusinessShoppingCart.dll (5.5.1.18)
  • EntityUserControlGenerator (5.5.1.2) ‐ Smart Client only

e-Business 5.0 SP3 to e-Business 5.5.1.1

For reference, below is a list of Aptify dlls that have been modified since e‐Business SP3 (and were not changed in 5.5 or 5.5.1). So, for upgrades from SP2/3 to 5.5.1, you should see these objects updated. For upgrades from to 5.5, you should already have these versions in the repository:

  • AptifyEktronCMSIntegration_80235.dll (5.5.0.2)
  • AptifyEktronCMSIntegration_85.dll (5.5.0.0)
  • AptifyHttpHandler.dll (5.5.0.2)
  • AptifyPersonSocialNetworkMismatchesLayout.dll (5.5.0.9) ‐ Smart client only
  • AptifySocialNetworkIntegration.dll (5.5.0.16)
  • AptifySocialNetworkProcessComponents.dll (5.5.0.6)
  • EBusinessGlobal.dll (5.5.0.0)
  • EBusinessHierarchyTree.dll (5.5.0.1)

e-Business 5.0 SP2 to e-Business 5.5.1

For reference, below is a list of Aptify dlls that have been modified since e‐Business SP2 (and were not changed in a later release). So, for upgrades from SP2 to 5.5.1, you should see these objects updated. For the other upgrade paths, you should already have these versions in the repository:

  • AptifyEktronCMSIntegration_76.dll (5.0.2.3)
  • AptifyEktronCMSIntegration_80.dll (5.0.2.3)
  • AptifyHttpModule.dll (5.0.3.1)
  • AptifyRSSFeed.dll (5.0.3.1)
  • AptifyWebExclusionManager.dll(5.0.3.1)
  • AptifyWebUtility.dll (5.0.3.1)

Copyright © 2014-2017 Aptify - Confidential and Proprietary