Create personal and company catalogs from an order
Your customers can now create both personal and company catalogs from an order in the Customer Portal. The process to do this is similar to creating lists from an existing order on an order’s details page. Once a new catalog is created, you will be able to assign a name to the catalog. You can also select a parent catalog and provide a short description if needed.
Check out the video below to see how to create catalogs from an order:
https://youtu.be/sD7XgTdzqBY
Leaving a ticket comment now updates the ticket last modified date
When a customer or an employee leaves a comment on a ticket, it will show a timestamp to indicate when the comment was added. You can now filter and sort the ticketing screen by the last modified date so that you can easily view tickets that were most recently updated. This will allow your team and customers to be able to better manage and stay up-to-date with the newest ticket comments.
See how to leverage this new feature in the video below:
https://youtu.be/41-I5qyuXUg
Commerce
FAQs at checkout are editable via point-and-click functionality
The FAQ section on your website’s checkout page is now fully editable using point-and-click functionality! In the past, these fields had to be added and updated via the website’s templates, but now they are easily accessible through your website’s Themer panel.
Watch this video to see how to edit the FAQ fields on your checkout page:
https://www.youtube.com/watch?v=xoEbm2ZgFj4
Tickets
KOD-16335: Create useVersionedGutenbergBuilds setting by default
KOD-20553: Configuration - Prepare screenshots for Customer App Listing
KOD-20661: Support uploading files in the cart
KOD-20686: Add the ability to add items to list from an order in the customer portal
Regression Tests
Case 1
Navigate to the order detail page. In the Add List dropdown menu, select the option to add a personal list.
Case 2
Navigate to the order detail page. In the Add List dropdown menu, select the option to add a company list.
Tests
Case 1
We need to navigate to the order detail page. In the Add list dropdown menu, select the option to add a personal catalog. After this, we can select the available customer categories as the parent list (by default, the parent catalog will be null); specify the name and description.
Case 2
We need to navigate to the order detail page. In the Add list dropdown menu, select the option to add a company catalog. After this, we can select the available company categories as the parent list (by default, the parent catalog will be null); specify the name and description.
KOD-20721: ERP configuration
KOD-20914: Recently Viewed Products
KOD-20934: Short Pay - unable to clear out short pay selection
Regression Tests
Case 1
For this test, we need to go to > Open Invoices > Scroll Horizontally to end > Column “Amount to Pay“.
Make sure that the different options of pay reason and the amount to pay work correctly.
Tests
Case 1
For this test, we need to go to > Open Invoices > Scroll Horizontally to end > Column “Amount to Pay“.
When the status is different than “Pending”. It should show the option “None“ with the Combobox to allow the user to put reason of the option as default.
KOD-20981: Shipping Methods
Regression Tests
Case 1
Test that we still can see shipping methods if there are any.
Case 2
Test that delivery and payments page works as usual.
Tests
Case 1
Test that if we don't have any shipping methods, we will not see shipping method panel, and the purchase order panel will have the top border.
KOD-21049: Update Last modified date for the tickets
KOD-21055: Fulfillment Solutions Page
KOD-21084: Adding active and incactive flag to cross references
Regression Tests
Case 1
Make sure that the cross reference screen in the operation portal continues to work as expected and we can create/edit product cross references.
Case 2
With useSearchPreprocessing disabled, navigate to commerce website and search for products making sure it works as expected. No product cross reference should appear since that setting is disabled.
Then, we have to validate the search for a cross reference product is working as expected (Only while the ProductCrossReference is active, which it will be since it was added as active as default).
Preconditions:
1 - enable useSearchPreprocessing.
2 - Have a product reference associate to a active product.
3 - Find the product using the alternative code after logging in.
Case 3
Now endpoint /api/user/product/substitutes should return only productCrossReference ACTIVE (For the first time, all will be active, so make sure that the endpoint still returns the expected products).
It is only available for ErpLogicEngine = InforCSD so make sure to have that setting modified.
Then send a altProductCode which has some products associated and the productCrossRerence Type must be 'S'.
Response (2 products):
{
"success": true,
"code": 200,
"messages": [],
"errors": [],
"data": [
{
"dtoType": "Customer",
"customFields": {},
"productID": 20,
"code": "hacksaw",
"seoCode": "seo-hacksaw",
"code2": null,
"name": "generic-hacksaw",
"smallImage": null,
"mediumImage": null,
"largeImage": null,
"mediaFileLinks": [],
"attributes": null,
"settings": null,
"url": null
},
{
"dtoType": "Customer",
"customFields": {},
"productID": 18,
"code": "lasagna",
"seoCode": "seo-pasta-lasagna",
"code2": null,
"name": "lasagna",
"mediaFileLinks": [],
"attributes": null,
"settings": null,
"url": null
}
],
"requestId": "LNUBAV-20240820112644"
}
Then, modify active = false in one of the product in the response and make sure that it doesn’t appear anymore.
Case 4
Endpoint /api/user/product/crossReferenceProductsByTypes should work as expected. If I understood correctly, it was supposed to be implemented here: So check same regression tests.
Make sure the setting erpLogicEngine is set to ‘InforCSD’.
Case 5
Delete endpoint /api/account/productCrossReference/{companyID}/{productCrossReferenceID} should still work as expected (Will only delete the crossReference if it is active = true, if not, you will get an error due to not finding the productCrossReference)
Case 6
Make sure this endpoint /api/account/productCrossReference/{companyID}/list continues to work as expected. It should bring you active productCrossReference. Besides, since the active field was added as part of possible filters in the SearchParams, you could modify this behavior by asking for inactive records using this query request:
{
"page": 0,
"size": 10,
"sortBy": "id",
"filterFields": [
{
"name": "active",
"not": false,
"operation": "IS",
"value": "false"
}
]
}
Then, use the following endpoints to create:
/api/account/productCrossReference/{companyID} Making sure that ‘active’ flag is TRUE as default (You can check it in the operations portal after creating it).
In this section, ‘Your Part’ should appear and makes a request to the endpoint mentioned.
Case 7
If we have a productCrossRerence of type ‘web_replacement’ then that product should be added to the cart instead of the altProductCode.
Then if we added the ‘Drill01’ product we should get ‘lasagna’ as the replaced product.
Part of feature test: If that was inactive, it shouldn’t replace the product ‘Drill01’.
Tests
Case 1
When reindexing a product in solr, the field ‘altCodes’ is populated with the alternative code from its ProductCrossReference only for those which have type ‘I'.
For example:
Since I have 2 productCrossReference active to my product 'hammer’ then after reindex my altCode will have both productCrossREference alternative product codes:
Then, try changing the ‘active’ flag to any of the productCrossReference and make a reindex in the product (You can update any field. If not try with seoCode).
Validate that the altCode in the search product list doesn’t contain the inactive product cross references.
Case 2
Validate new field ‘active’ is in ProductCrossReference (You can inspect network tab) and verify also that all of the products have the active in TRUE as default the first time. (You can use endpoint described below to confirm that there is no product cross reference inactive).
Use swagger endpoints to change the field to false or true.
Besides, now the /list endpoint allows filter and sort by active.
So, you can use swagger and hit endpoint: /api/system/productCrossReference/list
With request:
{
"page": 0,
"size": 10,
"sortBy": "active",
"sortDirection": "desc",
"filterFields": [
{
"name": "active",
"not": false,
"operation": "IS",
"value": "false"
}
]
}
Note that the value is ‘FALSE’. This will be useful to check that after deploying you should not see any results.
Case 3
Now, search for product cross reference in customer side (commerce site) to ensure it works only for those that are active.
Preconditions:
1 - enable useSearchPreprocessing.
2 - Have an active product reference associate to a active product.
3 - Find the product using the alternative code once logged in.
Then, try changing the cross reference product active field to ‘false' and reload the page. It shouldn’t find anything.
KOD-21090: Graphics for Blog Article
KOD-21113: Scope breaking out Search Rule types into individual pages
Regression Tests
Case 1
For this test, we need to go to Search Rules. We need to make sure that everything still works as expected.
We can start with the Show / Hide columns button. Then we can test the editing of the cells, the filtering, make sure it is sortable when available and the redirect as well.
Tests
Case 1
For this test, we need to go to Search - Beta.
We are going to test every tab for this case.
We can start with the Show / Hide columns button. Then we can test the editing of the cells, the filtering, make sure it is sortable when available and the redirect to the details page as well.
Case 2
For this test we need to go to Search - Beta.
We are going to test every tab for this case.
We are going to create a new Search Rule on every tab. We need to make sure you can only create Search Rules that relate to the tab you’re on.
You can see that in “Search Rules” the “action” field is filled automatically.
In Synonyms, that’s the case for ruleType field, as well as in Replacements.
Finally, in category redirects, that’s the case for the action, ruleType, pattern and searchType.
We need to verify you can’t see rules from a different screen.
Case 3
For this test we need to go to Search - Beta > Click on the arrow on any Search Rule to go to Details screen.
Now, we are going to test that the fields update the information properly.
We can go back to the table to make sure the new information is there.
KOD-21115: Implementation - Mobile App
KOD-21164: Direct ship icon updates needed
Regression Tests
Case 1
Employee Portal → Order Details screen
Expected behavior:
It worked as expected.
Tests
Case 1
Employee Portal → Order Details screen
Order contains direct products only.
User splits the order.
Expected behavior:
Order was split successfully.
The Push to Vendor button appeared without page reload.
Case 2
Employee Portal → Order Details screen
Order contains direct and non-direct products.
User splits the order.
Expected behaviour:
Order was split successfully.
User was redirected to Back Orders tab.
The Push to Vendor button hasn't appeared.
Case 3
Employee Portal → Order Details screen
Order contains non-direct products only.
User splits the order.
Expected behavior:
Order was not split.
The Push to Vendor button did not appear without page reload.
KOD-21167: Configure pricing
KOD-21189: Design - Acquisitions Page
KOD-21212: Updated syncCompany / CSD flow
KOD-21222: Design - Header
KOD-21223: Design - Contact Page
KOD-21224: Design - Careers Page
KOD-21225: Design - People Page
KOD-21236: Pricing issue
KOD-21242: Design - Privacy Policy
KOD-21244: Design - Quality Page
KOD-21243: Design - Terms & Conditions
KOD-21248: Cart update
KOD-21262: Breadcrumbs do not appear
KOD-21274: Schedule monthly statements to be sent out on a specific day
Regression Tests
Case 1
Test payment statements can still be sent as expected in MonthlyIntervalJob.
Tests
Case 1
Test newly added endpoint.
/api/system/setting/{settingKey}/monthlyScheduleConfig for configuring monthlyStatementsSchedule setting.
Case 2
Test running payment statements in HourlyIntervalJob.
Case 3
Test running payment statements in HourlyIntervalJob.
KOD-21279: New host URL for Test Server
KOD-21313: system update 1
KOD-21322: system update 2
KOD-21324: ARIS System
KOD-21331: Sales Order Email Automation
KOD-21342: Create a video on how to work with dynamic FAQs
KOD-21402: Addon and cash discount updates to invoices
KOD-21415: Add default store per Customer Field
KOD-21419: Create New Banner Image
KOD-21429: Test taxes
KOD-21430: Inventory for main website
KOD-21431: AP automation parsers
KOD-21435: Pricing not Calculating Correctly for Box/Case Without Price Record
KOD-21436: Welcome email
KOD-21437: Fix close icon
KOD-21441: Re-sync Order Discounts
KOD-21443: Website Branding & Auth Flows
KOD-21446: Customer portal
KOD-21445: Commerce as a logged in user
KOD-21444: Commerce as a public user
KOD-21447: Make Google SSO work Globally
KOD-21450: Add InforCSDV4 to priceEngines Setting
KOD-21455: Add creditManagerCode to details page
Regression Tests
Case 1
Go to the companies detail screen in the operations portal and make sure the page loads properly.
Tests
Case 1
Go to the companies detail screen in the operations portal → notice the new field of creditManagerCode → update the code → click out of the box and reload the page → notice that updated code is still present.
KOD-21457: Update Integration to 'Finish' the order in CSD
KOD-21472: Fix setting list bug for interceptors
KOD-21481: Fix close icon
Regression Tests
Case 1
Check that we can still open and close the register popup.
Case 2
Check that you can still login.
Tests
Case 1
Check that the close icon looks and acts normal.
KOD-21482: New Field Labels for Sequence 2 of Checkout (Billing and Shipping Address)
KOD-21484: Cross reference setting update
Regression Tests
Case 1
Check cross reference type product indexing.
First, check setting: addCrossReferenceTypeToIndex and whether it changed to mediumValue type. If you have an empty value, just add value: “P“.
Then add cross reference record with type: “P“.
Updat some fields in selected product to trigger solr indexing process.
Copy altProductCode and try to search on employee/customer side.
Case 2
Check cross reference type product indexing (listenerUtils side).
Add cross reference records with type: “P“.
KOD-21483: Auto Populate Data for Authenticated User.
Regression Tests
Case 1
Make sure that we can still place an order as a guest and logged in customers.
Tests
Case 1
For logged in customers - all of the billing fields should be readonly and should not have validation on them. For guests, the ux should remain the same as it was before.