TOT-4132 - Address auto-complete using Google Places within Order Checkout/Submission, User Registration, User Details/Favourites/Orders content managed web page areas
On a content managed web page that contains either a Order Checkout/Submission area or a Guest Order Checkout/Submission area, there is now the ability to embed auto-complete search form inputs into the areas that allows the user to start typing the address that they are looking for when creating a new delivery or billing address, where the address search auto-complete will perform a look up using Google Places to return an auto-complete list of addresses for the user to choose from. Once an address is selected it will automatically populate each of the new address fields. This makes it quicker and easier for users to set new billing and delivery addresses against orders instead of having to fill out each address form field.
Additionally on a content managed web page that contains a User Registration area or a User Details/Favourites/Orders area, there is also the ability to embed address auto-complete search form inputs, that also allows an address to be found and automatically populate the address form fields for when a new address is being created.
For all of the address search auto-complete form inputs there are settings that control the fields that address data returned from Google's Places service is placed into. Additionally there is a setting that controls if the auto-complete should limit only finding addresses in selected number of countries (up to 5), or addresses across the whole world.
For each area there are also area settings that can disable or enable the address fields, allowing or not allowing the user to modify the address fields once loaded with the auto-complete. Disabling these fields may be desired to avoid users from being able to key invalid address data, that may lead to less delivery issues during dispatch processes.
In order to use this functionality it requires a Google account to be set up, and within Google's Console the account have API keys set up for its Places service. [https://developers.google.com/maps/documentation/places/web-service/get-api-key] Note that is the Location Finder feature is already being used in the TOTECS project, then the same account and API key can be used also for the address auto-complete functionality.
Within the Administration Centre, under the Stores menu, within the Location Settings interface an additional section labelled "Address Auto-Complete Searching" has been created and contains the following settings to configure the address search auto-complete:
Restrict address searches to region (ccTLD region code)
Set a comma delimited list of ccTLD region codes to limit address auto-complete searches to only the countries specified in Google maps API. Only up to 5 regions can be set, or otherwise leave empty to allow addresses to be searched across all countries.
Put Premise Into Address Field
For an address selected using an Google map's address auto-complete to create a new address, choose the address field that the Premise data is placed into. Premise may store the name of a building or place.
Put Sub Premise Into Address Field
For an address selected using an Google map's address auto-complete to create a new address, choose the address field that the Premise data is placed into. Sub Premise may store a unit or apartment type name and number
Put Street Number Into Address Field
For an address selected using an Google map's address auto-complete to create a new address, choose the address field that the Premise data is placed into. Street Number may store a number of the building or house located the street.
Put Route Into Address Field
For an address selected using an Google map's address auto-complete to create a new address, choose the address field that the Premise data is placed into. Route may store a name of the street and type of road it is.
Put Sub Locality Level 1 Into Address Field
For an address selected using an Google map's address auto-complete to create a new address, choose the address field that the Premise data is placed into. Locality may store the name of the local town, local suburb, or local area.
Put Locality Into Address Field
For an address selected using an Google map's address auto-complete to create a new address, choose the address field that the Premise data is placed into. Locality may store the name of the town, suburb, or area.
Put Postal Town Into Address Field
For an address selected using an Google map's address auto-complete to create a new address, choose the address field that the Premise data is placed into. Postal Town may store the name of the town, suburb, or local area known by the postal service.
Put Administrative Area Level 1 Into Address Field
For an address selected using an Google map's address auto-complete to create a new address, choose the address field that the Premise data is placed into. Administrative Area Level 1 may store the name of the municipal or council area.
Put Administrative Area Level 2 Into Address Field
For an address selected using an Google map's address auto-complete to create a new address, choose the address field that the Premise data is placed into. Administrative Area Level 2 may store the name of the state, province or region.
Within the each of the content managed web page areas the following settings can be configured:
Order Checkout/Submission
Area Settings
Allow New Address Auto-Complete Search: If set to Yes and the Google API Key setting has been configured within the Stores Locations settings interface, then if the an delivery or billing auto-complete input has been been embedded within the area's Order Details Form format, the address auto-complete search will be loaded against the form inputs.
Disable New Delivery Address Mailing Fields: If set to yes then disable the address 1-4 fields, postcode, and country for the new delivery address.
Disable New Billing Address Mailing Fields: If set to yes then disable the address 1-4 fields, postcode, and country for the new billing address.
Order Details Form Format Hooks:
delvrnew_search_input_id: ID of the text input that is used to embed a new delivery address search auto-complete against. This allows users to find and select an address from, and populate the new delivery address form fields with. Embed within the ID attribute of a text input element.
billingnew_search_input_id: ID of the text input that is used to embed a new billing address search auto-complete against. This allows users to find and select an address from, and populate the new billing address form fields with. Embed within the ID attribute of a text input.
Guest Order Checkout/Submission
Area Settings:
Allow New Address Auto-Complete Search: If set to Yes and the Google API Key setting has been configured within the Stores Locations settings interface, then if a delivery or billing auto-complete input has been been embedded within the area's Guest Order Details Form format, the address auto-complete search will be loaded against the form inputs.
Disable New Delivery Address Mailing Fields: If set to yes then disable the address 1-4 fields, postcode, and country for the new delivery address.
Disable New Billing Address Mailing Fields: If set to yes then disable the address 1-4 fields, postcode, and country for the new billing address.
Guest Order Details Form Format Hooks:
delvrnew_search_input_id: ID of the text input that is used to embed a new delivery address search auto-complete against. This allows users to find and select an address from, and populate the new delivery address form fields with. Embed within the ID attribute of a text input element.
billingnew_search_input_id: ID of the text input that is used to embed a new billing address search auto-complete against. This allows users to find and select an address from, and populate the new billing address form fields with. Embed within the ID attribute of a text input.
User Registration
Area Settings
Allow Address Auto-Complete Search: If set to Yes and the Google API Key setting has been configured within the Stores Locations settings interface, then if an address auto-complete search input has been been embedded within the area's User Registration format, the address auto-complete search will be loaded against the form input.
Disable Address Mailing Fields: If set to yes then disable the address 1-4 fields, postcode, and country for the address form inputs.
User Registration Format Hooks:
address_search_input_id: ID of the text input that is used to embed an address search auto-complete against. This allows users to find and select an address from, and populate the address form fields with. Embed within the ID attribute of a text input element.
address_search_input_onfocus: Javascript function that triggers an address search against the address search auto-complete text input. This allows users to find and select an address from, and populate the address form fields with. Embed within the onfocus attribute of a text input element.
User Details/Favourites/Orders
Area Settings
Allow New Address Auto-Complete Search: If set to Yes and the Google API Key setting has been configured within the Stores Locations settings interface, then if a new address auto-complete search input has been been embedded within the area's User Detail Form format, the address auto-complete search will be loaded against the form input.
Disable New Delivery Address Mailing Fields: If set to yes then disable the address 1-4 fields, postcode, and country for the new address form inputs.
User Detail Form Format Hooks:
address_new_search_input_id: ID of the text input that is used to embed a new address search auto-complete against. This allows users to find and select an address from, and populate the new address form fields with. Embed within the ID attribute of a text input.
address_new_search_input_onfocus: Javascript function that triggers an address search against the new address search auto-complete text input. This allows users to find and select an address from, and populate the new address form fields with. Embed within the onfocus attribute of a text input element.
With each of the area formats the input ID input needs to be placed within a text input's ID attribute, and the onfocus hook within the input's on onfocus attribute.
Functionality Affected: Order Checkout/Submission, Guest Order Checkout/Submission, User Registration, User Details/Favourites/Orders content managed web page areas
Impact: Normal
TOT-3824 - Integrate AfterPay payment type for ordering
There is now the ability for users to pay for orders within content managed websites using Afterpay's Buy Now Pay Later (BNPL) payment service.On a content managed webpage containing either Order Checkout/Submission or Guest Order Checkout/Submission areas, within the Order Detail format there ability to allow users to select Afterpay from the payment types list if the payment type is assigned against the customer account they are using to order with.
A new payment type called "After Pay" (AP) has been added to the list of payment types that can be assigned to each customer account either through the Customer Accounts text file data import, or via the Customer Accounts Connector data import, by including the AP value with the other assigned payments stored in a comma separated list.
Before the Afterpay payment type can be used, a Merchant account needs to be first applied for and created with Afterpay. Once approved, API credentials need to be requested from the API support staff. Once obtained, then within the Administration Centre, under the stores menu, within the Payments settings interface, a section labelled "After Pay" has been added that contains the following settings:
Environment: The Afterpay environment to be used to submit payments to. For testing choose the Sandbox environment where no money in exchanged. Choose the Live environment to allow real payments and money to be exchanged.
Afterpay Merchant ID: ID of the merchant within Afterpay's system that will receive the payments and obtain payment configurations against. Businesses wanting to receive payments need to sign up to Afterpay as a merchant. Once approved Afterpay provides a Merchant ID
API Secret Key: The API Key used to authenticate with Afterpay's API to raise payments with. Once a merchant account is set up with Afterpay a secret key to their API can then be obtained. This setting will always initially display as empty for security reasons even if it has a value previously set, and only be updated if a value is given.
Once the Afterpay settings have been set and its payment type is assigned against a customer account, then when the user proceeds through the order checkout process, on the Order Details page the user will be able to choose the Afterpay payment type option. If selected then at the order review stage a request is made to Afterpay to set up a Checkout within their system, if confirmed by Afterpay the user can then proceed to the Order Review stage. If they then confirm and submit the order, the user will be redirected to Afterpay's website to complete the payment process. If the user cancels completing the payment process within Afterpay's website then they will be taken back to the order details page.
Once the user has completed payment steps within Afterpay's system the user will be redirected back to the content managed webpage area displaying the Order Checkout/Submission area. A check will then be made to Afterpay's Capture Payment API endpoint to confirm the payment transaction and check that that the payment was successfully approved or not. If successful then the user will see the "Order Submission Success Message" format will display in the area, or otherwise the "Order Submission Failure Message" format will display in the area, informing the user of the payment and order submission results. Optionally the user can be shown a link to redirect them back to the Order Details step if the payment fails, allowing them to choose another payment type, and try again in completing the ordering process.Notes:
Afterpay require that their logo appear on Product Detail areas before they will approve using their live system. This can be separately done through website implementation.
Afterpay require order monetary amounts be provided to 2 decimals. If the project stores pricing in more than 2 decimal places then the pricing will be rounded to 2 decimal places when pricing ordering data to Afterway.
The order information provided to Afterpay include user's emails address, contact name, delivery address, billing address, and ordered products name, product code, ordered quantity and unit price.
Afterpay provide several limitations on businesses who are allowed to have merchant accounts. They most likely will only approve businesses selling physical products in the retail space. They also specify minimum and maximum limits on total order amount, and may reject allowing payments to be made for users who exceed these limits. An error message will appear at the Order Detail step if Afterpay reject an order, and the user will see an error message containing the error Afterpay is reporting.
For testing within Afterpay's sandbox system, a test customer account needs to be created or logged in from https://portal.sandbox.afterpay.com/au/login-email . A mobile phone number needs to provided and must be unique. A verifcation code will be asked for but never sent by Afterpay's system. The verification code is: 111111
For testing within Afterpay's sandbox system, testing credit cards can be found at developers.afterpay.com/afterpay-online/docs/customer-accounts
Functionality Affected: Order Checkout/Submission, Guest Order Checkout/Submission content managed web page areas, Stores Settings Administration Centre interface
Impact: Normal
Improvements
TOT-4129 - Allow ampersand, hyphen and apostrophe characters to be saved within Organisation Name, Address Description, and Contact fields of user addresses being created and updated
On a content managed web page displaying either a Order Checkout/Submission, Guest Order Checkout/Submission, User Registration, or User details/Favourites/Orders area. as well as within the Administration Centre's User Details interface, and additionally within the Trade interface, when the user is either creating a new address or updating an existing address assigned directly to them, within an address's Organisation Name, Contact Name, and Address Description fields the user is now able to set hyphen, apostrophe and ampersand characters within each of the address fields. The user will no longer receive error messages if these characters are applied in the address fields.
This allows support for company and contact names that use hyphens, apostrophes, such as for conjoined names.
Functionality Affected: Order Checkout/Submission, Guest Order Checkout/Submission, User Registration, User details/Favourites/Orders content managed web page areas
Impact: Normal
TOT-4214 - Toggle to switch between 3 different product record layout views within content managed web page areas that list products using Product Search Record web page area format
On a content managed web pages containing areas types that list products using the Product Search Record format, for each area type there is now the ability to toggle between 3 different types of Product Search Record formats, that can display product records in different layouts (such as a grid, list or simplified view). This applies to the following areas:
Related Products Listing
Product Search Results Listing
Product Combination
Category Listing
Model Product
Customer Account Contract Detail
User Details/Favourites/Orders
User Viewed Products
Customer Account Invoice Line Report
Within the header and footer formats of each area type there are now format hooks that can toggle the area to change its Product Search Record format being used and cause the area to reload. Additionally there is now the ability to remember product search record being used across all types product listing areas by using a browser cookie to remember the user's preference. In these areas if the user paginates, changes the sorting of the area, reloads the webpage, or is refreshed from another area (such as from Product Search Form area types) this user preference will be used to display the associated product based format layout. Additionally in each area's settings there is now the ability to specify the Product Search Record format initially used when the area first loads, as well as control if the user can switch to any of the 3 product search formats. In each of the areas the settings can be set:
Allow Product Record Format Switching: If set to Yes then the user has permission to switch between the Product Search Record formats assigned to content managed web page areas. If set to No the areas's first Product Search Record format will always be used.
Default Product Record Format: If the Allow Product Record Format Switching setting is set to Yes, then this setting controls which of the 3 product Search Record's assigned to the area should initially display in the area if the user has not previously saved their preferred layout/format in a browser cookie. (or the browser cookie was cleared).
In the following content managed web page areas, the following hooks have added the area's header and footer formats. The format hooks are:
product_record_layout1_onclick: Javascript function that updates the area to show product records in the first Product Search Record format assigned to the area.
product_record_layout2_onclick: Javascript function that updates the area to show product records in the second Product Search Record format assigned to the area.
product_record_layout3_onclick: Javascript function that updates the area to show product records in the third Product Search Record format assigned to the area.
product_record_layout_class: CSS styling class name that indicates the Product Search Record format used to display the layout of products in the area. This hook can have the values list_record_layout_1, list_record_layout_2, or list_record_layout_3', 'list_record_layout_1
product_record_layout_allow_change: Indicates if the user is allowed to change the Product Search Record format, allowing the layout of the product records in the area to change. Displays either Y - Yes, or N - No
The format hooks are available for the following areas and formats:
Related Products Listing
Related Products Header
Related Products Footer
Product Search Results Listing
Product Search Header
Product Search Listing Footer
Product Combination
Combination Product Options Detail
Category Listing
Category Listing Header
Category Listing Footer
Model Product
Model Products Header
Model Products Footer
Customer Account Contract Detail
Customer Account Contract Detail
User Details/Favourites/Orders
User Favourite Products Listing
User Viewed Products
User Viewed Products Header
User Viewed Products Footer
Customer Account Invoice Line Report
Customer Account Invoice Line Report Header
Customer Account Invoice Line Report Footer
Because the user's format layout selection in one of these areas is saved as a preference in a cookie can then control the format used in the other areas, it is highly recommended to use the same types of layouts in the Product Search Record, Product Search Record 2, and Product Search Record 3 formats. For example if the first format shows a grid layout, the second a listing layout, and the 3rd a tall layout, then these layouts should be used across all the above areas that allow the user to change the layout selection. Otherwise if no done then if the user may choose a layout in one area, that doesn't look the same in another area, causing the user having to keep switching layouts that may be annoying to them.
Functionality Affected: Related Products Listing,Product Search Results Listing,Product Combination,Category Listing,Model Product,Customer Account Contract Detail,User Details/Favourites/Orders,User Viewed Products,Customer Account Invoice Line Report content managed web page areas
Impact: Normal
TOT-4215 - Add Serpstatbot, Seekport, Zoominfo crawlers and GoBuster to the list of known crawlers/scrapers within the Project Traffic Statistics Administration Centre
For website traffic making webpage requests for a project, there is now the ability to detect when Serpstatbot, Zoominfo and Seekport crawlers are making a request, as well as GoBuster scraper.
Within the Administration Centre interface, under the Statistics menu, in the Project Traffic Statistics interface, under the "Requests By Search Engines, Crawlers and Software" pie graph now can show requests that are made by the Serpstatbot, Seekport and Zoominfo crawlers, as well as GoBuster. Additionally these crawlers have been added to the TOTECS platform's list of Bad Bots that prevent future requests reach projects that are blocking these bots.
Functionality Affected: Project Traffic Statistics administration centre interface
Impact: Normal
TOT-4223 - Show and export additional customer account fields in Search Users Administration Centre interface
Within the Administration Centre interface, under the Users menu, within the Search Users interface, in the Search Users table's Custom Data Field column, additional customer account fields have been added that allow data for the following fields to display:
Key Customer Account ID
Business Number (ABN)
Contact Name
Email
Mobile Phone Number
Phone Number
Class
Territory
Sales Representative ID
Shipping Method
Is On Hold
On Hold Action
Outside Payment Terms Action
Outside Credit Terms Action
Balance
Balance Limit
Additionally if the user clicks on the Export Users button, within the Export Users dialog these additional customer account fields can also now be selected and exported with the User CSV spreadsheet file.
Functionality Affected: Search Users administration centre interface
Impact: Normal
TOT-4231 - Set Active setting against Product Review Profiles to allow or not allow product reviews to be raised and viewed for products
Within a content managed webpage that contains either Product Review Form and Product Review Listing areas, the contents of these areas where product reviews can be raised and seen or not is now controllable by setting an Active state against the Product Review Profile that a product belongs to. This makes it easier to control if product reviews should appear and raised for different collections of products that belong to each review profile.
Within the Administration Centre, under the Inventory menu, within the Product Reviews interface, upon clicking on the "Criteria and Options" button for a product review profile, within the "Product Review Profile Criteria and Options" dialog a check box labelled "Profile Is Active" has been added. If selected then on content managed web pages that contain Product Review Form and Product Review Listing areas, the product review form and review listing content will display in the areas for any products assigned to the profile. If the checkbox is unselected then for products assigned to the profile, the contents of these areas will not display, not allowing a user to raise a product review, nor see existing reviews against the product.
Functionality Affected: Product Review Form, Product Review Listing content managed web page areas, Product Reviews Administration Centre interface
Impact: Normal
TOT-4232 - Setting to control how customer account discount is applied to price-level and customer account product pricing
On a content managed website or within the Trade interface, for pricing calculated for a product, if a customer account has a discount percentage specifically applied to account in the discount field, there is now a setting that controls if account's discount is applied to all price-level pricing, customer account pricing, both or none of a product when displayed. This allows more flexibility on determining how a general account discount can be applied all applicable pricing to the account.
Within the Administration Centre, under the Inventory menu, within the Product Settings interface, a new setting has been added labelled "Apply Customer Account Discount To" that can be set to one of the following options:
None: If set then doesn't allow the customer account discount to be applied to any prices across all customer accounts and users
Price-Level Pricing: If set then allows the customer account discount to be applied only to each product's price-level unit price, and price-level volume discount prices, but not any customer account assigned prices.
Price-Level, Account Pricing: If set then allows the customer account discount to be applied to each product's price-level unit price, and price-level volume discount prices, as well customer account assigned prices (i.e contract prices, promotional prices, special prices).
Account Pricing: If set then allows the customer account discount to be applied only to customer account assigned prices (i.e contract prices, promotional prices, special prices), but not any price-level prices
For this setting to have any effect requires a customer account assigned to a user to have a discount not equal to 0 set. This can be done through the Customer Accounts Text File data import, or the Customer Accounts Connector data import, found under the Data menu, within the Data Imports interface of the Administration Centre.
Functionality Affected: Product pricing process, Product Settings Administration Centre interface
Impact: Normal
Bug Fixes
TOT-4046 - Incorrectly unable to add a product from a customer account quote record to an order if the product is out of stock but the user has permission to back order it
On a content managed web page containing a Customer Account Quote Listing area, if the area was displaying a quote that contains a product line, then if the user clicked on a button containing a $quote_order_continue_onclick$ hook that triggered the quote to be converted to an order, if the product was out of stock but the user's assigned inventory permission role contained a back order permission to allow the product to still be ordered, then the product was incorrectly not being imported into the order.
Now in a Customer Account Quote Listing area, if the area is displaying a quote that contains a product line, then if the user clicks on a button containing a $quote_order_continue_onclick$ hook that triggers the quote to be converted to an order, if the product was out of stock but the user's assigned inventory permission role contains a back order permissions to allow the product to still be ordered, then the product will be now included in the order.
Product's stock quantity is greater than the Stock None Quantity
The user is assigned to an inventory permission role with the "Backordered Check" permission set to "allow" for the product
The user is a Sales Representative and assigned to a facility permission role with the "Order out of stock products" permission set to "allow"
The "Check Stock" setting within the Administration Centre's Store menu, within the "Orders settings interface is not set to "BLOCK"
Functionality Affected: Customer Account Quote Listing content managed web page area
Impact: Normal
TOT-4191 - Product deal being removed for an existing product in the basket after another product is added and the 1st product is assigned to deals with offer types that are calculated across multiple products in basket
On either a content managed website or the Trade interface, if a user added a product to basket, and the product is assigned to a Product Deal that is applied, then if they add another product to basket, if the 1st product is assigned to a product deal that is assigned to an offer type that requires aggregating the quantities of products across the whole basket, if that deal's quantity threshold is not met, then the Add To Basket would incorrectly remove the deal.
Now it correctly will not remove the the product deal initially applied to the original product. Additionally the Add-To-Basket process will now recalculate deals for all products when the product is assigned to a deal within an offer type that requires aggregating the quantities of products across the whole basket. This ensures that deals are correctly applied or removed from products in the basket based on the overall basket quantity/price threshold being changed.
Functionality Affected: Product Add To Basket process
Impact: Normal
TOT-4205 - Incorrect default quantity input set within product records within Redeemable Deals Product Listing content managed webpage area for products assigned to deals containing offers that only apply over a specified quantity
On a content managed web page containing a Redeemable Deals Product Listing area if products are displayed in the area with the "Redeemable Deal Product Record" format, if the products are assigned to deals with the following offer types, then the quantity textbox hook $product_basket_quantity_input$ would not be set with a default quantity that contains the offer quantity plus 1.
Now the records will be set with a default quantity that contains the offer quantity plus 1. Previously these deal types were ignored from incrementing the deal quantity.
Buy Over X Product Quantity For Y Percent Off Freight Surcharge
Buy Over X Quantity Of Total Basket Products (Ex. Product Redeemed), Get Product For Price Y
Buy Over X Quantity Of Total Basket Products, Get Product For Price Y
Buy Over X Quantity Of Total Basket Products (Ex. Product Redeemed), Get Product For Y Percent Off Price
Buy Over X Quantity Of Total Basket Products, Get Product For Y Percent Off Price
Buy Over X Total Quantity Of Products In Deal, Get Product For Y Percent Off Price
Buy Over X Total Quantity Of Products In Deal, Get Product For Price Y
Buy Over X Quantity Of Products Belonging To The Same Parent Combination Product, Get Product For Y Percent Off Price
Buy Over X Quantity Of Products Belonging To The Same Parent Combination Product, Get Product For Price Y
Functionality Affected: Redeemable Deals Product Listing content managed web page area
Impact: Normal
TOT-4207 - Product Has Deals hooks incorrectly not initially indicating the default child combination product has deals available within the Product Detail content managed web page area
On a content managed page containing a Product Detail area, if the area was initially loading for a parent combination product, and a default child product was initially loaded, the area's "$product_deal_element_classname$" and "product_has_deals" hooks within its Product Detail format would not indicate if the child product has deals applicable to the user or not.
Now the "product_has_deals" hooks will indicate if the child product has deals applicable to the user or not. Previously the hooks would always indicate that the parent combination product would never have deals applied to it regardless of what a default child product has.
Functionality Affected: Product Detail content managed web page area
Impact: Normal
TOT-4213 - order_id hook within subject of Order Review Confirmation Email notification not being evaluated when email is sent to reviewing user
On content managed webpage containing a Order Checkout/Submission area, with the Order Details section if a user selected another user to review the order. Then after the order is submitted, the Order Review Confirmation Email notification that is being sent out to the reviewing incorrectly did not evaluate out the $order_id$ hook within the subject of the notification email if set.
Now after the order is submitted and is to be reviewed by a user, the Order Review Confirmation Email notification that is being sent out to the reviewing now correctly evaluates out the $order_id$ hook within the subject of the notification email if set, and shows the ID of the order being submitted.
Functionality Affected: Order Review Confirmation Email notification
Impact: Normal
TOT-4216 - Product Add To Basket process calculating incorrect price for existing products in the basket when existing products are assigned to deals with offer types that are calculated across multiple products in basket
Within either the Trade interface, or within the a content managed website, when a product was added to basket from any webpage areas that contain Product Add To Basket functionality, and the basket already had existing products already in the basket, then if those existing products in the basket are assigned to a product deal containing an deal offer that is based on the basket total, or based on multiple products already existing in the basket, then the price of the existing products deals was being incorrectly recalculated based on the quantities of each the products already in the basket, and deals applicable.
Now the price of the existing products deals will be correctly recalculated based on the quantities of each the products already in the basket, and deals applicable.
Functionality Affected: Product Add To Basket process
Impact: Normal
TOT-4220 - Requests incorrectly taking longer to load when Guest Regions feature is turned on when specific web parameters are set
If the Guest Regions feature was turned on, then when any content managed web pages were requested that contain certain parameter values within the URL request, this could cause the request to incorrectly take longer to load.
Now if the Guest Regions feature turned on, then when any content managed web pages are requested that contain certain parameter values within the URL request, this can no longer cause the request to incorrectly take longer to load, due to a request parameters being incorrectly processed by the database.
Functionality Affected: content managed web page load
Impact: Critical
TOT-4221 - Unable to export products from within the Product Search Administration Centre interface
Within the Administration Centre, under the Inventory menu, within the Product Search interface, after one or products was found and the Export button was clicked on, then from within the Export Products dialog after the Export button was pressed, a new browser tab is opened incorrectly showing a 400 error response with the message "Error: 'HTTP Status 400 – Bad Request'"
Now from the Product Search interface, after one or products has been found and the Export button is clicked on, then from within the Export Products dialog after the Export button is pressed it will allow the product data to be exported again. This issue was caused by the the list of product fields select not being correctly passed to the server. Note it only affected TOTECS projects running on the platform's newer web servers that implement tighter URL character standards.
Functionality Affected: Product Search administration centre interface
Impact: Normal
TOT-4222 - Unable to delete a user assigned to a User Subscription Category within the User Subscription Categories Administration Centre interface
After an administrator user logged into the Administration Centre interface, clicked on the Marketing menu button, then clicked on the User Subscription Categories menu item, within the User Subscription Categories interface after clicking on the View Users button, then within the Category Users table, clicking on the Remove button for a user record incorrectly did not remove the user from the User Subscription Category or their record from the Category Users table.
Now it correctly removes the user from the User Subscription Category and removes their record from the Category Users table.
Functionality Affected: User Subscription Categories administration centre interface
Impact: Normal
TOT-4225 - Products Connector data import fails to complete if multiple product records are being imported for the first time and contain the same product code
Within the Administration Centre, under the Data menu, within the Data Imports interface, from within Connector Imports tab, if the Products Connector data import was selected and run, and from the product records being imported contained multiple product records not previously imported before with the same product code, then the import failed to complete, and returns the error "An error occurred whilst trying to set up the data import : The data import has been aborted due to an error when processing record #2189. Please report this error. Technical Error: Null pointer expection thrown whilst processing record."
Now if the Products Connector data import is selected and run, and from the product records being imported contain multiple product records not previously imported before with the same product code, then the import will successfully handle processing records containing the same product codes. Additionally if the product code is empty the data will now ignore processing the product record.
Functionality Affected: Products Connector data import
Impact: Normal
TOT-4229 - Customer account pricing not displaying for products within Shopping List Products content managed web page areas if products were added to shopping list with no quantity specified
On a content managed website, after a user had logged into the website and navigated to a web page containing a Product Detail area. If the user chose to add the product to shopping list but not specify a quantity, then when they navigated to a content managed web page containing a Shopping List Products area displaying the products assigned to the shopping list. The pricing displayed for product records that had no quantity set was incorrectly not factoring in customer account pricing when determining the price to display.
Now if the user chooses to add the product to shopping list but not specify a quantity, then when they navigate to a content managed web page containing a Shopping List Products area displaying the products assigned to the shopping list. The pricing displayed for product records that had no quantity set now correctly factors in customer account pricing when determining the price to display. It does this calculating the price of the product as if it had a quantity of 1 set when it has a quantity of 0.
Functionality Affected: Shopping List Products content managed web page area
3rd May 2023
New Features
TOT-4132 - Address auto-complete using Google Places within Order Checkout/Submission, User Registration, User Details/Favourites/Orders content managed web page areas
On a content managed web page that contains either a Order Checkout/Submission area or a Guest Order Checkout/Submission area, there is now the ability to embed auto-complete search form inputs into the areas that allows the user to start typing the address that they are looking for when creating a new delivery or billing address, where the address search auto-complete will perform a look up using Google Places to return an auto-complete list of addresses for the user to choose from. Once an address is selected it will automatically populate each of the new address fields. This makes it quicker and easier for users to set new billing and delivery addresses against orders instead of having to fill out each address form field.
Additionally on a content managed web page that contains a User Registration area or a User Details/Favourites/Orders area, there is also the ability to embed address auto-complete search form inputs, that also allows an address to be found and automatically populate the address form fields for when a new address is being created.
For all of the address search auto-complete form inputs there are settings that control the fields that address data returned from Google's Places service is placed into. Additionally there is a setting that controls if the auto-complete should limit only finding addresses in selected number of countries (up to 5), or addresses across the whole world.
For each area there are also area settings that can disable or enable the address fields, allowing or not allowing the user to modify the address fields once loaded with the auto-complete. Disabling these fields may be desired to avoid users from being able to key invalid address data, that may lead to less delivery issues during dispatch processes.
In order to use this functionality it requires a Google account to be set up, and within Google's Console the account have API keys set up for its Places service. [https://developers.google.com/maps/documentation/places/web-service/get-api-key] Note that is the Location Finder feature is already being used in the TOTECS project, then the same account and API key can be used also for the address auto-complete functionality.
Within the Administration Centre, under the Stores menu, within the Location Settings interface an additional section labelled "Address Auto-Complete Searching" has been created and contains the following settings to configure the address search auto-complete:
Within the each of the content managed web page areas the following settings can be configured:
Order Checkout/Submission
Area Settings
Order Details Form Format Hooks:
Guest Order Checkout/Submission
Area Settings:
Guest Order Details Form Format Hooks:
User Registration
Area Settings
User Registration Format Hooks:
User Details/Favourites/Orders
Area Settings
User Detail Form Format Hooks:
With each of the area formats the input ID input needs to be placed within a text input's ID attribute, and the onfocus hook within the input's on onfocus attribute.
Functionality Affected: Order Checkout/Submission, Guest Order Checkout/Submission, User Registration, User Details/Favourites/Orders content managed web page areas
Impact: Normal
TOT-3824 - Integrate AfterPay payment type for ordering
There is now the ability for users to pay for orders within content managed websites using Afterpay's Buy Now Pay Later (BNPL) payment service.On a content managed webpage containing either Order Checkout/Submission or Guest Order Checkout/Submission areas, within the Order Detail format there ability to allow users to select Afterpay from the payment types list if the payment type is assigned against the customer account they are using to order with.
A new payment type called "After Pay" (AP) has been added to the list of payment types that can be assigned to each customer account either through the Customer Accounts text file data import, or via the Customer Accounts Connector data import, by including the AP value with the other assigned payments stored in a comma separated list.
Before the Afterpay payment type can be used, a Merchant account needs to be first applied for and created with Afterpay. Once approved, API credentials need to be requested from the API support staff. Once obtained, then within the Administration Centre, under the stores menu, within the Payments settings interface, a section labelled "After Pay" has been added that contains the following settings:
Once the Afterpay settings have been set and its payment type is assigned against a customer account, then when the user proceeds through the order checkout process, on the Order Details page the user will be able to choose the Afterpay payment type option. If selected then at the order review stage a request is made to Afterpay to set up a Checkout within their system, if confirmed by Afterpay the user can then proceed to the Order Review stage. If they then confirm and submit the order, the user will be redirected to Afterpay's website to complete the payment process. If the user cancels completing the payment process within Afterpay's website then they will be taken back to the order details page.
Once the user has completed payment steps within Afterpay's system the user will be redirected back to the content managed webpage area displaying the Order Checkout/Submission area. A check will then be made to Afterpay's Capture Payment API endpoint to confirm the payment transaction and check that that the payment was successfully approved or not. If successful then the user will see the "Order Submission Success Message" format will display in the area, or otherwise the "Order Submission Failure Message" format will display in the area, informing the user of the payment and order submission results. Optionally the user can be shown a link to redirect them back to the Order Details step if the payment fails, allowing them to choose another payment type, and try again in completing the ordering process.Notes:
Functionality Affected: Order Checkout/Submission, Guest Order Checkout/Submission content managed web page areas, Stores Settings Administration Centre interface
Impact: Normal
Improvements
TOT-4129 - Allow ampersand, hyphen and apostrophe characters to be saved within Organisation Name, Address Description, and Contact fields of user addresses being created and updated
On a content managed web page displaying either a Order Checkout/Submission, Guest Order Checkout/Submission, User Registration, or User details/Favourites/Orders area. as well as within the Administration Centre's User Details interface, and additionally within the Trade interface, when the user is either creating a new address or updating an existing address assigned directly to them, within an address's Organisation Name, Contact Name, and Address Description fields the user is now able to set hyphen, apostrophe and ampersand characters within each of the address fields. The user will no longer receive error messages if these characters are applied in the address fields.
This allows support for company and contact names that use hyphens, apostrophes, such as for conjoined names.
Functionality Affected: Order Checkout/Submission, Guest Order Checkout/Submission, User Registration, User details/Favourites/Orders content managed web page areas
Impact: Normal
TOT-4214 - Toggle to switch between 3 different product record layout views within content managed web page areas that list products using Product Search Record web page area format
On a content managed web pages containing areas types that list products using the Product Search Record format, for each area type there is now the ability to toggle between 3 different types of Product Search Record formats, that can display product records in different layouts (such as a grid, list or simplified view). This applies to the following areas:
Within the header and footer formats of each area type there are now format hooks that can toggle the area to change its Product Search Record format being used and cause the area to reload. Additionally there is now the ability to remember product search record being used across all types product listing areas by using a browser cookie to remember the user's preference. In these areas if the user paginates, changes the sorting of the area, reloads the webpage, or is refreshed from another area (such as from Product Search Form area types) this user preference will be used to display the associated product based format layout. Additionally in each area's settings there is now the ability to specify the Product Search Record format initially used when the area first loads, as well as control if the user can switch to any of the 3 product search formats. In each of the areas the settings can be set:
In the following content managed web page areas, the following hooks have added the area's header and footer formats. The format hooks are:
The format hooks are available for the following areas and formats:
Because the user's format layout selection in one of these areas is saved as a preference in a cookie can then control the format used in the other areas, it is highly recommended to use the same types of layouts in the Product Search Record, Product Search Record 2, and Product Search Record 3 formats. For example if the first format shows a grid layout, the second a listing layout, and the 3rd a tall layout, then these layouts should be used across all the above areas that allow the user to change the layout selection. Otherwise if no done then if the user may choose a layout in one area, that doesn't look the same in another area, causing the user having to keep switching layouts that may be annoying to them.
Functionality Affected: Related Products Listing,Product Search Results Listing,Product Combination,Category Listing,Model Product,Customer Account Contract Detail,User Details/Favourites/Orders,User Viewed Products,Customer Account Invoice Line Report content managed web page areas
Impact: Normal
TOT-4215 - Add Serpstatbot, Seekport, Zoominfo crawlers and GoBuster to the list of known crawlers/scrapers within the Project Traffic Statistics Administration Centre
For website traffic making webpage requests for a project, there is now the ability to detect when Serpstatbot, Zoominfo and Seekport crawlers are making a request, as well as GoBuster scraper.
Within the Administration Centre interface, under the Statistics menu, in the Project Traffic Statistics interface, under the "Requests By Search Engines, Crawlers and Software" pie graph now can show requests that are made by the Serpstatbot, Seekport and Zoominfo crawlers, as well as GoBuster. Additionally these crawlers have been added to the TOTECS platform's list of Bad Bots that prevent future requests reach projects that are blocking these bots.
Functionality Affected: Project Traffic Statistics administration centre interface
Impact: Normal
TOT-4223 - Show and export additional customer account fields in Search Users Administration Centre interface
Within the Administration Centre interface, under the Users menu, within the Search Users interface, in the Search Users table's Custom Data Field column, additional customer account fields have been added that allow data for the following fields to display:
Additionally if the user clicks on the Export Users button, within the Export Users dialog these additional customer account fields can also now be selected and exported with the User CSV spreadsheet file.
Functionality Affected: Search Users administration centre interface
Impact: Normal
TOT-4231 - Set Active setting against Product Review Profiles to allow or not allow product reviews to be raised and viewed for products
Within a content managed webpage that contains either Product Review Form and Product Review Listing areas, the contents of these areas where product reviews can be raised and seen or not is now controllable by setting an Active state against the Product Review Profile that a product belongs to. This makes it easier to control if product reviews should appear and raised for different collections of products that belong to each review profile.
Within the Administration Centre, under the Inventory menu, within the Product Reviews interface, upon clicking on the "Criteria and Options" button for a product review profile, within the "Product Review Profile Criteria and Options" dialog a check box labelled "Profile Is Active" has been added. If selected then on content managed web pages that contain Product Review Form and Product Review Listing areas, the product review form and review listing content will display in the areas for any products assigned to the profile. If the checkbox is unselected then for products assigned to the profile, the contents of these areas will not display, not allowing a user to raise a product review, nor see existing reviews against the product.
Functionality Affected: Product Review Form, Product Review Listing content managed web page areas, Product Reviews Administration Centre interface
Impact: Normal
TOT-4232 - Setting to control how customer account discount is applied to price-level and customer account product pricing
On a content managed website or within the Trade interface, for pricing calculated for a product, if a customer account has a discount percentage specifically applied to account in the discount field, there is now a setting that controls if account's discount is applied to all price-level pricing, customer account pricing, both or none of a product when displayed. This allows more flexibility on determining how a general account discount can be applied all applicable pricing to the account.
Within the Administration Centre, under the Inventory menu, within the Product Settings interface, a new setting has been added labelled "Apply Customer Account Discount To" that can be set to one of the following options:
Functionality Affected: Product pricing process, Product Settings Administration Centre interface
Impact: Normal
Bug Fixes
TOT-4046 - Incorrectly unable to add a product from a customer account quote record to an order if the product is out of stock but the user has permission to back order it
On a content managed web page containing a Customer Account Quote Listing area, if the area was displaying a quote that contains a product line, then if the user clicked on a button containing a $quote_order_continue_onclick$ hook that triggered the quote to be converted to an order, if the product was out of stock but the user's assigned inventory permission role contained a back order permission to allow the product to still be ordered, then the product was incorrectly not being imported into the order.
Now in a Customer Account Quote Listing area, if the area is displaying a quote that contains a product line, then if the user clicks on a button containing a $quote_order_continue_onclick$ hook that triggers the quote to be converted to an order, if the product was out of stock but the user's assigned inventory permission role contains a back order permissions to allow the product to still be ordered, then the product will be now included in the order.
Impact: Normal
TOT-4191 - Product deal being removed for an existing product in the basket after another product is added and the 1st product is assigned to deals with offer types that are calculated across multiple products in basket
On either a content managed website or the Trade interface, if a user added a product to basket, and the product is assigned to a Product Deal that is applied, then if they add another product to basket, if the 1st product is assigned to a product deal that is assigned to an offer type that requires aggregating the quantities of products across the whole basket, if that deal's quantity threshold is not met, then the Add To Basket would incorrectly remove the deal.
Now it correctly will not remove the the product deal initially applied to the original product. Additionally the Add-To-Basket process will now recalculate deals for all products when the product is assigned to a deal within an offer type that requires aggregating the quantities of products across the whole basket. This ensures that deals are correctly applied or removed from products in the basket based on the overall basket quantity/price threshold being changed.
Functionality Affected: Product Add To Basket process
Impact: Normal
TOT-4205 - Incorrect default quantity input set within product records within Redeemable Deals Product Listing content managed webpage area for products assigned to deals containing offers that only apply over a specified quantity
On a content managed web page containing a Redeemable Deals Product Listing area if products are displayed in the area with the "Redeemable Deal Product Record" format, if the products are assigned to deals with the following offer types, then the quantity textbox hook $product_basket_quantity_input$ would not be set with a default quantity that contains the offer quantity plus 1.
Now the records will be set with a default quantity that contains the offer quantity plus 1. Previously these deal types were ignored from incrementing the deal quantity.
Functionality Affected: Redeemable Deals Product Listing content managed web page area
Impact: Normal
TOT-4207 - Product Has Deals hooks incorrectly not initially indicating the default child combination product has deals available within the Product Detail content managed web page area
On a content managed page containing a Product Detail area, if the area was initially loading for a parent combination product, and a default child product was initially loaded, the area's "$product_deal_element_classname$" and "product_has_deals" hooks within its Product Detail format would not indicate if the child product has deals applicable to the user or not.
Now the "product_has_deals" hooks will indicate if the child product has deals applicable to the user or not. Previously the hooks would always indicate that the parent combination product would never have deals applied to it regardless of what a default child product has.
Functionality Affected: Product Detail content managed web page area
Impact: Normal
TOT-4213 - order_id hook within subject of Order Review Confirmation Email notification not being evaluated when email is sent to reviewing user
On content managed webpage containing a Order Checkout/Submission area, with the Order Details section if a user selected another user to review the order. Then after the order is submitted, the Order Review Confirmation Email notification that is being sent out to the reviewing incorrectly did not evaluate out the $order_id$ hook within the subject of the notification email if set.
Now after the order is submitted and is to be reviewed by a user, the Order Review Confirmation Email notification that is being sent out to the reviewing now correctly evaluates out the $order_id$ hook within the subject of the notification email if set, and shows the ID of the order being submitted.
Functionality Affected: Order Review Confirmation Email notification
Impact: Normal
TOT-4216 - Product Add To Basket process calculating incorrect price for existing products in the basket when existing products are assigned to deals with offer types that are calculated across multiple products in basket
Within either the Trade interface, or within the a content managed website, when a product was added to basket from any webpage areas that contain Product Add To Basket functionality, and the basket already had existing products already in the basket, then if those existing products in the basket are assigned to a product deal containing an deal offer that is based on the basket total, or based on multiple products already existing in the basket, then the price of the existing products deals was being incorrectly recalculated based on the quantities of each the products already in the basket, and deals applicable.
Now the price of the existing products deals will be correctly recalculated based on the quantities of each the products already in the basket, and deals applicable.
Functionality Affected: Product Add To Basket process
Impact: Normal
TOT-4220 - Requests incorrectly taking longer to load when Guest Regions feature is turned on when specific web parameters are set
If the Guest Regions feature was turned on, then when any content managed web pages were requested that contain certain parameter values within the URL request, this could cause the request to incorrectly take longer to load.
Now if the Guest Regions feature turned on, then when any content managed web pages are requested that contain certain parameter values within the URL request, this can no longer cause the request to incorrectly take longer to load, due to a request parameters being incorrectly processed by the database.
Functionality Affected: content managed web page load
Impact: Critical
TOT-4221 - Unable to export products from within the Product Search Administration Centre interface
Within the Administration Centre, under the Inventory menu, within the Product Search interface, after one or products was found and the Export button was clicked on, then from within the Export Products dialog after the Export button was pressed, a new browser tab is opened incorrectly showing a 400 error response with the message "Error: 'HTTP Status 400 – Bad Request'"
Now from the Product Search interface, after one or products has been found and the Export button is clicked on, then from within the Export Products dialog after the Export button is pressed it will allow the product data to be exported again. This issue was caused by the the list of product fields select not being correctly passed to the server. Note it only affected TOTECS projects running on the platform's newer web servers that implement tighter URL character standards.
Functionality Affected: Product Search administration centre interface
Impact: Normal
TOT-4222 - Unable to delete a user assigned to a User Subscription Category within the User Subscription Categories Administration Centre interface
After an administrator user logged into the Administration Centre interface, clicked on the Marketing menu button, then clicked on the User Subscription Categories menu item, within the User Subscription Categories interface after clicking on the View Users button, then within the Category Users table, clicking on the Remove button for a user record incorrectly did not remove the user from the User Subscription Category or their record from the Category Users table.
Now it correctly removes the user from the User Subscription Category and removes their record from the Category Users table.
Functionality Affected: User Subscription Categories administration centre interface
Impact: Normal
TOT-4225 - Products Connector data import fails to complete if multiple product records are being imported for the first time and contain the same product code
Within the Administration Centre, under the Data menu, within the Data Imports interface, from within Connector Imports tab, if the Products Connector data import was selected and run, and from the product records being imported contained multiple product records not previously imported before with the same product code, then the import failed to complete, and returns the error "An error occurred whilst trying to set up the data import : The data import has been aborted due to an error when processing record #2189. Please report this error. Technical Error: Null pointer expection thrown whilst processing record."
Now if the Products Connector data import is selected and run, and from the product records being imported contain multiple product records not previously imported before with the same product code, then the import will successfully handle processing records containing the same product codes. Additionally if the product code is empty the data will now ignore processing the product record.
Functionality Affected: Products Connector data import
Impact: Normal
TOT-4229 - Customer account pricing not displaying for products within Shopping List Products content managed web page areas if products were added to shopping list with no quantity specified
On a content managed website, after a user had logged into the website and navigated to a web page containing a Product Detail area. If the user chose to add the product to shopping list but not specify a quantity, then when they navigated to a content managed web page containing a Shopping List Products area displaying the products assigned to the shopping list. The pricing displayed for product records that had no quantity set was incorrectly not factoring in customer account pricing when determining the price to display.
Now if the user chooses to add the product to shopping list but not specify a quantity, then when they navigate to a content managed web page containing a Shopping List Products area displaying the products assigned to the shopping list. The pricing displayed for product records that had no quantity set now correctly factors in customer account pricing when determining the price to display. It does this calculating the price of the product as if it had a quantity of 1 set when it has a quantity of 0.
Functionality Affected: Shopping List Products content managed web page area
Impact: Normal