Consumer Account registration now available for public users
Your Kodaris Commerce website can now offer account registration for public users! With this feature, any user who visits your website can register for a consumer account on their own and immediately begin placing orders. This experience not only provides a seamless registration process for your customers but also lessens the steps required for you to manually add a new customer account.
Consumer Registration Flow
A public user fills out and submits the registration form on your website
Immediately upon form submission:
Kodaris creates a customer account that resides only in Kodaris (not in your ERP). The customer number of the customer account is the user's email address and the customer account is marked as a "Consumer" account. This Kodaris only customer account houses any orders the user places, personal information, other users the this user decides to add to the consumer account, etc.
Kodaris creates a user account underneath the consumer customer account for the user who filled out the registration form. This user is the owner of the consumer customer account and has full administrative access to the account.
Kodaris sends an email to the user with instructions on how to activate and set a password for their new account
Once the user sets a password for their account, they can sign in and immediately start placing orders, managing their account, etc.
When the user places an order under their consumer customer account, Kodaris inserts that order into the ERP under an ERP customer account of your choosing for processing and shipment. Most commonly, you'll want to choose your cash sales account that you use for counter sales, guest orders, etc. Essentially, you will have many Kodaris consumer customer accounts tied to one cash customer account in the ERP for order processing.
When these consumer orders are processed, shipped, etc in the ERP, Kodaris will sync these updates back to the consumer orders in Kodaris so users can see the latest order status. In order to do this, Kodaris needs to populate a field on the order in the ERP with which consumer account in Kodaris the order belongs to. Typically the field used for this purpose is the "email" field on the order. You can specify any field you like however. When inserting the order into the ERP, Kodaris will simply set the field (ex: email) to the consumer account number in Kodaris so when updates are made to the order in the ERP, the system syncs those updates back to the right consumer account in Kodaris.
https://youtu.be/i_HTiBP3Hag
Display password requirements on login screen in real time
You can now choose to display password requirements on your website’s login screen when customers create their account for the first time or reset their password. The password limitations can include a minimum password length, letter and number requirements, and special character requirements. When a customer initiates setting their password, the list of requirements will be displayed so that they know the types of characters they need to include in their password for it to be accepted. Each requirement will turn green and display a checkmark next to it once it’s met.
You can enable and customize these settings in the Operations Portal. Watch the video to learn how:
https://youtu.be/OFJHmGlPPq0
Add items to cart by uploading a .csv, .tsv, .xls, or .xlsx file
As part of Kodaris’s order automation capabilities, your customers can add items to their shopping cart on your commerce website by uploading a file! This will allow your customers to easily add items to their online cart without needing to search for and add products individually. This may be helpful for customers who need to place large and/or recurring orders and for those who prefer to place orders via spreadsheet files.
The file types that are currently accepted by default are .csv, .tsv, .xls, and .xlsx. To further support your customers in using this feature, they can download a template file that includes sample information/products and how the file should be formatted before uploading to the cart. This template is downloadable from their shopping cart on your website.
If you have a custom file or template that you’d like your website to support, please contact your Kodaris Account Manager.
Learn more about this feature and how to download the order template by watching this video:
https://youtu.be/a0dw4LCguxc
Operations Portal
“Active” field added to Cross References screen
You can now mark products on the Cross References screen active or inactive by using the new “Active” column. You can search, sort, and filter the screen by the “Active” field. Adding this field to your view is simple and can be done by using the show/hide columns feature.
Check out this video to see the column in use:
https://youtu.be/UNwvaui7wds
Tickets
KOD-17459: Customer Portal - Printing a file saves name as "view"
KOD-18246: [Commerce] [BI] Search - Add a query param if the user selects a suggestion
Regression Tests
Case 1
For this regression test, we are going to search for a product, first we won’t click on a suggestion and then we will.
We need to make sure that the search and autocomplete functionality is still working as expected.
Tests
Case 1
For this test, we are going to search for a product without clicking on the suggestions.
You should see in the URL that “og” and “sg” query params are empty if we don’t click on a suggestion.
We should only see “searchString” param having a value matching what we enter in the input.
Case 2
For this test, we are going to clear the input and click on a suggestion.
You should see that searchString has a value matching the item code you clicked, og should be empty since there was no original text entered and sg should equal 1.
Case 3
For this test, we are going to enter a value in the input and click on a suggestion.
You should see that searchString equals the item code, og equals the text you entered before clicking on the suggestion and sg equals 1.
KOD-18257: Automate request custom item button display on demo site
KOD-18845: Fix displaying the Build Date
Regression Tests
Case 1
Navigate to CRM → Jobs.
Check if tabs other than “build date” is filtering and displaying data properly for data/search view.
Check if data is updating from the Jobs detail screen.
Tests
Case 1
Navigate to CRM → Jobs → details screen.
Set “Build Data”.
Refresh the page.
Check if displayed data is the same as provided before.
Navigate to CRM → Jobs.
Check if data is updated after your changes (Wait few seconds for update).
KOD-20032: Implementation - Datamatx
KOD-20064: ORS Nasco Drop Ship Plugin
Regression Tests
Case 1
As a regression test we could try to push a direct order with any other vendor.
Tests
Case 1
We need a vendor to match with orderFrom setting from the order.
From that company (you can create one or use one of the list but we need to make some updates since the case will trigger an email to the emails from the company (vendor) only if it is associated to orsnasco).
The company should have the code = ‘orsnasco’ OR the company setting ‘vendorIntegration' be 'orsnasco’.
Set a templateCode in the vendor setting:
pushDirectOrderEmailNotificationTemplateCode
(If not template code is set, it will used a new template as default with code: directPurchaseOrder-EJS)
Set an email where the vendor should receive the order information in company setting: pushDirectOrderEmailNotificationEmail
(If not email is set, we will use company.email1 or company.email2)
If all of them are empty or not valid, an error should appear.
The order should have the setting ‘orderFrom’ with the company code as a value.
In my case, orderFrom → orsnasco
Besides, the order should be a Direct Order.. this means the extra1 field should be ‘Direct Order’.
Use endpoint /api/system/order/{orderID}/pushDirectOrder with an order ID to test it.
Expected:
If the pushDirectOrderEmailNotificationTemplateCode settings from company is populated but the templateCode is not found → An error with a log message.
If at least one email from company is populated and valid, an email will be saved (And sent immediately unless the setting 'isEmailSendingFromJob' is enabled which means it will be triggered in the EmailSendingJob later).
KOD-20189: Final Availability Messaging on Cart and Checkout
Regression Tests
Case 1
For this regression test you should be logged out, we are going to add a product to the cart. When you click on My Cart you should be sent to the login screen.
After you log in, you should see the item you added in My Cart.
Case 2
For this regression test you should be logged in, we are going to add a couple of products to the cart, change the quantity, save for later and remove them.
You can also test “Clear Cart” button and “Next” button.
Everything should work as normal.
Case 3
For this test, we are going to go to the product page of a non-available product with replacements.
You shouldn’t be able to add it to the cart.
You can click on add to saved list.
You should see the Product Replacement card on the right side of the screen as usual.
We can click on View Replacement and you should be sent to the substitute product page.
You can also verify that the product was successfully saved for later.
Case 4
For this test, we are going to go to the product page of a non-available product with no replacements.
You shouldn’t be able to add the product to the cart.
You can click on Add to saved list and it should work just fine.
Case 5
For this test, we are going to go to the product page of a an available product.
You should be able to add the product to the cart and to saved list.
Case 6
For this test, we are going to go to the search page and look for an available product, a non-available product with no replacements and a non-available product with replacements.
For the available product, you should be able to add it to the cart and to the saved list. You should also see a message that says “Available for Order”.
For the non-available product with no replacements, you shouldn’t be able to add it to cart, only to saved list. You should also see a message that says “Unavailable”.
For the non-available product with replacements you shouldn’t be able to add it to cart, only to saved list. You should also see a message that says “Replacement Available” and a button that says “View Replacement”. We can click that and we should be redirected to the substitute product page.
Case 7
For this test, we are going to add to the cart two non-available product, one with replacements and one without replacements. We are going to test the functionality of the quantity buttons, remove button, saved for later button and add to saved list.
When you save for later a non-available product with replacements, you should see the “View Replacement” button below “Add to saved list”. You can also click that button to make sure it works as expected.
Tests
Case 1
For this test, we are going to add to the cart a non-available product with replacements.
You should see a link inside the alert that says “Remove & View Replacement”.
When you click that link, you should see the item being removed from the cart and then you should be redirected to the replacement product screen.
Case 2
For this test, we are going to add to the cart a non-available product that has no replacements.
You should see a link inside the alert that says “Remove Product”.
When you click that link, you should see the item being removed from the cart.
KOD-20298: Display password limitations in real time
Regression Test
Case 1
Go to the homepage and click on the "Register OR Sign in" text.
Ensure that a popup opens and enter a password into the password input field.
Confirm that there are no password limitations in this popup.
Case 2
Go to Sign In screen.
Enter a password into the password input field.
Confirm that there are no password limitations in this page.
Case 3
Open the reset-password page and confirm that it loads correctly without any errors.
Confirm the same for the account-password and credit-application-password pages (note that this page does not need to be tested on the Payment portal, as it does not exist there).
Tests
Case 1
For the:
/spcu/reset-password
/spcu/account-password
/spcu/credit-application-password
confirm password limitations displayed with proper setting’s value.
minimumPasswordLength
On the operation portal navigate to the setting screen.
Find minimumPasswordLength setting.
If this setting is not populated, minimum password length limitation will not be displayed.
If setting’s value is not a number or less or equal zero this limitation will not be displayed.
For smallValue, mediumValue, integerValue and textValue of this setting set any values except positive integers.
Confirm limitation is not displayed.
Repeat step 5 for positive integers.
Confirm limitation is displayed.
customerPasswordRequiresLetterAndNumber
On the operations portal navigate to the setting screen.
If this setting is not populated or it’s value is empty limitation will not be displayed.
For smallValue,mediumValue, integerValue and textValue leave value field empty.
Confirm limitation is not displayed.
Repeat step 4 with setting value.
Confirm limitation is displayed.
Case 2.
Limitation validation
For the:
/spcu/reset-password
/spcu/account-password
/spcu/credit-application-password
Confirm password limitations update every type user types in field.
Test steps
Type in the Password input field.
Confirm limitations turns green only when their requirement fits:
At least 8 characters - when length of the input is grater or equal 8 (eight could be replaced by any positive integer)
Contains letter - when user types any letter.
Contains digit - when user types any digit.
Contains one of the symbols: @#$%^? - when user types one of this symbols.
Case 3
Native input validation
For the:
/spcu/reset-password
/spcu/account-password
/spcu/credit-application-password
Confirm native input validation works properly.
Test steps
Focus on Password input by clicking on it.
Press enter.
Confirm “Please fill in this field” message is displayed.
Enter any value.
Confirm first gray limitation message is displayed.
At least 8 characters limitation is gray - confirm Password should contain at least 8 characters message is displayed.
If Contains letter limitation is gray - confirm Password should contain letter message is displayed.
If Contains digit limitation is gray -confirm Password should contains digit message is displayed.
If Contains one of the symbols: @#$%^ is gray - confirm Password should contain one of the characters: @#$%^ message is displayed.
If all limitations are valid, except Password Match you should see the Passwords do not match message on the Confirm Password input.
If there is checkbox for Terms and Conditions confirm message Please tick this box if you want to proceed when all other requirements are valid.
KOD-20410: [Operations Portal] Update 'Select a payment method' dialog
KOD-20412: [Operations Portal] Update 'Add a Payment Method' dialog
KOD-20658: Import Sheet to Order - Demo Site
Regression Tests
Case 1
When navigating to the cart with no products, nothing should have changed (besides the added button).
Case 2
Add an item to the cart and navigate to the cart → nothing should have changed.
Tests
Case 1
For this test you need to be logged in and go to My Cart.
Make sure you have a csv/tsv/xlsx file formatted correctly (you can download the template to use).
Navigate to an empty cart → click Upload File button → click choose file and select your file you want to → click Upload → once the upload has completed, you will be routed back to your cart and see the new items listed as well as the quantity and unit sell if specified.
Case 2
Make sure you have at least one item in the cart → navigate to the cart → click Actions → Upload File button → click choose file and select your file you want to → click Upload → once the upload has completed, you will be routed back to your cart and see the new items listed (as well as the quantity and unit sell if specified) in addition to the ones that were already there.
Note → Actions button will only show Upload File if the nonstock product is not active/display is false or the length is not 1, if all of that is true, you will see both ‘Request Custom Item’ and ‘Upload File’ in the dropdown with ‘Upload File’ first in the list.
Case 3
Navigate to the cart and click Upload File button → click on Download Template → a template should be downloaded to your computer that shows how the info should look .
KOD-20965: Update orders to ensure an e hold has been applied to all ecommerce orders
KOD-20986: Issue With Adding Product Translations
KOD-21009: Implementation - Sync data
KOD-21087: 10X Faster Quote Reprice Speed
Tests
Case 1
Check if quote repricing process performance was improved
KOD-21105: [UX] Adding active and inactive flag to cross references
Regression Tests
Case 1
Make sure that the table is working correctly.
For this test we need to go to Cross References section.
Tests
Case 1
Make sure that the newest column “active“ is displaying correctly.
For this test we need to go to Cross References section.
KOD-21208: Record Customer Registration in System Events
KOD-21345: Implementation - Add new form
Regression Tests
Case 1
In the search bar type “course”.
2Check search results: grid view, list view, catalog view and product pages for any products except product with code
3All views and product pages should be loaded with no issues.
4All existent functionality should be the same and work with no issues: you should be able to add products to cart in specified quantity, add them to lists (catalogs), etc.
Tests
Case 3
Repeat step 1 from Case 1. Check grid, list and catalog views.
Find product with code
Make sure instead of the Add to Cart button, the View Options button appears but only for product.
Click that button.
After click you should be redirected to the product page.
Case 4
On the product page of this product check.
Below the quantity input there was added form with 3 input fields.
Add Row button is added below the form rows.
Make sure when you click Add to Cart button with not fully filled in form, tooltip message “Please fill in all the fields in the form“ appears on the screen and the product is not added to a cart.
Case 5
Use the same setup from Case 4.
Click Add Row button. After clicking new row with 3 inputs should appear below the existing row.
Fill in all the input fields.
Click Add to Cart button.
At cart page check that all the values you’ve added on the 2nd step, appear in the note of this cart item.
Per each form line you’ve added and filled on the product page.
Case 6
Use same setup as from the Case 4.
Click Add row Button.
If there is more that 1 row in the form Delete Row button should appear near the Add Row button.
Click Delete Row button.
Make sure last row from the form was deleted.
Make sure if there is only one row in the form, there is no Delete Row button on the screen near the Add Row button.
Case 7
Perform all above tests on screens with width less than 960 px and less.
KOD-21404: Parser Sales Order PDF
KOD-21406: Implementation - Parser Sales Order Doc
KOD-21425: AP Automation - Split separate invoices out of a single PDF
KOD-21438: Generate a new account in real time - integrations
KOD-21456: Port AssignSalesRepsToCompaniesJob job
KOD-21471: Sending notification after order placement
KOD-21490: Implementation - Rebate Sync
KOD-21507: Add server side export and imports for new search screen
Regression Tests
Case 1
Ensure that the user can create new records successfully.
Interact with existing records to confirm they function correctly.
Attempt to delete the selected record.
Expected Results:
All functionality should work as expected, identical to how it functioned before the code changes.
Tests
Case 1
Navigate to the Search - Beta screen.
Click on the File menu and perform import and export actions for the following tabs: Search Rules, Synonyms, Replacements, Category Redirects.
Open Developer Tools (Dev Tools) in your browser.
Navigate to the Network tab.
Ensure that the import and export actions trigger the corresponding server requests.
Ensure that the export works for each tab according to its type.
Expected Results:
All server requests related to the import and export actions should be successfully executed and visible in the Network tab of the Developer Tools.
KOD-21525: Add breadcrumbs to DDA app for navigation
Tests
Case 1
Verify that at the top of the DDA app the navigation path is shown, this only for the routes that belong to a Trip.
Verify that the Trip Code and Delivery Number are shown in the path.
Case 2
Bug fix:
Verify that it is not possible to go back after the first login from home (i.e. that you cannot navigate back to the login or URL entry screen).
KOD-21530: Display banner to customers about payments/data outage during change over
Regression Tests
Case 1
Check that website welcome screen still looks good.
Tests
Case 1
Add new setting 'websiteAlertBannerMessage' with message as value.
Should appear on welcome and login page and look good.
KOD-21565: Soft RFQ Pricing Workflow
KOD-21567: Return the product attribute docs on endpoint: GET: /api/user/category
KOD-21592: Plugin for Midland Vendor
KOD-21616: Needed Documents
KOD-21623: Fix customizer issue
Tests
Case 1
Check if adding page will display it on the list.
Check if page is displayed on the operations portal.
Check if page is displayed on the Header.
Check if page will be displayed on the list when you set active: no in the operations portal.
KOD-21624: Implementation - URL rewrites
KOD-21625: Update order templates with new URL
KOD-21650: News Posts Export Before Go-Live
KOD-21651: Initial Setup - Spin up system
KOD-21653: Include Delivered Column in POD Email Sent Out
Regression Tests
Case 1
On the Order Click “Email Order“.
Check email preview.
Make sure Order email is loaded with no issues.
Tests
Case 1
On the Order Email click “Email Order“.
Select “Yes” in the display Proof of delivery dropdown field.
Make sure in the generated Order email was added Delivered column. In this column quantityCustomerReceived field value should be shown.
KOD-21655: Display Up to Four Decimal Places for Unit Price
KOD-21657: Add integration to the DDAv3 app
KOD-21662: Add ProductDisplay to Attributes record
KOD-21663: Platform for disposition on checkout
KOD-21664: Implementation - Add noindex
KOD-21666: Fix Custom Parser Request
KOD-21670: Locations dropdown on order details screen not displaying warehouse correctly
Regression Tests
Case 1
For this test, we need to go to Orders > Select an order.
We are going to test the Location field changing the value to something else and seeing the information being updated.
Tests
Case 1
For this test, we need to go to Orders > Select an order with whse being equal to a lower case value that matches an existing uppercase warehouse code. Before this update, form field would appear empty. Now you should see an option being selected correctly even though the whse value is in lowercase.
KOD-21671: Updates to specs screen in operations portal
Regression Tests
Case 1
Check that you can still view, add, update, and delete specs without issues.
Tests
Case 1
On a product without specs, check that the forever ‘Loading…’ message is replaced after the page loads with something like ‘No data available.’
KOD-21672: AP Automation - Parser does not pick up line item
KOD-21675: Implementation - Updates for links
KOD-21689: Shop by brand updates
KOD-21691: Mark New Products Coming from ERP as product.display=false
KOD-21692: Email & Datamatx Config Document for Approval
KOD-21693: Checkout Coupon Code
Regression Tests
Case 1
We should test if checkout process remains the same as it was without applying any coupons.
Tests
Case 1
We should now test applying the coupon. For this ticket please use a coupon with name, it will give a 1 percent whole order discount. There should appear a message in order totals with total amount of discounts. (message should be hidden if there are no discounts).
Case 2
We should also check if charges and discounts are displayed and calculated separately in the 3 step of checkout. To check this please apply this discount (actually a charge) to your order “testMax“. charges and total discount amount should be separate, as well as discounts should not be counted into total additional charges.
KOD-21694: Implementation
KOD-21695: Implementation - Checkout Tweaks
Regression Tests
Case 1
Check that product categories views still looks good (list, grid, catalog).
Case 2
Check that product details page still looks good.
Case 3
Check that you still can add products to the cart and check out looks good.
Case 4
Check that this page still looks good and you can add products here.
Case 5
Check that quick order in header still looks good and you can add products to the cart.
Tests
Case 1
In this case you should check product categories view (list, grid, catalog).
Instead of part of product you should see Serial.
Instead of add to cart you should see add to quotation.
If product doesn’t have price, you should see To evaluate instead of TBD
Case 2
In this case you should check product details page.
Instead of part of product you should see Serial.
Instead of add to cart you should see add to quotation.
If product doesn’t have price, you should see To evaluate instead of TBD.
Case 3
In this case you should check quick order in header.
Instead of part of product you should see Serial.
Instead of add to cart you should see add to quotation.
KOD-21703: Updating CSD Integration for Coupons
KOD-21705: Add ability to edit employee status and customer status on orders.
Regression Tests
Case 1
In the Operations Portal find an order which hasn’t been released to ERP.
Check this order details tab.
Make sure page is loaded with no issues. You should be able to edit all the fields on this order.
Case 2
In the Operations Portal find an order which has been released to ERP.
Check this order details tab.
Make sure page is loaded with no issues. Make sure all fields on the order (except those from Case 3) are not editable.
Tests
Case 3
In the Operations Portal find an order which has been released to ERP.
Check this order details tab.
Make sure 2 fields on this order are editable:
Customer Status
Employee Status
KOD-21706: Update endpoint to return base64
KOD-21707: Vimeo block links blocked
KOD-21708: Set showPODFiles flag to true when POD email is sent
Regression Tests
Case 1
As a regression we still should be able to upload a document to the Delivery even though we are not sending the email (For instance, if the image detection type is not ‘signature’ then the email won’t be sent out)
Tests
Case 1
If we send the email using api/system/order/driverDelivery/uploadDeliveryDocumentByID endpoint, the showPODFiles should be true when using the order template (Need a template using it to test this flow).
Remember that extra3 field should have a valid email and also the imageDetectionType should be ‘signature’ in order to send the email.
KOD-21710: Process order status changes for deliveries
Tests
Case 1
If the status sent is one of the following:
Delivered
Arrived
OutForDelivery
OnTheWay
Then, if orders associated to the delivery exist, a new event should be created for each order.
Besides, the order should have a new setting in ‘custom fields’ tab indicating the status/event and the timestamp.
If orders don’t exist, it should only update the delivery without any error.
To corroborate that the deliveryID you are using has orders associated, you can use the following endpoint:
/api/system/delivery/deliveryOrder/{deliveryID}
Case 2
If the status sent is ‘NotDelivered’, then:
If orders associated to the delivery exist, it should create the setting indicating that event but also updating all the ‘employeeStatus’ field in the orders.
No event should be generated for this case.
If orders don’t exist, it should only update the delivery without any error.
To corroborate that the deliveryID you are using has orders associated, you can use the following endpoint:
/api/system/delivery/deliveryOrder/{deliveryID}
Case 3
If the status is different than any of the following statuses:
Delivered
Arrived
OutForDelivery
OnTheWay
NotDelivered
Then, it should still update the Delivery but no order neither event should be updated/created no matter if it has orders associated or not.
KOD-21711: Reindexing of orders
KOD-21712: Update order and mailer templates to include coupon discounts data
Regression Tests
Case 1
Make sure the order details, order email, order pdf, and order mailer still look fine for both orders with and without discounts.
Tests
Case 1
Check that orders with discounts now show a total discounts applied line with the correct amount on the order details, order email, order pdf, and order mailer templates.
KOD-21718: Orders entered through ops portal overwriting delivery first name
KOD-21728: Order Errors
KOD-21741: Label "Address" as "Billing Address" on COD Payment Page
KOD-21745: Documents Upload Job
KOD-21746: Add General Delivery for Address 3
KOD-21754: Pull and Resync Addons
KOD-21756: Implementation - Test addons
KOD-21768: Soft RFQ Pricing Workflow - UX
KOD-21770: Issue With Shipto Selection
Regression Tests
Case 1
Check that billing address and shipto still look good and values populate fine on the second cart tab.
Tests
Case 1
If no shipto is selected on the second cart tab, the input should be empty not display “null”.