Team members can now be assigned to content pages across the Operations Portal using customizable assignment types, helping teams stay organized and aligned.
The assignee feature provides a streamlined way to manage content responsibilities by allowing users to assign team members to specific pages for activities such as content creation, review, and follow-up tasks. Users can select an assignment type from a configurable dropdown menu, with values that can be customized from the Settings page to match organizational workflows. Adding an assignee is simple: select an assignment type, then search for and choose a team member from the suggestion list.
This functionality is available across multiple areas of the portal, including Pages, Page Drafts, FAQ Details, and FAQ Draft Details screens. The Assignees section appears consistently in each location and supports adding multiple assignees to a single page. Assignees can be removed at any time by clicking the X icon next to the entry.
This feature improves visibility into content ownership and supports better coordination across teams involved in content management.
This feature is now available in the Operations Portal across all supported content page types. For more details, please refer to the instructional video walkthrough.
https://youtu.be/oQsejlCMRQk
Tickets
KOD-11715: Kodaris - Digital Payment Application
KOD-25041: AI PIM project
KOD-26692: Scheduled Payments not Processing Created From Ticket 27213
KOD-26949: Warehouse on pickUp option tweaks
Regression Tests
Case 1
Search for a product.
Add product to cart using pickup method.
Navigate to cart page.
Verify warehouse subheader shows correct warehouse for the item.
Change selected warehouse/address in header.
Verify warehouse subheader still shows the original warehouse (not the new selected one).
Verify fulfillment field warehouse matches the subheader.
Add new product to cart with pickup.
Verify new product uses the new selected warehouse.
Verify old products still use the original warehouse.
Tests
Case 1
Search for a product.
Verify the pickup option shows "Ship to [Selected Warehouse City] ".
Verify delivery option renders correctly.
Navigate to the product details page.
Verify the pickup option shows "Ship to [Selected Warehouse City] ".
Change the customer selected warehouse.
Verify fulfillment field is updated with the new warehouse citay.
KOD-28221: One Time Auth Created From Ticket 38172
KOD-28615: Update AplusErpLogicIntegrator to handle taxes properly for Avalara based on A+ ERP
Regression Tests
Case 1
Make sure both useAplusPricingEngineV2 and useAplusLogicIntegratorV2 are disabled.
Steps:
Create an order.
Change delivery address.
Add line items.
Expected: The new tax logic should NOT run; items should remain in their default state.
No ADDRESS_TAXABLE_TYPE , IS_ORDER_TAXABLE settings created.
Test this both creating an order in the operations portal and on the customer side using the cart.
Case 2
useAplusLogicIntegratorV2 = 1.
Company with example warehouseCode = "WH1".
Address with example warehouseCode = "WH2".
Steps:
Create order.
Change delivery address to address with WH2.
Expected:
Order items get warehouse = "WH2".
Order gets warehouseCode = "WH2".
WHSE order setting updated.
Can also check that nothing is updated when we do the same thing and the setting is set to 0.
Tests
Test 1
useAplusLogicIntegratorV2 = 1.
For all tests we need the following settings:
useAplusLogicIntegratorV2 = 1 and
useAplusPricingEngineV2 = 1
Create/find a Company with taxableType = "n"
Steps:
Create an order for this company.
Add items to the order.
Change the delivery address.
Expected: All order items should have taxed = false.
Company with taxableType = "y" or blank.
Steps:
Create an order for this company.
Add items to the order.
Change the delivery address.
Expected: Order items should have taxed = true
Case 2
Company with taxableType = "y" (taxable)
CompanyAddress with taxableType = "n" (exempt)
Steps:
Create an order for this company.
Change delivery address to the tax-exempt address.
Check order items.
Expected: All order items should have taxed = false (address overrides company).
Company with taxableType = "n" (exempt).
CompanyAddress with taxableType = "y" (taxable).
Steps:
Create an order for this company.
Change delivery address to the taxable address.
Check order items.
Expected: All order items should have taxed = false.
For both of these cases we should have
ADDRESS_TAXABLE_TYPE - should contain the address's taxableType value.
IS_ORDER_TAXABLE - should be "y" or "n" based on company/address logic.
Case 3
Add a new line item to the order via the admin portal.
Check the new item's taxed status (it should match the rest of the order items).
Case 4
Customer account with multiple addresses,
One address tax-exempt (taxableType = "n"),
One address taxable (taxableType = "y"),
Steps:
Log in as customer,
Add items to cart,
Change delivery address to tax-exempt address,
Check cart items' tax status,
Change delivery address to taxable address,
Check cart items' tax status again,
Expected: Items should update their taxed status based on the selected address.
KOD-28844: Guest Pricing Mismatch Between Website and ERP
They should match the three examples that APA sent over.
Can generate the templates on the example orders APA gave and compare the placing and data to be sure it's correct.
KOD-29151: Replatform - Filter products by 'In Stock' in My Warehouse on PLPs
Regression Tests
Case 1
Confirm that the search or category page loads without issues and that the in stock filter is present on that page.
Case 2
Confirm that for guests the in stock filter is displayed as in stock in store, and that it is also displayed for logged in users.
Case 3
Confirm that when we select yes, the search URL includes the query parameter inStockAtWarehouse= with the code of the selected warehouse.
Case 4
Confirm that we can change the selected warehouse in the aside menu.
Tests
Case 1
Confirm that if we change the warehouse while the in stock filter is enabled, the inStockAtWarehouse query parameter is removed from the URL and the in stock filter is no longer selected.
KOD-29171: Update Shipping Options
KOD-29183: PO Number Not Found
KOD-29198: AP: PO Number Not Found
KOD-29201: Kodaris - Update Default Store Input in Customer Portal
Regression Tests
Case 1
Login to the customer portal.
Go to the Profile tab.
Change value for Default store field.
Data should be changed.
Make sure if autocomplete input haven’t property openOnClick , it should work as before, (drop down shows only if we type some text).
Tests
Case 1
Login to the customer portal.
Go to the Profile tab.
Clear value for Default store field.
Click on empty Default store input.
List with options should appear.
KOD-29202: AP: PO Number Not Found
KOD-29211: Switch ERP based on warehouse selection after splitting orders (multicono)
KOD-29229: Make “Login for Pricing” Clickable for Guests
Regression Tests
Case 1
Open the product list (list view and grid view) and any product details page as a guest user and verify they look correct.
Case 2
Open the product list (list view and grid view) and any product details page as a logged-in user and verify they look correct.
Tests
Case 1
As a guest user, open the Product List and find a product without a price.
Verify that the label “Login for Price” is displayed:
On the product list (in list view and grid view).
On the product details page.
Case 2
Click on the “Login for the Price” label and confirm that it redirects you to the login page:
From the product list page.
From the product details page.
KOD-29260: Implementation - Price issue
KOD-29268: Kodaris Mappings - PIM Exports
Tests
Case 1
We should do the pattern test for each exporter. Here’s step-by-step:
Open User Scripts page, find the appropriate script document.
Run it, check in the platform logs that there’s no errors.
Open company with the code kodarissystem. Open its internal files.
Check the generated document, compare it with the data from the customer.
KOD-29291: OA: New Customer Parser Setup
KOD-29293: OA: New Customer Parser Setup
KOD-29305: Switch cono
KOD-29311: Move order templates to the operations portal
Regression Tests
Case 1
Regular order:
Verify that the order template looks good on the customer side and the order email/pdf looks good.
Based on different conditionals check next:
When order status is Invoiced or Paid, the label on the right top corner of the template will be Invoice, in other cases it will be Order.
When order status is Paid/Shipped/Invoiced, text for subtotal will be Shipped Subtotal, in other cases it will be Subtotal.
If the order has tracking numbers, we are showing them.
Case 2
Cash quote.
There are two options that can be used to find Cash Quotes.
You can search on orders screen using field Order Type Details and value should be Cash Quotes.
Navigating to the Cash Quotes screen.
Need to be tested:
Verify that the order template looks good on the customer side and the order email/pdf looks good. You should see the ‘Quote’ label on the right top corner of the template and Expiration Date.
Case 3
Navigate to quotes screen:
You should see next text on templates:
Please note that the quote's expiration date, pricing, and lead times are subject to change based on manufacturing updates.
Case 4
Test that orders that have product configurator items still looks good on templates and you can see all options that were chosen.
Case 5
Test that thank you page still look good.
You will need to place an order and then you will see the thank you page.
KOD-29334: Check on Restriction in Attribute Codes
Regression Tests
Case 1
Go to Products > Filter Categories.
Create a new FacetGroup (code: fg_test_group , name: "Test Group").
Go to PIM > Attributes > Import > Create Update.
Upload attached test_attribute_with_special_symbols.csv and run import.
Go to Events, wait for event processing and verify import failed with validation error "Code should not contain unsafe characters".
Go to PIM > Attributes and verify that attribute was not created.
Case 2
Ensure an attribute exists (from previous tests).
Go to PIM > Attributes.
Find and delete some existing attributes.
Verify that it was successfully deleted.
Tests
Case 1
Go to Products > Filter Categories.
Create a new FacetGroup (code: fg_test_group , name: "Test Group").
Go to PIM > Attributes > Import > Create Update.
Upload attached test_attributes.csv and run import.
Go to Events, wait for event processing and verify no errors occurred.
Go to PIM > Attributes and verify that attributes were imported successfully.
Case 2
Ensure Test Case 1 was completed.
Go to PIM > Attributes > Import > Create Update.
Upload attached test_attributes.csv again and run import
Go to Events, wait for event processing and verify no errors occurred and attributes were updated successfully.
KOD-29370: Check on Importing Files from Export
KOD-29375: Line References not always with correct line
Regression Tests
Case 1
Check that when you push your order to ERP, it still push to ERP and you can see OrderChange event under system events.
Case 2
Check that when you push your return to ERP, it still push to ERP and you can see OrderChange event under system events.
Case 3
Check that order templates still looks good.
Tests
Case 1
Check that when order items have user3 field populated we are sending it in right spot.
Сase 2
Check that order templates we are using weblinenumber when order is pushed to ERP.
Case 3
When the order has a KCoreCharge item and is already released to ERP, check that the line order is correct.
KOD-29385: Add Assignees to Content Pages - UX
Regression Tests
Case 1
Make sure the following screens don’t break, that the styles look correct and that you are able to modify the details:
Page details screen
Page Draft details screen
FAQ details screen
FAQ Draft details screen
Tests
Case 1
For this test, we need to go to CMS - Pages - Details screen.
On the right side menu, you should see a new Assignees section.
We will test this section to make sure everything works as expected.
We will add assignees to the page, switching between different type.
Make sure they are added correctly.
Also make sure that you can delete them.
You should also be able to add an assignee with no assignment type specified.
Finally, if you try to add an assignee that’s already been added, you should not be able to add it again.
Case 2
We will repeat Case 1 on the Page Drafts screen.
Case 3
We will repeat Case 1 on the FAQs screen.
Note: in this screen, the Assignees section is not in the sidebar, but in the column of fields already there.
Case 4
We will repeat Case 1 on the FAQ Drafts screen.
Note: in this screen, the Assignees section is not in the sidebar, but in the column of fields already there.
Case 5
For this test, we will go to the Settings screen and look for contentPagesAssignmentTypes.
We will test adding more options to this setting and make sure you are able to select them in the dropdown in previously tested pages.
KOD-29409: Rules Engine - Automation
KOD-29434: Kodaris - Update Quote Internal Files from using global endpoints
Tests
Case 1
Go to Quotes → click into a quote → internal files → (make sure there are internal files listed) → click the view icon and make sure it is using the specific quote API: /api/system/quote/{quoteID}/internalFile/{internalFileID}/view
Case 2
Now download the file → make sure it is also now using the specific quote API: /api/system/quote/{quoteID}/internalFile/{internalFileID}/view?download=true
If you don’t see the call in the network tab, you can hover over the download icon and see the new url/api being called on the bottom of the screen.
Case 3
Go to companies → click into one → Opportunities → click on a quote → internal files → for the view and download, it should be using the quote specific API from above.
Case 4
Go to companies → click into one → Quotes → click on one → internal files → for the view and download, it should be using the quote specific API from above
If you don’t see the call in the network tab, you can hover over the download icon and see the new URL/API being called on the bottom of the screen.
Case 5
Go Opportunities → click on a quote → internal files → for the view and download, it should be using the quote specific API from above.
If you don’t see the call in the network tab, you can hover over the download icon and see the new URL/API being called on the bottom of the screen.
KOD-29435: Kodaris - Update Template Suggesters with Limited Fields endpoint
KOD-29436: Upgrade Mappings
KOD-29444: Add documentIdentified logic to parser
KOD-29445: Add documentIdentified logic to parser
KOD-29449: Configurator Pricing
Regression Tests
Case 1
Check that the category page appears correctly for both guests and customers.
Check that the user page appears correctly for both guests and customers.
Check that the price of regular products (with a type other than Configurator) is displayed correctly.
Check that when a user adds a regular product (with a type other than Configurator) to the cart, the price in the cart is displayed correctly.
Check that there are no price-related errors on the product details page or in the cart.
Tests
Case 1
Verify that the user's price for "Configurator" products is not displayed on the category page.
Verify that the price for "Configurator" products is not displayed on the product details page.
Verify that the user's price for the “configuratorVariant” product is displayed on the product details page.
Verify that the price is displayed correctly when adding a “configuratorVariant” product to the cart.
KOD-29456: Punchout issues
KOD-29465: Implementation - Parser Issue
KOD-29479: Kodaris - Create Server-Side Export for Inventory Conversions
KOD-29481: Problem downloading French order acknowledgements and invoices
KOD-29485: Credit Application - Required & Not Required fields update
KOD-29486: Add UX for superseded product messaging
Regression Tests
Case 1
Go to any product page either by direct link or searching on a term and clicking on an item in the results page.
No info messaging should be displayed regarding your search.
Tests
Case 1
Search on a product code that has been superseded.
You should be redirected to the supersede product and an info message should display saying something like: This product has been replaced by xxxx.
KOD-29490: Kodaris - Fields Getting Set on Credit App Companies
Regression Tests
Case 1
Create a company when the companyDefaultAddApiValues setting exists.
Ensure setting companyDefaultAddApiValues exists with valid JSON.
If not, create it using this sample as a setting value: _
Create a company when the companyDefaultAddApiValues setting is empty/missing.
Ensure setting companyDefaultAddApiValues does NOT exist or is empty.
Create a new company via Operations Portal.
Verify company created successfully.
Verify no errors occur during company creation.
KOD-29497: Ship to: Drop down options formatting
Tests
Case 1
Make sure in the cart the shipping address input list has format: Company Name, Street Address, City.
Case 2
Make sure in the header the shipping address input list has format: Company Name, Street Address, City.
KOD-29501: Price Book Downloads
Tests
Case 1
Go to the “Order Templates” screen (which are catalogs).
Select a catalog from the Company-Wide Order Templates.
In the Actions dropdown, check if there is an option to Export Price List.
You should only see that option if the catalog has results and the setting "allowCustomerPriceBookDownload" is set to true on the operations portal.
Change those conditions to make sure the option only appears in those cases.
Case 2
Now, we will click the button to Export Price List.
A new modal should appear indicating that the exporting is in progress and that an email will be sent.
Wait for the email and click on the link. You should be taken back to the website with a new modal, asking you to select between CSV and NDJSON for the format and entering a fileName.
Finally, you can download the file.
Test with different combinations for the format and fileName and make sure the document is downloaded following that.
KOD-29508: Home Page - Footer - Branches Info changes
Regression Tests
Case 1
Check that footer still loads fine for English and French languages.
Tests
Case 1
For Montreal work hours we changed the time to be Monday to Thursday - 6:00am to 4:30pm Friday - 6:00am to 4:00pm in footer.
Also, check that this change applies for French.
KOD-29510: Change Sign In Screen Messaging
KOD-29518: Filterable fields on the Rebate Screen
KOD-29519: Fix First Name being assigned to Last Name on assignments
Tests
Case 1
Navigate to the Operations Portal > Tickets > select a Ticket.
Open debugger.
Since the current UX does not display name and last name, you need to use a debugger, so open browser’s debugger.
Add a new employee assignment for an administrator with distinct first/last names.
Verify that name and last name are properly set within the network tab.
Repeat the same steps with Customer Assignments instead of Employee Assignments if applicable.
Case 2
Repeat the same steps in Case 1, but navigate to Company Addresses > select a Company address.
KOD-29521: Add the ability to customize template
KOD-29530: Add contentDraftView and contentDraftEdit roles to view the FAQ Drafts page
Regression Tests
Case 1
For each of the following roles, confirm that the user can open the FAQ Drafts page when the user has only one role at a time:
superuser
administrator
contentView
contentEdit
Verify that the FAQ Drafts page cannot be opened unless the user has at least one of the roles listed above.
Tests
Case 1
For each of the following roles, try to open the FAQ Drafts page when the user has only one role at a time and does not have any of these roles:
superuser
administrator
contentView
contentEdit
Roles to test:
contentDraftView
contentDraftEdit
KOD-29531: Kodaris.com – Update Summit Page
KOD-29535:Integration
KOD-29537: Report issues and fixes
KOD-29536: Credit Hold Banner Update
Regression Tests
Case 1
Check that the header layout looks good to the user.
Check that the cart page layout looks good to the user.
Check that there are no errors in the console.
Tests
Case 1
Verify that ALERT banners appear in the header and cart for Accounts on Hold.
Verify that the background and text color of ALERT banners match the "Shop" button.
Verify that banners appear correctly on both desktop and mobile devices.
KOD-29542: Units of Measure / Units of Conversion Issues
Regression Tests
Case 1
Check that you can still add normal products to cart without issues.
Case 2
On products with units, check that you can toggle between the two, the price on the product is updated, and you can add products with different units selected to your cart.
Case 3
On products with minimum order qty, interval order qty, or maximum qty, check that these constraints still work when you try to add the product to the cart.
E.g. if a product has an interval restriction setup of 6, you should only be able to add to cart if your qty is 6, 12, 18… etc.
Tests
Case 1
Check on a product that has different units and interval order qty setup.
On the base unit (set as unitSell on the product) the interval order qty constraints should be working.
If you switch to a different unit on the product, you shouldn’t get the interval order qty restriction when trying to add the product to your cart.