Version 0.15.0
a) New Features
4966 Products (and related) import
- Use the new import UI to import product and product-related data.
- Import includes: products, product sections, product groups, product banners, product notices.
5410 Ensure ExtractPurchaseService only processes fulfilled items
- Open items on a Kensium transaction (items that will be fulfilled later) should not result in generated points.
- These open items will generate points when they are fulfilled in the ERP.
5440, 5536 Setup Guide Foundation
- Add Setup Guide that walks the user through the configuration process.
- The Setup Guide detects any settings that are missing, and will capture them if necessary.
- The Setup Guide should be run right after a POS tenant is created. It can also be run at any time after installation – including after version upgrades.
- A new link on the admin home page detect whether the Guide needs to be run, and if there are outstanding diagnostic warnings or errors.
- The current setup steps are:
- Organization Settings capture the organization ID, tenant role, and store ID (if applicable) for the installation.
- Tenant Features step ensures that features require by the tenant role are enabled.
- POS Install step captures the POS database version that POS configuration is applied to (this replaces the POS Install options that were previously in POS settings).
- POS Settings step captures POS settings.
- Context-sensitive help has been added for each setup step.
- We will be adding more setup steps in the future. This includes:
- Steps for Cloud Tenant configuration.
- Steps for provisioning AWS.
- Current (manual) operations to configure these things should still be performed for this release.
- Installation Support documentation has been partially updated.
- Member-specific functionality has been moved from the Customers module to a new Member module. This change should be transparent.
Action Needed: Support should:
- Run the Setup Guide on all deployed POS server environments.
- Ensure that the first step in particular – the Organization Settings – are configured correctly.
*If updating an existing install, this value MUST match the organization ID / client ID that was used to previously provision AWS services.- For QA: ensure that the Member feature is enabled after the Setup Guide is run.
5496 Media Import
- Add a new guided import for uploading media (image) files.
- Files should be arranged and uploaded in a ZIP file.
- Instructions are available in the media upload page.
5497 Gift Card Import
- Add the ability to upload new gift cards.
- This function replaces the OnLoyalty Bulk Import gift card functionality.
5502 Show code values in admin listings
- Content types that have CodePart values should display the code value as the content item display text.
- These values are shown in Admin Listings (summary view) for the content items.
- The content items that are affected are:
- Product Sections
- Product Groups
- Product Banners
- Product Notices
- Locations
- Location Groups
- Membership Levels
- Automatic migrations will update the content item display text values for existing data.
QA Action Needed:
- Ensure that these code values are not displayed in the Cart App and Order Pad mobile apps.
- The mobile app should display title properties – not the content item display text.
5507 Remove 1000-file limit for AWS S3 folders
-
POS has been updated to use a new API to get folder and file information, which supports more than 1000 files and folders within an individual folder.
-
The change includes a fix where nested folder listings were not working correctly.
QA Action Needed:
- Media library is showing all files as expected (check subfolders as well)
- Try adding a subfolder with more than a 1000 images, and confirm that all images are displayed correctly
- Look for “off by one” errors, e.g. where we might be missing one or two images
- Media fields in content items (e.g. products) are still working as expected
- Try exporting all files using Orchard recipes – and confirm that all files should be exported
5653 Add List View to Order Pad / Cart App
- Users can now view more products in a compact, list-view format, in addition to the standard image grid view.
b) Bug Fixes
5510 Orderpad quantity check prevents creation of store quote when corporate/cloud quantity <= 0
- See 0.14.1 hotfix for details.
5545 ImportRefNo db migration: ensure field does not exist before creating it
- See 0.14.2 hotfix for details.
- When generating a purchase record from a member, we set the Member ID field value but don’t set Customer ID.
- Customer ID is now set to the customer ID of the member record matching Member ID.
5676 OnLoyalty admin console: Gift Card search and paging fixes
- Quick Search no longer works for gift card searches, as we no longer use the special OnLoyalty QR gift card code
- Instead, users can now search for cards directly within the Gift Cards list page.
- Also fixed paging and performance issues in the Gift Cards, Gift Card Transactions, and Customers pages.
c) Other
5498 Update Pipelines, Setup & Docker builders for RELEASE mode
- POS will now be delivered in one installer program – there are no longer separate builds for store, corporate and cloud builds.
- You now use the Setup Guide to indicate the the tenant role, and thus the features that are enabled.
5530 Support database transaction rollbacks in Importer Processors
- We now use a separate database transaction to record import state.
- Unhandled errors during import processing will now roll back pending data updates and inserts.
- If an import data row requires multiple database operations to process, either all of those operations are performed, or none of the operations.
- Via a separate transaction, the import job state is handled correctly, regardless of whether the import data was rolled back.
- No additional QA testing is needed; it was thoroughly tested at the developer level.
5669 Fix clutter in admin console pages
- Re-organized several admin pages with tabs.
- Affected pages: Members, Membership Levels, Locations, Events
Known Issues
6013 Auto-wake / keep-alive for tenants (keep background tasks active)
-
A tenant’s background tasks will stop running if the ASP.NET worker processor is terminated/recycled;
-
Termination may occur due to a lack of incoming HTTP requests.
-
Recycling may occur due to configurable options on the application pool, manual recycling or cleanup after a resource-bound activity
- We’ve noticed this happens often right after a POS sync operation downloads sales
- This probably happens due to its current implementation, which is unzipping recipe files.
-
Development tried the following:
-
Adding OrchardCore_BackgroundService.ShellWarmup = true setting to the appsettings.json file.
-
Changing the following IIS application pool advanced settings:
- Set StartMode to AlwaysRunning.
- Set Idle Timeout (minutes) to 0.
-
Changing the following IIS web site advanced setting:
- Set Preload Enabled to True.
-
-
These changes successfully prevented the background tasks stopping due to idle (no requests).
-
However, the background tasks did not restart after the application pool was recycyled.
- In particular, a POS sync operation would stop all subsequent background tasks from running.
-
Until this issue is fixed, QA & Services must perform the following workaround.
QA & Services:
There are three solutions to this problem.
a) Upgrade the client to POS Server 5.1.0 or later.
- This is the preferred solution.
b) Manually deploy the Monitor Service.
- If you are not able to update the client to the latest POS version, you may be able to manually deploy the Monitor service by copying it from an POS 5.1.0 or later install to the previous install.
- See manual Monitor installation for more information.
c) Using curl
Alternatively, you must perform a work-around to ensure that each tenant’s background services are executed.
Use Windows Task Scheduler to define a scheduled job that periodically loads each tenant’s home page to ensure that the tenant is awake. For each tenant, create the following task:
- Command: curl –url “http://path.to.tenant.com”
- Time: every minute
- Ensure that interactive login is not required
Known Issues
6013 Auto-wake / keep-alive for tenants (keep background tasks active)
-
A tenant’s background tasks will stop running if the ASP.NET worker processor is terminated/recycled;
-
Termination may occur due to a lack of incoming HTTP requests.
-
Recycling may occur due to configurable options on the application pool, manual recycling or cleanup after a resource-bound activity
- We’ve noticed this happens often right after a POS sync operation downloads sales
- This probably happens due to its current implementation, which is unzipping recipe files.
-
Development tried the following:
-
Adding OrchardCore_BackgroundService.ShellWarmup = true setting to the appsettings.json file.
-
Changing the following IIS application pool advanced settings:
- Set StartMode to AlwaysRunning.
- Set Idle Timeout (minutes) to 0.
-
Changing the following IIS web site advanced setting:
- Set Preload Enabled to True.
-
-
These changes successfully prevented the background tasks stopping due to idle (no requests).
-
However, the background tasks did not restart after the application pool was recycyled.
- In particular, a POS sync operation would stop all subsequent background tasks from running.
-
Until this issue is fixed, QA & Services must perform the following workaround.
QA & Services: You must perform a work-around to ensure that each tenant’s background services are executed.
Use Windows Task Scheduler to define a scheduled job that periodically loads each tenant’s home page to ensure that the tenant is awake. For each tenant, create the following task:
- Command: curl –url “http://path.to.tenant.com”
- Time: every minute
- Ensure that interactive login is not required