New Vendor Pricing Export Feature in Operations Portal
The Operations Portal now enables users to export vendor pricing information directly to CSV files for offline analysis and reporting. Users can access this feature from the Vendor Pricing screen by selecting File > Export, naming their file, and choosing a save location on their computer.
The exported CSV file contains comprehensive vendor data including Vendor Number, Vendor Product Code, Pricing details, and other associated information. This functionality allows teams to incorporate vendor pricing data into spreadsheets for further analysis, comparison, or integration with other business systems.
The Vendor Pricing Export feature is available now to all Operations Portal users with appropriate access permissions. For a step-by-step demonstration of this process, please refer to our tutorial video.
https://youtu.be/IQVsbSmTe-M
Tickets
KOD-3255: Production Account Area Build
KOD-24687: Adjust the CSD Integration to populate the vendor number on price record
KOD-25714: Return process - Notification email and order screen
Regression Tests
Case 1
Check that you can still generate an order pdf, email and view the order details in the customer portal without issues.
Case 2
Do the same as Case 1, but for Returns.
Tests
Case 1
In the scope of this ticket, we created modern templates for orders instead of the CSD versions.
Check that the generated pdf, email and customer portal order details page all work fine without issues.
All the data should be displayed correctly without errors.
Note: For the customer portal order details, also check mobile view, it should look fine without issues.
Case 2
We also created separate and modern templates for returns.
In the operations portal, go to orders and go to an order with extra1=Return.
Try generating an email and pdf.
Both should have messaging around returns, e.g. Return label instead of Order or Invoice.
They should also have Return Reason and Return Comment info on the order items.
Make sure the templates load correctly without issues.
Note: might need to turn off the customerReturnsEnabled setting for Returns to be listed in the Orders screen.
Case 3
Go to the website and checkout as a customer, the thank you page should display correctly with the new template.
Also view this page on the mobile version. Everything should look good without issues.
KOD-26057: Add ability to select all and/or add all to cart to company catalog UX
Regression Tests
Case 1
Open the website.
Log in.
Navigate to the catalogs (check both company and customer catalogs).
Select any catalog.
In Company Catalogs, the user should not be able to perform any of the following actions: [Edit, Delete, Export Price List], unless they have the following setting: customerCanModify (companies screen in operation portal → your category → Edit Category → customer can modify: false) and permission: companyAdmin.
In Customer Catalogs, the user should not be able to perform any of the following actions: [Edit, Delete], unless they have the following setting: customerCanModify (customers screen in operation portal → your category → Edit Category → customer can modify: false)
Tests
Case 1
Open the website.
Log in.
Navigate to the catalogs (check both company and customer catalogs).
Select any catalog.
Click the Actions → “Add all to cart” button and check that all products from the catalog have been added to “My cart”.
Verify that the user sees the correct button state.
If requests are still being processed, the button should display “Adding to Cart…”.
Once the requests are completed, it should display “Added” and the dropdown should close.
On the next click on the actions button, the initial state “Add all to Cart” should be displayed again.
Verify mobile view.
Case 2
Open the website.
Log in.
Navigate to the catalogs (check both company and customer catalogs).
Select any catalog.
Click the “Add all to cart” button.
Open DevTools → Network tab.
Right-click on the relevant request.
Select Block request URL.
Click the “Add all to Cart” button again, the request should be blocked, and an error should appear.
Verify all related requests and ensure proper error handling is triggered.
KOD-26114: Parser Request Created From Ticket 25086
KOD-26262: Add Ability to Schedule Pages - UX
KOD-26464: Quote acceptance to trigger automatic ship-to creation
Regression Tests
Case 1
Have jobSyncCompanyAddressToErpEnabled disabled.
We need a basic scenario for creating or updating a Company Address from the operations portal.
Create a new company Address from the Company Address screen AND from a Company screen using an importer and validate it is created correctly.
Example of payload I used in my file:
"code","locationName","companyCode"
"regression-01","citycenter","1_1"
Then, after the FiveMinuteBulkJob runs validate that needsSyncingToErp remains as true.. You can see that field in the development tab or network console if it is not allowed due permissions.
Tests
Case 1
Generate a quote from a company (Make sure that the company selected is one with the custno_cono pattern. Basically, the code should have the underscore in the value like 100_100232)
Add some items to the quote
Setup the location for the quote. For doing this we need to fill in mandatory fields like endDate, type, and address fields.
Verify that some pricing records were added automatically to the quote and the column ‘companyApplies’ and ‘companyType’ are pointing to the new companyAddress.
CompanyApplies should be the company.code and companyType should be the new shipto.
Go to companyAddress and find the new company based on the shipto (companyType) or you can just find the latest one if easier.
Validate that the company and the pricing records has the field needsSyncingToErp in true (You can inspect the network since those fields are not in UX or development tab)
If you can’t find the field, you can make sure also that the lastSyncedToErp is null and lastModifiedLocally is populated.
Case 2
Now that we have our entities created, the next step is to send them to the ERP. Currently, only inforCSD erpLogicEngine sends the companyAddress to the ERP and that would be the real test.
New setting jobSyncCompanyAddressToErpEnabled should be turned on and then fiveMinuteBulkJob will pick up the newly company address (Notice that OLD addresses which has needsSyncingToERP in true will be picked as well) and it will send it to the ERP.
If everything goes fine, the statusSyncedToErp will be empty/null and lastSyncedToErp will be populated with the current date.
If the statusSyncedToErp shows ‘SyncedError’ then something happened when making the sync to CSD.
KOD-26466: Configure Form Submissions to Create Tickets
Regression Tests
Case 1
Check that the Contact form looks good.
Check that there are no errors in the console when submitting the form.
Tests
Case 1
Check that when you submit any form, a ticket is created in the operations portal on the Tickets tab.
KOD-26542: Non-stock items set up - Documentation/Video
KOD-26602: Missing SalesRep on quote template Created From Ticket 27167
KOD-26685: Implementation - Pricing Changes
KOD-26869: Parser From Ticket 29255
KOD-26924: Kodaris-Add Fields to Company Grid
Tests
Case 1
Access the Operations Portal, open the Companies page, and click the Data tab.
In the Data grid's top right, click the button for showing/hiding columns.
It should show these options. Select each one:
Company Group Code
Customer Group Code
Customer Product Group
Customer Type Description
Industry Code
Sales Territory
Click outside the dropdown to close it.
The grid should display the newly selected columns.
Add a row for a new company, filling all the fields from the previous selected columns.
These fields should display autocomplete and a dropdown with suggestions:
Company Group Code
Customer Group Code
(The suggested options can be set in Company Groups page)
Press ENTER when finished to add the new Company.
The grid should display the new created row.
Edit each of these fields, changing its values:
It should save and keep displaying the values.
Case 2
Starting from the previous test case, and the data saved for the new fields.
Open the Search tab in the Companies page.
In the Search grid's top right, click the button for showing/hiding columns.
It should show these options. Select each one:
Company Group Code
Customer Group Code
Customer Product Group
Sales Territory
Click outside the dropdown to close it.
The grid should display the newly selected columns, and the values previously saved for each field.
KOD-26935: Push Return Comments to CSD
KOD-27024: UX payment receipts
Tests
Case 1
If you don’t have the accountsPayable role, you should not be able to see the Payment History option in the dropdown.
Case 2
Make sure you add the accountsPayable role to your customer → when you load the customer portal you should now see a new option saying Payment History.
Case 3
Click Payment History and you should see a list of payments (transaction type 99) for that company and see the payment #, total, and created in the grid.
You should be able to filter, sort, and search by those fields.
You can also add some other columns to the grid like company code, company name, type, status. (it might look a bit redundant since it is for the specific company you are in and transaction type of 99/Web Account Payment).
Case 4
Now click into one of those payments → you should see the details associated with the payment as well as the applied invoices of that payment.
On the details part you will see date, company, account type, card/bank type, number, amount paid, fee amount (if applicable) and total paid (if fee amount is present).
Under that is the applied invoices (if applicable) and you will see invoice #, amount, and discount (if applicable).
Case 5
When you click into one of the payments on the payment history section, if that payment has a receipt, you will see a button up to view receipt → click the button and the receipt will generate → here you can close the pop up or print the receipt
If that payment does not have a receipt, you will not see the button there.
Case 6
Make sure to test for both card and ACH payments and can click into the payment history and view the details as well as the paid invoices
For card → you should be able to see a payment receipt (if it is a payment made after the receipts were created)
For ACH → you won’t see a payment receipt but all the details should still be present.
KOD-27049: Quote Non-Stock Item Handling
KOD-27062: StoreCredit FiAccount APIs
Regression Tests
Case 1
Test creating/updating/deleting regular Financial Accounts in the operations portal.
Tests
Case 1
Create consumer account in (new system side endpoint added) :
POST /api/system/company/consumer
Parameters:
userName should be valid email address,
firstName,
lastName.
Check that appropriate customer and company records were created (search by specified userName parameter).
Case 2
Create company FiAccount (new endpoint added).
POST /api/system/company/{companyID}/fiAccount
Parameters:
companyID
accountType (for now only available type is - StoreCredit)
Check that the Company Financial Account was created (in the Financial Accounts screen) and has zero Balance, ReservedBalance and StatementBalance values. FiName should be the company name.
Case 3
Test newly added list endpoint :
POST /api/system/company/{companyID}/fiAccount/list
Path variable:
companyID - company which has linked FiAccounts created.
Check that this endpoint returns only company FiAccounts (mainly created in the endpoint above). Try to apply regular filters and sorting to manipulate returned results.
KOD-27120: Address Issue
KOD-27129: Add Payment Descriptions: Visa, MC, AMEX, etc.
KOD-27139: Rollout Adding Back Orders Created in ERP to Order Hierarchy
KOD-27210: Add products to assets in operations portal
Tests
Case 1
Navigate to the Company Asset > Products screen.
You should be able to add, update, and remove items without issues.
Also refresh the page and make sure your items are still there.
KOD-27252: Can't Delete Stored Card
KOD-27261: On-Prem Connector
KOD-27263: Prevent order placement until checkout page fully loads Created From Ticket 9776
Regression Tests
Case 1
Confirm that the checkout page loads without any issues. We should be able to change the quantity of items, delete or add them to the cart, place an order, and select shipping options.
Tests
Case 1
Confirm that if we simulate a slow internet connection and choose a different shipping option than the currently selected one, after clicking "Place Order", the shipping option in the operation reflects the one we selected before pressing the "Place Order" button.
KOD-27275: Set up implementation package
KOD-27277: Order discount tweaks
Tests
Case 1
Open the website.
Place an order.
Go to Delivery & Payment.
Make sure that the Add’l Charge and Extra Charge lines are displayed above the Estimated Tax line.
KOD-27288:InStock Filter Updates
KOD-27330: Updates to Entity Settings Indexing
KOD-27331: Product page optimization - H1 tags not used
KOD-27334: Invoiced Dated Created From Ticket 31605
Regression Tests
Case 1
Check that the Vendor Invoice page looks good.
Check that the values in the fields on the Search and Data tab are displayed, edited, and deleted correctly.
Check that there are no errors in the console.
Tests
Case 1
Check that the “Invoiced Date” filter had a calendar search view.
Check that the Invoiced Date data is displayed correctly for specific search values.
KOD-27341: Product Name missing description 3
KOD-27356: Add Canadian updates
KOD-27363: Make sure server side export is working for vendor pricing screen
Regression Tests
Case 1
Check that the grid on the Vendor Pricing page looks correct (you can filter the fields in the grid, change, delete, add a value or a row).
Check that there are no errors in the console.
Check that the layout of the Vendor Pricing page looks good.
Tests
Case 1
Check that when clicking on export on the Vendor Pricing page, a window like this appears.
Check that when exporting to Network, a request is made to /api/system/vendorProductPrice/export. As a result, the file is successfully downloaded.
The export file displays all fields that exist on the backend side.
KOD-27362: Sync SKU records to CSD
Regression Tests
Case 1
Having setting jobSyncSkuToErpEnabled disabled, create a new SKU in the operations portal or update it.
Make sure that the needsSyncingToErp is true after that (you can inspect the network tab or go to the development section for validating this step since UX probably doesn’t show it).
Then, make sure to run FiveMinuteIntervalJob and validate that the needsSyncingToErp is still TRUE.
Tests
Case 1
Create or update an SKU in the operations portal.
Validate that the field needsSyncingToErp is true (You can inspect the network since those fields are not in UX).
If you can’t find the field, you can make sure also that the lastSyncedToErp is null and lastModifiedLocally is populated.
The next step is to send them to the ERP. Currently, only inforCSDerpLogicEngine sends the SKU to the ERP and that would be the real test.
New setting jobSyncSkuToErpEnabled should be turned on and then fiveMinuteBulkJob will pick up the newly Sku (Notice that OLD skus which has needsSyncingToERP in true will be picked as well )
and it will send them to the ERP.
If everything goes fine, the statusSyncedToErp will be empty/null and lastSyncedToErp will be populated with the current date.
If the statusSyncedToErp shows ‘SyncedError’ then something happened when making the sync to CSD.
For validating the payload / response from/to CSD we have SystemEvent with some codes like CSDSku_ResponseSkuAdd and CSDSku_ResponseSkuChange.
Interceptors: InforCSDSkuAdd and InforCSDSkuChg.
Those set up sku fields to send to CSD. There are some default values there but it might require iterative testing to see which fields to fill in.
KOD-27366: AP Automation - Vendor Created From Ticket 32013
KOD-27367: AP Automation - Vendor 2116 Created From Ticket 32014
KOD-27371: "Apply Now" Template Edits - Other File types allowed?
KOD-27375: Scope Supporting ACH by Cono
KOD-27379: Pull and Test Taxes and Addons
KOD-27393: Parser Ticket 30427
KOD-27400: Vendor Invoice Parser
KOD-27405: Duplicate addons issue - Created From Ticket 32210
KOD-27408: Parser From Ticket 32401
KOD-27411: PIM Import part 2
KOD-27416: Invoice Parser
KOD-27417: Implementation - AP- Data Sync
KOD-27419: AP: Prefix Incorrect Total
KOD-27422: Payment History Screen Platform Updates
KOD-27428: ERP Quotes
Regression Tests
Case 1
Check if Orders are displayed correctly.
Tests
Case 1
Turn on this setting in operations:
customerOrderTypeEnabled.
Then in the customer portal display the “Type“ column on the orders screen.
Check if filters for this column are applied, and if data is displayed in that field.
KOD-27438: Consumer Returns. Match PO from original order
KOD-27440: Consumer Returns: Match Shipto from original order
KOD-27441: Update customer portal to use "consumerReturnsEnabled" setting
Tests
Case 1
The “returns” screen in customer portal should be accessible if at least one of those settings is enabled (“customerReturnsEnabled“ or “consumerReturnsEnabled“). But we can only start a return from that screen if “customerReturnsEnabled“ is enabled, if it’s 0 - we shouldn’t.
Case 2
We should now only be able to create a consumer return from one order if this setting is enabled “consumerReturnsEnabled“. The “returns” tab for such an order should also only be available if this setting is enabled.
KOD-27444: Parser - Missed last line of PO
KOD-27450: Implementation - Spin Up System
KOD-27454: Implementation - Spin Up System
KOD-27455: Implementation - Install Applications
KOD-27459: Server side export for vendor pricing - Endpoint creation
Tests
Case 1
Open the operations portal and access the Vendor Pricing screen.
Ensure you have some rows added in the table, we need it to be exported in the next step.
Select file → Export, download the file and verify the lines are shown in it.
Case 2
Open swagger and find the endpoint: /api/system/vendorProductPrice/export
Select exportAsNDJson false, execute and download the file.
Ensure it is showing the vendor pricings in json format.
You can use this requestBody to make it easier:
{
"facetFields": [],
"fieldsToReturn": [],
"filterFields": [],
"page": 0,
"queryFields": [],
"size": 1000,
"slice": false,
"sorts": []
}
Case 3
Repeat test case 2, but select exportNDJson true.
This time, ensure it is showing the vendor pricing in table format (csv).
KOD-27469: Kodaris.com - Update dates of podcast episodes
KOD-27474: Update Supplier to Manufacturer
Regression Tests
Case 1
Check that the product details page is still working as expected without issues.
Tests
Case 1
Check that on the product detail page, supplier and supplier part # have been renamed to manufacturer and manufacturer part #.
KOD-27475: Display both Department Name & Code
Regression Tests
Case 1
Check that both the last checkout tab department dropdown and the department dropdown on the asset details page still works as expected.
Tests
Case 1
Both Department dropdowns should now display both the code and description of the departments.
KOD-27476: Update UX to Include "Your Description" Field on Product List View
Regression Tests
Case 1
Check that the My Products page still works and looks good on both grid and list view.
Tests
Case 1
Both views should now have a Your Description element on each product tile if the cross reference for that product has a description.
KOD-27481: Forward Payment Emails
KOD-27482: Remove Second Tab for Punchout users
Regression Tests
Case 1
As a guest user click on the Cart button.
Confirm redirection to the “Sign In” page.
Add product to the cart.
Confirm redirection to the “Sign In” page
If setting “guestCheckout Enabled” is set to 1, you can confirm that the cart page lends on the “You shopping cart is currently empty” and products could be added to the cart.
Case 2
As logged in users navigate to the cart button.
Confirm “Your shopping cart is currently empty” page is rendered.
Add some products to the cart.
Confirm cart is loaded as expected.
Click the “Next” Button.
Confirm redirection to the Location Tab.
Click the “Next” Button again.
Confirm input of the billing and shipping addresses information is required.
Click the “Previous” button two times.
Confirm the user redirected to the proper page.
Click on the Tabs at the top.
Confirm redirection works as expected.
Tests
Case 1
As a punchout customer navigates to the cart page.
Confirm “Your cart is currently empty” page is rendered.
Add some products to the cart.
Navigate to the Cart page.
Click the “Next” button.
Confirm Second / “Location” tab is skipped.
Click on the “Previous” button “Location” tab.
Confirm tab is opened as expected.
Click the “Next” Button / “Payments” Tab.
Confirm input forms are not required.
KOD-27491: Invoice Parser not picking up PO
KOD-27495: Adjust Company Catalogs screen with new role
Regression Tests
Case 1
Check if regular customers without permission can’t download the price list from the website.
Check if the company admin still can download the price list from the website.
Tests
Case 1
Check if the “allowCustomerPriceBookDownload” setting is turned on.
Check Company Categories has the “customerCanModify“ flag turned on.
Check if the action toolbar is displayed on the company-catalog page in the website.
Check if it is displayed if the customer has set the“companyAdmin“ or “companyCatalogEdit” role.
KOD-27496: Parser update From Ticket 31527
KOD-27501: Request to Remove Item from Form
KOD-27502: Implementation - Spin Up System
KOD-27504: Implementation - Pay Request
KOD-27505: API - Check if Credits functionality exists through the v2 API
KOD-27509: Replatform - Stay on current page after login Created From Ticket 32280
Regression Tests
Case 1
Confirm that we can log in as a customer through the popover.
Tests
Case 1
Confirm that after logging in this way, we are not redirected to the homepage but stay on the page we were on (it just reloads).
Case 2
Confirm that if we click on the Catalogs screen, a redirect parameter appears in the URL, and if we log in through the popover, we are redirected to the Catalogs screen instead of staying on the homepage.
KOD-27526: Configure Customer Portal
KOD-27533: Scheduling Payment Error
KOD-27546: Video on Mapping Address ID to User 2
KOD-27548: Add Support for shiptoaddr2 in v4
KOD-27557: Solve form submission issue in digital credit application
Regression Tests
Case 1
Apply for a credit application.
Go through the registration process.
Navigate to the operations portal.
Confirm the Credit Application company was created.
Log in as a credit application customer.
Confirm credit Application form is displayed properly.