As part of the Kodaris commerce system, employees and customers can create company product lists to quickly order frequently ordered items. You can also use import/export options to mass create and update products on these lists. In this release, we've added the product import option to the product list screen under specific companies as well.
To utilize this feature:
Find the company you'd like to manage the product lists on
Choose the list you want to add or update items on
Click File > Import and select your preferred importing option
Select roles and an activation email during customer registration
Previously, to add a new user to a company account, you would navigate to Companies > Company, choose the add customer option, and then fill in the new user's email address. Once added, you would move to the Roles screen to set the user's permissions.
In this release, we've added two new options to the Add Customer popup.
Roles - Here you can fill in which permissions the user should have right from the popup. You can still navigate to the Roles screen after adding the user to set more roles if you'd like.
Template - Here you can select which email you'd like to send to the new user to prompt them to activate their account. Normally you will choose the accountActivation-EJS template as this is loaded in to the system by default. You can add other activation templates if you'd like from the Marketing > Templates screen.
Note: this feature requires some migration and will be rolling out to all Kodaris customers shortly. Keep an eye out for it or contact you account manager if you are interested in it now!
Generate multiple files at once
As part of the extensive Kodaris quoting and ordering capabilities, we've added a feature in this release that allows users to select multiple PDF templates when generating a file on a quote, order or cash quote. This allows you to generate multiple types of files at once - particularly handy if you need two different types of files for a customer.
To use, simply go to the quote, order or cash quote you are generating a file, click Generate File, select the file type you are generating, choose the templates you would like to create via searching and click Generate.
Set default values on quotes/orders
In this release, we've added the ability to set or add a default value to quotes and/or orders when they are started. For example, if a company is based out of Louisiana and only fulfills orders in Louisiana, you can now request that the state tax jurisdiction for any quotes and orders created default to the Louisiana state tax.
If you are interesting in setting a similar default value on quotes and/or orders in your system, please reach out to your Kodaris account manager.
Quoting
Customize expiration date
As part of the extensive quoting capabilities Kodaris offers, we've released an update that allows you to customize the expiration date set on quotes and cash quotes. To do so, simply navigate to the Settings screen, pull up the quoteDefaultExpirationPeriodInDays setting, input the desired value and hit Save. The expiration date set on quotes going forward will reflect the value in the setting.
Tickets
KOD-15092: Import Product List Items - note, order, and quantity values
Regression tests
Case 1
Check if export is working on company → product list → choose one of available list
Also you can check export on Company Product Lists → choose one of available list
Feature tests
Case 1
Test that imports is working on company → product list → choose one of available list
Also you can check imports on Company Product Lists → choose one of available list
KOD-16116: Set up IDM REST API integration
KOD-16621: Mass Setting Import for Companies
Regression Tests
Case 1
Check that adding/updating CompanyAddress settings(Custom Fields tab) in Employee portal works as before without any interruptions and errors.
Tests
Case 1
Test invalid import behavior and Entity type.
Case 2
Test InsertOnly import.
Case 3
Test UpdateOnly behavior.
Case 4
Test InsertAndUpdate import behavior.
Case 5
Test invalid data inside csv file
See all entities settings import below.
Customers
Categories
Products
Category
SKU
Employee
Products
Customer
Please test settings import for all entities specified below:
EntityType - Company.
EntityType - Customer.
EntityType - Category.
EntityType - Cms.
EntityType - CompanyAddress.
EntityType - Discount.
EntityType - Product.
EntityType - ProductCrossReference.
EntityType - ProductPrice
EntityType - Sku.
EntityType - Employee.
KOD-16957: Review how the company sales rep from CSD gets populated on the orders page.
Regression Tests
Case 1
Verify that company Order can be created in Employee portal
Case 1
Verify that Order can be created by logged in customer
Tests
Case 1
Verify that SalesReps added to order during creation in employee portal
P.S. Setting to turn on this feature was renamed to {{copySalesRepsFromCompanyToNewOrder}}
Case 1
Verify that SalesReps added to order during creation in employee portal
P.S. Setting to turn on this feature was renamed to {{copySalesRepsFromCompanyToNewOrder}}
KOD-17158: Angular App Body Not Visible on Smaller Screens
Regression Tests
Case 1
For tab layout check the pages on which there is kg-grid.
Table layout shouldn’t be changed.
Case 2
For standard layout check if it’s look hasn’t changed
Tests
Case 1
Customer portal
Tabs layout ({{customerShellLayout}} is set to *_tabs_*)
Any table
Expected result:
Screen height is 769px and more => layout was not changed
Screen height is 768px and less => table max height is set to 500, so user can reach the needed records.
KOD-17329: Stocking Notes Update
Regression Tests
Case 1
Please check that company and customer lists work as usual
Tests
Case 1
Please check that for company and customer lists we can:
Add/update/see/delete location notes
Start order and see locations (that we set on customer portal) in cart
Show/hide button ‘toggle locations’ by changing value of setting customerProductListLocationsEnabled
KOD-17460: Add Scheduled Date in scheduled payment emails
KOD-17470: Create code for drop ship feature
KOD-17510: Checkout without registering a shipto
KOD-17536: Checkout - Shipping Methods
Regression Tests
Please check that we can make an order as usual
Tests
Case 1
Please check that if order weight is over 300lbs we will see shipping method ‘freight’, in other case - upc
KOD-17570: Employees Using Inactive Warehouse
Regression Tests
Case 1
Check you still can normally set active warehouse on Order update
Case 2
Check you still can normally set active warehouse on Quote update
Tests
Case 1
Check you can’t set inactive warehouse on Order update
Case 2
Check you can’t set inactive warehouse on Quote update
KOD-17609: Record Payment Attempts to S3 in AchPaymentProvider
Pre-requisites:
1. ACH integration is enabled
2. Global and company/customer level setting paymentSystembankAccount is set to ACH
3. enableGlobalSettingsForPaymentProcessingbankAccount is set to true
Tests
Case 1
Adding payment method
Case 2
Updating payment method
Case 3
Pay an invoice
Case 4
Issue a credit
Case 5
Issue a charge
KOD-17613: Ordering Product Images
Regression Tests
Case 1
Check a product page if it is displaying correctly
Tests
Case 1
Check product image order if displaying correctly based on the file order set in the operations portal
Login to the operations portal > PIM > Products
Select a sample product a upload additional images
Set file order for the images (medium size)
Check in the product page in the website if the product images are showing in the correct order
KOD-17624: Add host in scope of email templates
KOD-17650: Create App Listing
KOD-17679: 400 Error Message on eQuote Files
KOD-17685: Add possibility to add a deposit in Employee portal
Pre-requisites:
Enable global setting {{paymentOnAccount}}
Make sure {{declinedPaymentAttemptsLimit}} global setting value is > value of {{declinedAttempts}} setting at company level
If {{enableCompanySpecificSettingForDeposit}} global setting is enabled - make sure {{paymentOnAccount}} setting is exist and enabled at company level
KOD-17689: [UX] - Operations Portal - Add Customer (new fields) and remove "Activate" button
Regression Tests
Case 1
Please check that we can still add customer as usual, without new fields
Case 2
Please check if button activate on company screen works as usual when setting is turned off
Tests
Case 1
Setting useNewCustomerActivationFlow - off
Add new customer from company detail page ( should be only one field: username). The customer should be created without roles and email shouldn’t be sent
Add new customer from customers page (should be 2 fields: username and company). The customer should be created without roles and email shouldn’t be sent
Case 2
Setting useNewCustomerActivationFlow turned on, go to company detail screen (username is required)
Add customer with only username (roles shouldn’t be assigned and email shouldn’t be sent)
Add customer with username and roles (email shouldn’t be sent, roles should be assigned)
Add customer with username and template (roles shouldn’t be assigned, email should be sent)
Add customer with username, roles and template roles should be assigned, email should be sent)
Case 3
Setting useNewCustomerActivationFlow turned on, go to customers screen (username and company are required)
Add customer with username and company (roles shouldn’t be assigned and email shouldn’t be sent)
Add customer with username, company and roles (email shouldn’t be sent, roles should be assigned)
Add customer with username, company and template (roles shouldn’t be assigned, email should be sent)
Add customer with username, company, roles and template (roles should be assigned, email should be sent)
Case 4
Setting useNewCustomerActivationFlow turned on
Go to customer portal → employees → add employee
You should receive an email that will redirect you to forgot password page
Case 5
Setting useNewCustomerActivationFlow turned off
Go to customer portal → employees → add employee
You should receive an email that will redirect you to page, where you can instantly set the new password
KOD-17755: Platform - Support customer product codes on order items
Regression Tests
Case 1
As a customer you should be able to add products to the cart
Case 2
As a customer you should be able to edit/remove products from the cart
Case 3
As a customer you should be able to edit the product code on “YOUR PART #” section on the cart
Case 4
In Employee portal you should be able to add/edit/remove items from an order.
Case 5
After you create an order you should be able to see all the products added in your invoice.
Tests
Case 1
Add a product to the cart which has a cross reference record associated and see how new field customerProductCode is populated
NOTE: the new field customerProductCode is going to be populated when we add items in an orderItems.
customerProductCode is populated if only if there is a record in crossReference table where productCode = orderItem.code and type = web_customer
if there are more than 1 record that match the criteria, the last one created is going to be consider.
KOD-17759: Create Building Page in CMS
KOD-17831: Update Space Kitty Subject Line - Ticket Comments
KOD-17835: Сhanging the dialog box for generating pdf documents
Regression Tests
Case 1
Login to Operations portal.
Go to CRM -> Cash Quotes → Quote Details.
Click on Generate File button → Internal PDF
Make sure “Generate Internal PDFs" is open.
Make sure there’s default template named - {{wrappedOrderPDF-EJS}} selected.
Click on Generate button.
Make sure Modal is closed.
Make sure you’re redirected to Internal Files tab.
Make sure that pdf file with selected template is present.
Case 2
Login to Operations portal.
Go to CRM -> Cash Quotes → Quote Details.
Click on Generate File button → Customer PDF
Make sure “Generate Customer PDFs" is open.
Make sure there’s default template named - {{wrappedOrderPDF-EJS}} selected.
Click on Generate button.
Make sure Modal is closed.
Make sure you’re redirected to Customer Files tab.
Make sure that pdf file with selected template is present.
Tests
Case 1
Login to Operations portal.
1.1
Go to CRM -> Cash Quotes → Quote Details.
Click on Generate File button → Internal PDF
Make sure “Generate Internal PDFs" is open.
Make sure there’s default template named - {{wrappedOrderPDF-EJS}} selected.
Click on “Select template“ input and choose a couple more templates.
Click on Generate button.
Make sure Modal is closed.
Make sure you’re redirected to Internal Files tab.
Make sure that pdf files with selected template is present.
1.2
Go to CRM -> Cash Quotes → Quote Details.
Click on Generate File button → Customer PDF
Make sure “Generate Customer PDFs" is open.
Make sure there’s default template named - {{wrappedOrderPDF-EJS}} selected.
Click on “Select template“ input and choose a couple more templates.
Click on Generate button.
Make sure Modal is closed.
Make sure you’re redirected to Customer Files tab.
Make sure that pdf files with selected template is present.
Case 2
Login to Operations portal.
2.1
Go to CRM -> Cash Quotes → Quote Details.
Click on Generate File button → Internal PDF
Make sure “Generate Internal PDFs" is open.
Remove default template named - {{wrappedOrderPDF-EJS}}.
Click on “Select template“ input and selected at least one templated that won't generate.
Make sure you’re selected at least one template that won't generate.
Click on Generate button.
Make sure Modal is closed.
Make sure you see error toast with message - {{There is a problem with generation following templates: {template codes}}}
2.2
Go to CRM -> Cash Quotes → Quote Details.
Click on Generate File button → Customer PDF
Make sure “Generate Customer PDFs" is open.
Remove default template named - {{wrappedOrderPDF-EJS}}.
Click on “Select template“ input and selected at least one template that won't generate.
Make sure you’re selected at least one template that won't generate.
Click on Generate button.
Make sure Modal is closed.
Make sure you see error toast with message - {{There is a problem with generation following templates: {template codes}}}
Case 3
Login to Operations portal.
3.1
Go to CRM -> Cash Quotes → Quote Details.
Click on Generate File button → Internal PDF
Make sure “Generate Internal PDFs" is open.
Make sure there’s default template named - {{wrappedOrderPDF-EJS}} selected.
Click on “Select template“ input and choose a couple more templates.
Make sure you’re selected at least one template that won't generate.
Click on Generate button.
Make sure Modal is closed.
Make sure you’re redirected to Internal Files tab.
Make sure that pdf files with selected template is present.
Make sure you see error toast with message - {{There is a problem with generation following templates: {template codes}}}.
3.2
Go to CRM -> Cash Quotes → Quote Details.
Click on Generate File button → Customer PDF
Make sure “Generate Customer PDFs" is open.
Make sure there’s default template named - {{wrappedOrderPDF-EJS}} selected.
Click on “Select template“ input and choose a couple more templates.
Make sure you’re selected at least one template that won't generate.
Click on Generate button.
Make sure Modal is closed.
Make sure you’re redirected to Customer Files tab.
Make sure that pdf files with selected template is present.
Make sure you see error toast with message - {{There is a problem with generation following templates: {template codes}}}.
Case 4
Go to CRM -> Quotes → Quote Details.
Case 5
Go to Orders -> Orders → Orders Details.
KOD-17881: Updating the top brands slider
Tests
Case 1
Check the top brands slider if it autoplays.
The slider needs to have more than 4 tiles in desktop resolution, more than 3 in tablet and more than 1 in mobile for the autoplay to take effect.
KOD-17889: Invoice Table Rows Breaking Between Pages
Regression Tests
Case 1
Test Generating Order PDF.
Login to operations portal and go to orders screen
Go to any order.
Generate an order pdf. There should be no errors
Tests
Case 1
Test Generating Order PDF.
Login to operations portal and go to orders screen
Go to a sample order
Generate and order pdf. There should be no errors
Check the line items, they should not be separated in case content is long.
KOD-17900: Commerce - List view and Grid view - Small screen
Regression Tests
Case 1
No regression tests here
Tests
Case 1
Go to commercesite. Set the view to be Catalog or List, try to make a screen smaller and after a certain point the view should be set to Grid.
KOD-17908: Updating footer
Regression Tests
Case 1
If there is no footer logo and footer address set in the customizer, they would fallback to the store logo and the store address.
If there are no social media link set, the social media icon should not show up.
If there are no footer links set in the customizer, the links wouldn't show in the footer
Tests
Case 1
Test the Footer company detail in the customizer
Login to the operations portal > CMS > Menus
Click on the Footer Content link
Set the footer logo, address, and social media links.
Click on Activate and Publish. There should be no errors and the changes should update the site footer
Check the footer in tablet and mobile to make sure it isn't broken
Case 2
Test the Footer Links in the customizer
Login to the operations portal > CMS > Menus
Click on Menus > Footer. If there is none yet, you can create and new menu named Footer
You can add/edit links here and click on Activate and publish button once you're done updating.
The updates in the links should show up in the footer.
KOD-17919: Updating pattern for method
To test this from user scripts it is required to have an order with companyID=null and externalIrderNumber set.
Tests
Case 1
In user scripts execute {{requestUtils.getOrderForAccountByExternalOrderNumber(externalOrderNumber)}}, verify the order is returned
Case 2
In user scripts execute {{requestUtils.getOrderForAccountByExternalOrderNumber(externalOrderNumber)}}, with not existing externalOrderNumber
KOD-17949: Sovos Tax Call
Tests
Case 1
Company with taxableType = y, taxProvider = sovos
perform call to /api/system/integration/magento/webhook/order/taxCalculation
Case 2
Update value of taxableType to n
Response should be empty
KOD-17967: Add button feature to vendor invoice screen to release to ERP
Regression Tests
Case 1
No regression tests as previous logic was not touched
Tests
Case 1
Go to vendor invoices screen. There should be new ‘Release Status' column which is sortable and filterable. Also near each record should be icon indicating the release to erp status. on those that say ‘release to erp’ or 'error releasing to erp’ try clicking on them. this should call the release endpoind for vendor invoice. The same icons should be on each vendor invoice details pages, also try clicking them, result should be same as i mentioned before.
KOD-18000: Add Quantity Conversion Column
Regression Tests
Case 1
Test related products can still be created and modified.
Case 2
Add product and it’s related products to order in employee portal, as parent order item and child order items respectivelly.
Case 3
Add product and it’s related products to order (cart) in customer application, as parent order item and child order items respectively.
Tests
Case 1
Test quantityConversionFactor was updated for existing RelatedProducts to default value of 1.
Case 2
Test quantityConversionFactor value is processed (used) properly when adding product with related products to the order on employee portal.
Case 3
Test quantityConversionFactor value is processed (used) properly when adding product with related products to the order on customer app.
KOD-18004: Update Error Message to Customers when they have 2 or More Declined Attempts
Regression Tests
Case 1
Check if you can pay invoiced orders through UI.
Tests
Case 1
Check if you can see an exception if you have the same declined attempts like your settings {{declinedPaymentAttemptsLimit}}
KOD-18009: Fix double emailing of orders
KOD-18016: Adjusting the size of the gray navigation bar
Regression Tests
Case 1
Please make sure the welcome page still looks fine
Tests
Case 1
The gray area of the welcome page should end on the last link of the sidebar
KOD-18022: To insert the settings via sql
Tests
Case 1: Check whether setting records: *recaptchaSiteKey*, *recaptchaSecretKey* exist in setting list
KOD-18026: Default Taxing State
Regression Tests
Case 1
Verify that Order can be created in Employee portal
Case 2
Verify that Quote can be created in Employee portal
Feature Tests
Add files {{orderStartPostProcessor.js}} and {{quoteStartPostProcessor.js}} as interceptors
Case 1
Verify that Order created in Employee portal has default Tax State
Case 2
Verify that Quote can be created in Employee portal
KOD-18039: Order Notes Not Clearing when Cart is Cleared
Tests
Case 1
Check the Notes is empty after cart cleaned on Customer Portal
KOD-18048: Scheduled Payment Issue
Regression Tests
Case 1
On the system where payments are set up
In customer portal schedule payment for open invoice
Adjust dates in employee portal for the scheduled payment record to be able to process scheduled payment by job now.
Run DailyIntervalJob and check if payment went through.
Tests
Case 1
Test that in case of error of processing scheduled payments - detailed information is logged in payment internal notes
KOD-18055: Change order confirmation field naming
KOD-18056: Cookie Bar in French
KOD-18087: Set Quote & Cash Quote Expiration Default to 90 Days
Regression Tests
Case 1
Start Quote
In employee portal → Companies → “Start Quote“ icon.
Quote started, no errors, “Expiration Date“ is set in 30 days from today
Case 2
Start Cash Quote
In employee portal → Companies → “Start Cash Quote“ icon.
Cash Quote started, no errors, “Expiration Date“ is set in 30 days from today
Tests
Case 1
Start Quote
In employee portal → Settings → find {{quoteDefaultExpirationPeriodInDays}} setting and set value to “90“
In employee portal → Companies → “Start Quote“ icon.
Quote started, no errors, “Expiration Date“ is set in 90 days from today
Case 2
Start Cash Quote
In employee portal → Settings → find {{quoteDefaultExpirationPeriodInDays}} setting and set value to “90“
In employee portal → Companies → “Start Cash Quote“ icon.
Cash Quote started, no errors, “Expiration Date“ is set in 90 days from today
KOD-18081: Add the ship and unship function to the trend Erp logic engine
Regression Tests
No regression here, newly added code only.
KOD-18116: Search by customer part # continued
Regression Tests
Case 1
Search a product with setting {{useSearchPreprocessing}}=0
Should perform a normal search without searchRules.
Case 2
Search a product with searchRule with
setting
{{useSearchPreprocessing}}=1
and searchRules with values:
{noformat}pattern = matchSearchText
searchType = product
minimumMatch = 1
ruleType= prePRocessing
action = categoryRedirect
active = 1
ruleOrder = 1
actionData= {noformat}
should redirect the search by category.
Tests
Case 1
Create a searchRule with next values:
*Be sure that there is no other rule with action categoryRedirect before this one in order*
altProductCode = alternative product code to be used in the search
lenguageCode = {noformat}
_searchString should not have spaces_
It should perform a search using the provided searchString + the productCode found in cross reference table…
So, if I search ‘123’ and there is a record in cross reference table with alternative code = ‘123’ and product code = ‘abc’. Then it will redirect a new search using next searchString='abc 123'
Case 3
Create a searchRule with next values:
*Be sure that there is no other rule with action categoryRedirect before this one in order*
This scenario works as a regression, because there is no change in the searching criteria if we don’t have an specific action (productRedirect/addToSearch) in our SearchRule.Action field. Therefore, the new rule is going to be fetched during the searching process but it is not going to apply any criteria or redirection to the searching process.
KOD-18140: Active field should be set to yes
Regression Tests
Case 1: Should be set column: *active = ‘yes’* by default if you don’t set any value ('yes' or ‘no’) to current column