Users can now export complete price lists from any company catalog within the Commerce site. This streamlined process is accessed through a new "Export Price List" option in the catalog Actions menu. After initiating the export, users receive an email notification when their price list is ready to download.
The exported price lists can be downloaded in either CSV or NDJSON format, with customizable filenames for easy organization. Each export contains comprehensive product information including Code, Name, Price Book Price, Price Book Unit Price, Price Book Running Date, and other relevant fields - providing a complete data set for analysis, sharing, or record-keeping.
This feature is available now for all Commerce site users with appropriate catalog access permissions. For a step-by-step demonstration of the export process, please refer to our tutorial video.
https://youtu.be/ZLk5ItUS2Fo
Operations Portal
Create and Update Cross References Directly from Orders and Quotes
Users can now create and update product cross references directly from the Items tab within orders and quotes. By clicking the three-dot menu next to any item and selecting "Manage Cross Reference," you can instantly establish new cross references or modify existing ones without leaving your current workflow.
This feature streamlines cross reference management by allowing you to specify a product code and unit conversion directly from the order interface. Once submitted, the item code immediately updates to reflect the new reference.
Available now in the latest release. For a detailed walkthrough, please refer to our demonstration video.
https://youtu.be/--VZEpubkY0
Export Vendor Data from Operations Portal
Users can now export vendor information directly from the Data tab within the Operations Portal. This new functionality allows you to generate CSV files of your vendor data with just a few clicks, streamlining data management and reporting processes.
The export feature intelligently captures your current view configuration, including any active filters and visible columns. Navigate to the Vendors screen, access the Data tab, and use the File > Export option to save your vendor data. This means you can customize exactly what information gets exported by first filtering records and enabling specific columns in the interface.
This vendor export feature is now available in the latest version of the Operations Portal. For a step-by-step walkthrough, please refer to the tutorial video.
https://youtu.be/SjUU6vGPJak
Filter Open Invoices by Date Range
Users can now filter open invoices by specific date ranges in the Operations Portal. This new "Between" filter option allows for precise timeline filtering when viewing company invoices.
To use this feature, navigate to the Company Details screen and select the Open Invoices tab. Click the filter icon under the Invoice Date column and choose the "Between" option from the dropdown menu. Simply set your desired start and end dates, then click Apply to update the invoice list with only those that fall within your specified timeframe.
This date range functionality helps streamline invoice management by allowing users to focus on relevant time periods, making it easier to locate specific invoices during financial reviews or when addressing customer inquiries.
Available now in the Operations Portal for all users. For a step-by-step demonstration, please refer to our latest tutorial video on using the invoice date range filter.
https://youtu.be/n_2uCxoItCg
Tickets
KOD-13322: Kodaris - Create a Time Tracking App
Tests:
Case 1
Go to the tickets screen.
Open any ticket.
Press 3 dots on the top.
Press start timer.
Disallow permissions.
You should see a message, that will address you to go to the application settings in order to change notifications permissions.
Case 2
You should be able to start timer in 2 ways:
1:
Go to the tickets screen.
Open any ticket (an activity).
Press 3 dots on the top and press “Track time”.
2:
Open Time Logs screen.
Press the “+” sign on the right bottom.
Press “Track time” on the top.
Select the ticket you want to track time into.
Press Start.
Note: you should be able to run only one ticket at a time.
Allow notification permissions via settings or dialog.
You should see a new notification pop up.
While the timer is running, you should see a blue rectangle with ticket info. You should be able to stop time via the stop button. If you press on the ticket itself, you should be taken to the time-logs screen of that ticket. This blue rectangle must be shown on:
Dashboard screen.
Particular ticket → on the top of the time-logs section.
For both android and iOS you should be able to utilize 1 action with this notification: stop timer.
Within this case test 2 possibilities:
When the app is opened or in the memory of the phone: on stop notification via dialog, the app should be shown again if not shown yet. The dialog to add a time log should be shown to the user with time that was counted by dialog (in minutes, seconds are hidden).
When the app was fully closed by the user: on stop notification, the app should start opening with going through a full auto-login process. On the auto-login process completed, you should be redirected to Dashboard screen and dialog to add time log should open.
Within a time-dialog window opened via notification: you must make sure that any changes you make to the time must affect the time that gets saved.
Note: saved time can you find under your ticket on time logs screen. it might time 1-2 minutes to appear there
Case 3
You should be able to manually log time in 2 ways:
1:
Go to the tickets screen.
Open any ticket (not an activity).
Press 3 dots on the top and press “Log Time”
2:
Open Time Logs screen.
Press the “+” sign on the right bottom.
Here you will need to enter a ticket to log time on.
In the dialog, enter all required fields.
Press save. Confirm that your time was saved.
Note: saved time can you find under your ticket on time logs screen. it might time 1-2 minutes to appear there.
Case 4
You should be able to pull up log details in 2 ways:
1:
Go to the tickets screen.
Open any ticket (not an activity).
Go to the Time Logs tab.
2:
Open burger menu.
Open Time Logs.
Please confirm that everything works in the same way, as in all other tables (for example, tickets table).
Case 5
You should be able to pull up log details in 2 ways:
1:
Go to the tickets screen.
Open any ticket (not an activity).
Go to the Time Logs tab.
Open any time log for this ticket.
2:
Open Time Logs screen.
Open any time log for some tickets.
Test editing of the values. Once you stop changing them, they should be auto-saved.
Test Details section too. Currently, it has only 1 field: employee.
Once you’ve changed it, the time log should be updated on the list of time logs in 1-2 minutes (requires reload). That’s ok if the list of time logs does not change right away.
KOD-19023: Upload Primary Images to Products in Bulk
KOD-20911: Create update for template names in operations portal
KOD-22140: Items' total is not negative when quantity is negative
KOD-22186: Improve Deleting orders
KOD-24937: StoreRoom Integration - CSD APIs Created From Ticket 17038
KOD-25278: Convert all settings with Job to Opportunity - Add leadStatuses
KOD-25528: Create server side export-import for Vendors data screen
KOD-25550: Separate notification event processing into mini transactions
KOD-25654: Add Ability to Schedule Pages
Tests
Case 1
For each of one these endpoints:
POST /api/user/content/contentPage/{contentPageID}/comment/list
POST /api/user/content/contentPage/{contentPageID}/comment
GET /api/user/content/post/{code}
GET /api/user/content/page/{code}
You should provide a valid contentPageID/contentPageCode and test the steps 3-6 in this ticket description, regarding startDate, endDate and if it is logged employee or not. If an employee logged or today is between startDate and endDate returns 200, if not returns 404.
Case 2
Do the same tests with this endpoint: POST /api/system/website/sitemap
You can choose to download the file and check the content file sitemap.
If an employee is logged it shows its contentPagesUrls in the sitemap.
KOD-25746: Public Order Fulfillment algorithm data and updates
KOD-25756: Open invoice screen filter between dates Created From Ticket 23275
Regression Tests
Case 1
All grid features should work as expected.
Tests
Case 1
All date column filters should work as expected.
Case 2
All non-date column filters should work as expected.
KOD-26007: Issue with xlookup formula in excel to csv parsing flow
KOD-26025: Payment requests to sync to ERP Created From Ticket 24084
KOD-26055: Update evalEjsFile to include script params as input
KOD-26075: Add SFTP API integration controller endpoints and serverside APIs
KOD-26102: Request a Quote products on homepage
Regression Tests
Case 1
Confirm that the homepage loads without errors.
Confirm that the homepage displays the sliders "Featured Products", "Popular Items", and "New Arrivals", each showing products with the text "Log in for Pricing and Inventory". However, when logged into the customer portal, the actual price should be displayed.
Case 2
Confirm that product pages for both quote and regular products render correctly.
Case 3
Confirm that the product page loads without any issues.
Confirm that on the product page we can see sliders at the bottom with products.
Case 4
Confirm that products in the sliders are displayed correctly for both logged-in and non-logged-in users.
Case 5
Confirm that on the search or category page, we can see a slider with recently viewed products.
Tests
Case 1
Confirm that when logged in, if a product has productDisplayType === "CQuote", the "Request a Quote" message is shown instead of the price.
Case 2
Confirm that if a product is a quote type, then in the slider it will not display price, promotions, SKUs, add to cart button, or quantity input — instead, it will have a "View Options" button that redirects the user to the product page.
KOD-26105: Create Non-Advertised Pages on customer Website for Employee-Facing Content
KOD-26118: Scanning Customer Mobile App/Serialized Equipment
KOD-26119: Issue when importing ticket > product list > products
KOD-26132: Product page updates
Regression Tests
Case 1
On the Asset > Products screen check that adding a product to the cart works correctly.
On the Asset > Products screen check that adding a product to an asset works correctly.
On the My Products screen check that adding a product to the cart works correctly.
Check that the Asset > Products and My Products pages look good (including on mobile screens).
Check that there are no errors in the console.
Tests
Case 1
On the Asset > Products screen and My Products screen, check that when adding/changing the quantity of a product or removing a product from the cart, the quantity changes in the mini-cart on the product card.
Check that the Last purchased on functionality works correctly on the Asset > Products screen and My Products pages.
Check that there is a throbber when loading data on the Asset and My Products page.
Check that the Your Part # functionality exists on the product card for the Assets and My Products pages.
Check that the product detail page for Assets and My Products looks good on both desktop and mobile devices.
KOD-26134: Tracking Products to Cart in CSD
KOD-26151: Move Pricebook UX updates to demo site repo
KOD-26181: Incorrect error when adding an inactive product to an order in the operation portal
Regression Tests
Case 1
Validate that when try to add an inactive product to an order and the setting enableAddOnlyActiveProductsToOrder is disabled the product can be added anyways.
Make sure setting enableAddOnlyActiveProductsToOrder is disabled.
Go to an order and try to add an inactive product item.
The product was added successfully.
Tests
Case 1
Validate that when try to add an inactive product to an order and the setting enableAddOnlyActiveProductsToOrder is enabled the message “This product is inactive and cannot be added to the order“ and the response is in the standard json format used across the platform.
Make sure setting enableAddOnlyActiveProductsToOrder is enabled.
Go to an order and try to add an inactive product item.
A red banner with text "This product is inactive and cannot be added to the order" must appear at the bottom left corner.
KOD-26236: Implementation - Email configuration
KOD-26239: Email Configuration
KOD-26242: Implementation - Email Configuration
KOD-26251: Add price list download functionality to the recently ordered catalog on website
KOD-26302: Able to refresh grid even though logged out issue
Regression Tests
Case 1
Open the Operations Portal and Sign in with Google.
It should redirect the page.
Your user should remain logged in.
Open a page with a grid, like Pricing.
Now open another page in a new tab, like Home.
In the newly opened tab, click on Logout.
Come back to the first tab, and click the button with a reload icon on the right to reload the grid.
It should expire the current user session and display a modal popup with "Your session has expired" message, followed by a login form right after.
Sign in with Google again in this login form.
It should redirect the page.
Your user should remain logged in, and everything should work normally.
Case 2
Log in the Operations Portal using Username and Password.
Open a page with a grid, like Pricing.
Now open another page in a new tab, like Home.
In the newly opened tab, click on Logout.
Come back to the first tab, and click the button with a reload icon on the right to reload the grid.
It should expire the current user session and display a modal popup with "Your session has expired" message, followed by a login form right after.
Log in using Username and Password again in this login form.
Your user should be logged in, and everything should work normally.
Case 3
Open the Operations Portal and Sign in with Google.
It should redirect the page.
Your user should remain logged in after five minutes or more, and no expired session popup modal should be displayed.
Tests
Case 1
Log in the Operations Portal.
Open a page with a grid, like Pricing.
Now open another page in a new tab, like Home.
In the newly opened tab, click on Logout.
Come back to the first tab, and click the button with a reload icon on the right to reload the grid.
It should expire the current user session and display a modal popup with "Your session has expired" message, followed by a login form right after.
KOD-26316: DDAV3 Created From Ticket 26141
KOD-26329: Configure Order Automation
KOD-26340: Create streamlined company catalog view prioritizing screen space
KOD-26349: Customer Created by CSD Empty and Not Syncing
KOD-26350: Allow sending options directly to mass delete job
KOD-26362: Do not release VMI/CMI orders which will have an extra1 of Customer Warehouse Order
KOD-26394: Place notes on order global
Regression Tests
Case 1
Confirm that the order details are visible in CSD.
Tests
Case 1
Confirm that the order notes are being added specifically to the global order in CSD, and not to anything else.
KOD-26423: Auto-invoicing rollout Created From Ticket 26888
KOD-26430: Screen issue Created From Ticket 27244
KOD-26441: Add filtering options to system events code column
Regression Tests
Case 1
Go to the operations portal. Go to the System Events screen. Check if the table displayed as expected.
Tests
Case 1
Go to the operations portal. Go to the System Events screen. Check if the Code column is filterable and filtering works as expected.
KOD-26446: Create a fraud request mapping from CSD extension payload
KOD-26455: Restore function to jump to last page in pagination in operations portal
Regression Tests
Case 1
Please check that the pagination on data tables works without errors, and the information about the number of positions is displayed correctly. By clicking on the buttons (arrows), the pages switch correctly.
Tests
Case 1
Go to the operations portal, Open any page with a data table.
Check that there are new buttons (Go to last/first page).
Check that they are working as expected.
KOD-26457: Order Item Grid - Update UX for creating and updating cross references
Regression Tests
Case 1
Perform all tests on order items and quote items tabs.
On the Order Items and Quote Items.
Find order for testing in the comments.
Make sure tabs are not broken.
Make sure you are able to add/remove, edit data in editable columns, use buttons per each line item row.
Make sure you can import order or quote with no issues.
Make sure you can drill into order (quote) items details tabs.
Case 2
Perform all tests on order items and quote items tabs.
Create Cross Reference per order (quote) item.
If the item code is NONSTOCK and it has generatedCrossReference on the note of customerProductCode - then you should be able to get to the Create Cross Reference dialog.
This dialog should act the same way as before the updates, it should have product autocomplete and Unit Conversion field to set Unit Standard on the newly created Cross reference.
Make sure a new cross reference with unit standard was created when using this dialog.
Tests
Case 1
Perform all tests on order items and quote items tabs.
Find order for testing in the comments.
Import this order.
Make sure after import, the grid works with no issues.
Check details button per each line item in the grid
Make sure it has 1 option: Manage Cross Reference button. It should be clickable in any case.
If this item is NONSTOCK and has customerProductCode on it or on the note it has generatedCrossReference - Create Cross Reference dialog should be available.
On click you should be able to see the dialog with the header.
Create Cross Reference and Product autocomplete where you can select any product for which you want to create cross reference. And Unit Conversion (optional) field where you can set Unit Standard on the newly created cross reference.
Set both, open Cross References tab. Find your newly created cross reference. Check its details. Make sure its Unit Standard is the same you have specified in the dialog.
Case 2
In the order items grid find the item which code is not NONSTOCK, and you have just created a cross reference for it.
Click it’s more button. Make sure for this product the Create Cross Reference button is disabled.
Check Cross References grid, filter by Type equals “c“ or “web“ and if the item has customerProductCode, paste that at first in the altProductCode, if there are no results found or there is no customerProductCode, check note - generatedCrossReference - is there is at least one result found,
When you click on Manage Cross Reference button
Update Cross Reference dialog should be available.
Make sure you see the dialog with header Update Cross Reference.
First field: Alternative Product Code (disabled) - that should be the one that you have found in the cross reference table
Second Field: Unit Conversion (if exists) - should be prefilled.
User should be able to clear out existing Unit Conversion value and set new ones.
If the user hasn’t changed the Unit Conversion value and will try to submit the same value as it was previously - form should not be submitted.
Type some value in the Unit Conversion field.
Press Submit.
Go to the Cross references grid. Find that Cross reference, open details. Make sure Unit Standard was updated to the value you have specified in the dialog.
Case 3
For items whose code is not NONSTOCK and they don’t have customerProductCode or generatedCrossReference on the note.
Click Manage Cross References button.
Make sure at first you can see the Loading… message.
After loading is complete make sure you can see message:
This Item doesn't have an associated Cross Reference.
And you cannot see the submit button.
The only available button should be the Cancel button - to close the dialog.
KOD-26486: Generic company table
KOD-26488: Convert Form Submissions into Trackable Tickets
KOD-26493: Notes at Checkout for Payment Screen
Regression Tests
Case 1
For this test, we will go to the commerce site, add a product to the cart and follow the checkout process.
Make sure all of the screens load properly and that nothing breaks, especially when working with the Order Notes.
Tests
Case 1
For this test, we will go to the commerce site, add a product to the cart and add the minimum order total of $35.00.
We will add some order notes while in the Your Order tab.
When we get to the Delivery & Payment tab, you should see a new “Order Notes (optional)” accordion.
The accordion should be empty even if you already added notes previously.
We will add some extra notes here.
If we go back to the Your Order tab and change the notes content, that should also be okay.
Going back to the Delivery & Payment tab without reloading should keep the extra notes you added.
Now, we will place the order. You should be able to see in the Order PDF and on the operations portal that the extra notes were added to the global notes field after a line break from the first notes.
Note: you should test this checking out with:
Request a Quote.
Place Order with PO.
Place Order with Card (new and existing).
Case 2
For this test, we will repeat the steps of Case 1, but we will add notes only in the Your Order tab.
We will not add extra notes for this test.
The notes should be added to the global notes successfully.
Case 3
For this test, we will repeat the steps of Case 1, but we will add extra notes only in the Delivery & Payment tab.
We will not add order notes in the Your Order tab.
The extra notes should be added to the global notes successfully.
KOD-26509: Implementation- Refresh Cart
Regression Tests
Case 1
Confirm that the cart page loads without errors.
Confirm that the product page loads without errors and we can add the product to the cart with different quantities.
Case 2
When a product is added to the cart, we can see its information (total price, price per unit, and description).
Tests
Case 1
Confirm that if the product page shows that the price changes depending on the quantity, the correct price is displayed accordingly.
Confirm that if the product has the same price regardless of the quantity, the price does not change.
KOD-26528: Compare CSD 2ship call with Kodaris for the same order
KOD-26531: POs Created while on Credit Hold
KOD-26539: Customer parser request From Ticket 27667
KOD-26540: Setup for all filters to be closed by default
Tests
Case 1
Perform a product search (*).
Verify that all filters are collapsed by default.
Verify that the user can expand and collapse filters, and that this state persists after a page reload.
Select some filters.
Clear session storage.
Reload the page and ensure that all filters are collapsed by default except for those that are selected.
Collapse and expand filters again, reload the page, and verify that everything works correctly.
KOD-26541: CSD sync back to Kodaris
KOD-26548: Order Automation - Purchase Order parser
KOD-26550: Order Automation - Purchase Order parser
KOD-26561: Customer Parser request From Ticket 27615
KOD-26569: Parser issue Created From Ticket 26310
KOD-26570: Parser From Ticket 27883
KOD-26571: Parser From Ticket 27887
KOD-26576: Resources - Name Duplication
KOD-26583: New Customer Order To Map
KOD-26588: Install templates into new site
KOD-26601: Sign In Page Button Created From Ticket 28075
Regression Tests
Case 1
Confirm that the login page loads without any errors.
Case 2
Confirm that we are able to log in from the login page.
Tests
Case 1
Confirm that the login page includes a link to the registration page, and that this link points to the same destination as the corresponding button in the login popover in the header.
Case 2
If customerRegistrationEnabled setting is set to 0, the registration link will be content/register.
Otherwise, the registration link defaults to /spcu/signup.
KOD-26604: See Store Details missing from West locations
KOD-26605: Add Field to ShippingMethod - Default Delivery Method
KOD-26606: Add Field to ShippingMethod - Default Delivery Method - UX
Regression Tests
Case 1
Check that the shipping method screen still looks good.
Case 2
Check that the shipping method details page still looks good.
Case 3
Check that on the shipping method screen basic CRUD operation is still working (create, update, delete).
Case 4
Check that on shipping method details you can update any field and updated fields still present.
Tests
Case 1
Check that on the shipping method screen you can see the "Default Delivery Method" field. It’s a Boolean field and by default it’s false.
Case 2
Check that on the shipping method details page you can see the "Default Delivery Method" field. It’s a Boolean field and by default it’s false.
KOD-26608: Fix à in Login & Footer
KOD-26610: Update Vendor Screen UX to Use New Serverside Export Endpoint
Regression Tests
Case 1
Make sure the vendor data page still loads properly.
Tests
Case 1
Go to Vendors → data tab → open the network tab → click file → export → notice a file should have been exported as well as it should have used the new /api/system/vendor/export api call → open the file to make sure it exported properly.
KOD-26611: Add the productDisplayType field to endpoints that used on the product detail page
KOD-26619: Update for orderEmployeeStatus setting
KOD-26622: Remove product disclaimer from the list and grid view
Tests
Case 1
Open the catalog page.
Check that disclaimer was removed from list view and grid view.
Check that disclaimer displayed on the product detail page.
KOD-26623: Update Order Adapter field to display the parser value
Tests
Case 1
Ensure the Order Adapter input value is parsed correctly, even when the setting type is smallValue.
KOD-26624: OpenSearch - Create Sku mapping and index documents
KOD-26626: Customer construction From Ticket 27979
KOD-26627: Long Product lists in the APP Created From Ticket 28034
Tests
Case 1
Product catalogs details should have pagination, if there are more than 24 products.
Case 2
Product lists details should have pagination, if there are more than 24 products.
KOD-26630: AP Automation - Invoice shows no items Created From Ticket 28261
KOD-26632: Sending formatted billing address
KOD-26633: Mobile - UX change to checkout button order Created From Ticket 28184
Regression Tests
Case 1
Confirm that the checkout page loads without any issues.
Case 2
Confirm that all tabs are working properly in the checkout screen.
Case 3
Confirm that the bottom buttons (such as “Clear Cart” and “Next”) are displayed correctly and work as expected.
Case 4
Confirm that once logged in, an additional “Save for Later” button appears.
Tests
Case 1
Please confirm that on mobile, the buttons on the cart screen (for all tabs) are displayed with the “Next” or “Continue” button appearing first.
KOD-26634: Duplicate Listings on location Page
Regression Tests
Case 1
Please test that the locations screen still looks as usual.
KOD-26636: Error when placing quote request
KOD-26637: Order not Picked Notification
KOD-26640: Fix auto login metric recording
KOD-26650: Tax Amount Field Created From Ticket 26312
KOD-26653: Implementation - Mobile Application
KOD-26654: Add to the list of Card Payment Systems on the companies "Payments" section
KOD-26679: 2Ship integration: Allow sending in a package weight less than 1