Save payment methods at checkout in the mobile app
As part of the exciting enhancements we've been making to the native customer mobile app, your customers can now save payment methods when checking out. This streamlines the ordering process when your customers are on the go by allowing them to simply select a payment method they've previously saved without filling in all their card details for every order.
Note: the native customer mobile app is available to all Kodaris customers out of the box. Please reach out to your account manager if you are interested!
PIM
Configure attribute order
In your Kodaris PIM, you can set up filter categories and attributes to allow customers to refine the selection of products when viewing product categories and search results on your commerce website. For example, a filter category might be Color and in that filter category you might have attributes: Red, Blue, Green, Yellow, and Pink.
Previously, these attributes were sorted by count. Which means that the attributes with the most products would be displayed first. For example:
Color
Red (250)
Blue (100)
Green (10)
Yellow (5)
Pink (1)
In this release, we've added 3 different ordering options that you can use to control how attributes are ordered under each filter category.
Count - works as described above, attributes with the most products are displayed first
Name - sorts the attributes in alphabetical order
Order - a custom order you can fill in to control precisely which order you want your attributes displayed in
https://youtu.be/lw2M_sTVnY8
Customer Portal
View the date an order was paid on
In the Kodaris customer portal, your customers can manage their account, view order history, view open invoices, make payments, and so on.
In this release, we've added an additional column to the order history screen where your customers can see the date on which an order was paid. This is populated once the payment has been batched out.
If you are interested in this feature please reach out! It is built-in to your Kodaris platform but needs implementation-specific configuration.
Dynamic Accounts Receivable prints
In your customer portal, your customers can view and print copies of their open invoices before paying them. In this release, we've added the possibilty to have different prints based on the type of AR record the customer is viewing. For example, if there is a service charge the customer must pay, you can choose to have a different print for service charges that looks different than the prints you normally use for your open invoices.
Please reach out if you are interested in providing different prints for different types of AR records. This functionality is built-in to the Kodaris platform but the prints are custom to you.
Tickets
KOD-12853: Kodaris - Commerce Demo Site - Setup Parent/Child Companies
KOD-15215: Move DeleteIncompleteOrdersJob to the DeleteOldOrdersJob
Regression Tests
Case 1
If setting {{jobPruneEvents}} = 0, then when we run DailyIntervaljob should not have any change on execution.
Tests
Case 1
Check that there is an event with type= DeleteJobCommerce on Event menu.
Then you should run JobManagerJob job in scheduler menu if this event has “completed” column = No
After the job run successfully you should check that job DeleteIncompleteOrdersJob no longer exist.
If the event has column “completed” column = Yes. Then you just must check that the job DeleteIncompleteOrdersJob no longer exist.
Case 2
Setup:
Setting {{jobPruneEvents}} = 1
Then, when we run DailyIntervalJob we must check that:
Events older than 60 days should be not deleted for this job any more
Case 3
Setup: setting {{jobPruneEvents}} = 1
Then, when we run DeleteOlOrdersJob we must check that:
Events older than 60 days should be deleted
Orders that have no "completed" date and are "lastModified" more than 90 days ago should be deleted.
KOD-15323: Display Saved Cards at Checkout in Mobile App
Regression Tests
Case 1
Add an item to cart and checkout
Tap on Select Payment Method
On the edit payment method screen, Tap on Credit Card
Tap on Select
A list of saved cards should be displayed
Complete payment with selected card
Payment should succeed
Case 2
Add an item to cart and checkout
Tap on Select Payment Method
On the edit payment method screen, Tap on Credit Card
Tap on New Card
Enter required information for the new card
Complete payment as usual
Payment should succeed
Tests
Case 1
Add an item to cart and checkout
Tap on Select Payment Method
On the edit payment method screen, Tap on Credit Card
Tap on Select
A list of saved cards should be displayed
Case 2
Add a new card when checking out
Complete the checkout
Do another checkout and select credit card as payment method
The card entered in the previous transaction should appear in the saved list
KOD-15349: Setup demo payment portal site
KOD-15517: Properly escape form data for contact submissions
Case 1
Check that the contact form on the website can be submitted successfully.
KOD-15537: Update endpoint mobile uses for form processing
Case 1
Confirm, that your app should be using {{/api/user/custom/processForm}} endpoint for customer registration
open app
press ‘Request Account’ text
enter fields'
press 'Request Account' button
Dialog should be shown with successful massage (for example word ‘Sent!’, etc.
Case 2
Confirm, that your app should be using {{/route/processRegisterForm}} endpoint for customer registration
open app
press ‘Request Account’ text
enter fields'
press 'Request Account' button
Dialog should be shown with successful massage (for example word ‘Sent!’, etc.)
KOD-15646: WarehouseTransfer -> add possibility to create/update/delete warehouseTransferItems
Case 1
Employee portal → logistics → warehouse transfers → under search or data → click into any → items → Add item should add item to table
Case 2
Employee portal → logistics → warehouse transfers → under search or data → click into any → items → Update any field, click enter, then reload the page. Item should reflect those changes
Case 3
Employee portal → logistics → warehouse transfers → under search or data → click into any → items → highlight row you want to delete → edit → delete selected row. Row should be deleted from page. Reload page and can see that item is still no there
KOD-16831: Display OAN Item Note on Product List Page
Case 1
For logged out users, the note ”Subject to change in price” should not be shown in the product list page and it should have no issues
Case 1.1
Note: Setup a default warehouse for a company address
After setup, login as customer, choose the address where you configured default warehouse.
Go to the product list/category page and check products equals to default warehouse code and with sku status = “o”, the note ”Subject to change in price” should be shown.
Please check both list and grid view. Layout should also not have any issues
Case 2
Login as customer, pick an address without default warehouse.
Go to the product list/category page and check products, the note ”Subject to change in price” should not be shown.
Case 3
Login as customer, choose the address where you configured default warehouse.
Go to the product list/category page and check products that has status != “o”, the message ”Subject to change in price” should not be shown.
KOD-16954: Block Spacing issue
Go to Operations Portal:
Open a test page in Pages.
Create blocks and try to add margins
Add more blocks and set the alignment.
The blocks should be formatted correctly within the page.
Go to the Operations portal:
Open a test page in Pages.
Create a group block.
Add more blocks if needed.
Add a margin to the group block and test out the preview function.
The preview should reflect the changes in the editor.
Also, test the preview function on a group block without margins set.
Go to the Operations Portal:
Go to Pages and open some existing pages.
The page should load as expected without any misalignment and layout issues.
View the page by clicking the link under the Permalink property.
The page should be presented as expected.
Go to the Operations Portal:
Navigate to Pages and create a new Gutenberg page.
Add blocks and do not set any margin.
The blocks should not have any layout issues.
Go to Operations Portal:
Navigate to Pages and open a test page.
Create a group block and on the right side, go to the *Block* tab and edit the *Margin* property.
In this test, we are checking the uniform margin. Do not unlink the margin.
Add a margin and this should automatically change the margin of the block.
The margin should take effect and should not snap the group block to the side of the editor.
Go to Operations Portal:
Navigate to Pages and open a test page.
Create a group block and edit it’s *Margin* property on the *Block* tab on the right.
Unlink* the sides by pressing the button on the right side of the text field.
Add different margin values to all sides and that should reflect on the editor accordingly.
Go to the Operations portal:
Navigate to Pages and open a test page.
Add some blocks to the page and create a group block at the center. In this test, we are adding a group with an image and a paragraph in it.
Select the block and add margins accordingly. First test the *Linked* margin and then test *Unlinked* margins respectively.
The margins should reflect on the editor accordingly and should not snap the group block to the side.
KOD-17488 Allow adding to cart from Related and Complementary products sliders
KOD-17555: Commerce - CSD Connection
KOD-17830: fix termsType and termsTypeDescription fields
KOD-17884: Test releasing orders to ERP
KOD-17918: Customer App - Schedule Payments
Case 1
Login to app
Go to “Payments”
Select 1-2 payments (this should not be scheduled payments)
Press “CALCULATE TOTALS“
All data should load correctly
Select cart
Enter CVV
Do not* select date
Press “MAKE PAYMENT
Payment should work as intendant
Case 2
Login to app
Go to “Payments”
Test searching for invoices by search query
Test selecting different “SORT BY” options in “REFINE RESULTS” and pressing apply – it should work as expected
Test specifying different “FILTERS” in “REFINE RESULTS” – it should work as expected
Case 3
Select some periods
Invoices for periods should be selected correctly.
In case, if there are no invoices to select, you should see message about it
Case 1
Select 1-2 invoices (not scheduled)
Press “CALCULATE TOTAL”
select your card if it was not selected earlier
enter CVV
Press on date-picker
test *case 2*
If you can’t see “SCHEDULE PAYMENT” button – return to *case 2*
Press on “SCHEDULE PAYMENT”
You should see message “{{Processing Schedule Payment...}}“
You should see screen with “Thank You!”
Case 2
confirm that you can’t select previous dates
Select future date and press “Save”
Confirm that you are seeing correct date selected near with date-picker
Confirm that button changed to “SCHEDULE PAYMENT”
Return to date-picker and select today’s date
Press “Save”
Confirm that date changed to the default value “At this moment”
Return to date-picker, select date in future (not today)
Continue with testing case 1, step 7
Case 3
Select 1-2 invoices (not scheduled)
Press “CALCULATE TOTAL”
You should see “convenience fee” under button
It should the same as on web
Case 4
Select 1-2 invoices (not scheduled)
Press “CALCULATE TOTAL”
should see updated view of “totals”
It should include “Total Amount” line with amount of invoice
Case 5
Complete *case 1* until screen with “Thank You!” (step 10 in case 1)
Press “Return to Invoices”
You should not be able to select invoice you scheduled before
Your selected invoices should be unselected after payment
Wait some time (might be 10s, might be 1 min) for scheduled invoice to be created on BE or repeat step 5 multiple times
update the list of invoices by swiping down full page
Eventually, you should see “Scheduled Payment”
Case 6
Complete case 5 until you see scheduled payment
Select this scheduled payment (you may select multiple at the same time if they are exist)
Press on “CANCEL SCHEDULED” button
You should see message about cancelling
After successful cancelation, view should be updated and canceled schedule payment should be deleted
Invoice, that was unselectable in case 5 step 3 should be selectable again
Case 7
Select both scheduled Payment and regular invoice
They are should be treated separately
You should see 2 buttons with 2 labels and separate counter of chosen invoices / scheduled payments
After pressing “Calculate total”, the “total” should include invoices only
Case 8
You should see updated mini-icons for each invoice type
KOD-17960: Adding Facet
Case 1
Make sure the category and facet were created once migration is applied
KOD-17966: Kodaris - Attributes are not showing up as alphabetical
Case 1
Make sure product list page shows fine along with the filters and subfilters.
Also make sure you can choose filters and that works correctly.
Case 1
Go to the operations portal → Filter Categories.
On the filter category you want to test on, set the “Order Values By” field to “categoryOrder”
Go to the attributes of that filter category and on some attributes edit and set the order field.
Go a search/category page and make sure that the filters are now sorted how you ordered them.
Note: The attributes are cached so it might take a bit for the website to update after changing the order fields.
KOD-18018: Update datepicker attributes to the appropriate date field - UX
Case 1
On operations portal go to categories screen, open data view. Add two columns “startDate” and “endDate”. Than see whether everything works correctly.
Case 2
On operations portal go to attributes screen.
Add “startDate” and “endDate” columns.
Check if startDate and endDate fileds set properly.
KOD-18051: Improve UI on Shop by Store
Case 1
After pressing 'Shop By Store' button, the dropdown items should contain location Name, address if such exist and also city, state and postal code if they exist. Name should be in first row and it should be bold, other info should be under name and plain text
KOD-18083: Remove unused libraries from the vendors folder
KOD-18089: Hide "Add New Ship To Address"
KOD-18191: Customer App iOS Issues
Case 1
Login to app
Open {{more}} menu
Open payment methods
Depending on the app you should see either 2 payment methods {{Company}} and {{Customers}} (default) or only Customer one
Confirm, that both company and customer payment methods are working in each of the variations: ONLY customer, ONLY company, both
Case 2
Confirm, that is possible to add test card by yourself on the web
Login any app
Go to Payment Methods
Choose any, “My Account” or “Company Account”
Press “Add Payment Method” option
Confirm that you adding card
Enter data for the card
Press Save
You should be redirected back to the select card screen
Card should be added
repeat addition for company account. It is ok if card is not added (same on the web). You should see no errors after addition
Case 1
Login to the app, that supports quotes
Go to more → quotes
Press on filtering option
Press on sorting by status
Confirm that sorting by status works the same as it works on the web
Case 2
Ensure your account has {{accountsPayable}} role
Login to app
Open {{more}} menu
Open payment methods
You should not see “My Account” tab
Case 3
Ensure your account doesn’t have {{accountsPayable}} role (or just skip sign in on the step 2 of this case. {{accountsPayable}} is defaulted to false for guests)
Login to app
Open {{more}} menu
You should not see payment methods option
Case 4
Use customer without {{agreedToACHTermsTimestamp}} under {{/operations/customers/{id}/custom-fields}} on operational portal
Selected row should not exist or it’s value should be empty:
Confirm, that is possible to add test ACH account by yourself on the web
Login to app
Go to Payment Methods
Change tab to {{Company Account}}
Press “Add Payment Method” option
Change payment method tab to ACH account
You should see signature and “Agree to Terms” Switch
Enter data for ACH account
Press Save
ACH account should be added
return to the form where you wrote data. You should not see “Agree to Terms” Switch.
Go to the operation portal on step 1 and confirm signature
Case 5
Confirm, that is possible to update existing test ACH account by yourself on the web
Login to app
Go to Payment Methods
Change tab to {{Company Account}}
Press “Add Payment Method” option
Change payment method tab to ACH account
You should not see signature and “Agree to Terms” Switch
Press Save
ACH account should be updated
Case 6
Login to the app
Go to payment Lists
Add any list to the cart
List should be added successfully
You should be redirected to the cart and see products you’ve added
Case 7
Biometric pop-up should not be shown for guests
Case 8
App bars in category, locations (etc.) should be white for any app.
Case 9
Screen for more → Settings should be scrollable on small devices
Case 10
If customerPaymentMethodsEnabled is = to 0 on the web settings, then on “payment methods”, company payment methods should be loaded correctly 2
KOD-18214: Move all company endpoints
KOD-18288: Add UX for Pay Date to Customer Portal Orders Screen
Case 1
Make sure that orders screen is functioning correctly on customer portal
Case 1
In customer portal go to Orders screen, try adding 2 columns: Paid On and Check #. The data shown on the columns should correspond to paymentDate and paymentCheckNumber fields from api response.
Go to Tickets → Ticket Product Lists → Product List → Attribute Assignment. Try adding a new attribute, filtering and sorting the data.
KOD-18334: MFA - Only Administrators and Superusers have access
Case 1
Use/enable multi-factor authentication with employees who have roles:
superuser
administrator
Steps: Click in profile picture section at the top-right of the portal and select ‘Enable MFA'. Follow provided steps by the portal to log in using Google autheticator
Case 1
Enable MFA to log in using an employee without roles ‘superuser’ neither ‘administrator’. It could have none roles or any of the rest.
Steps: Click in profile picture section at the top-right of the portal and select ‘Enable MFA'. Follow provided steps by the portal to log in using Google autheticator
KOD-18363: Add server side API to call Google API
KOD-18391: Add UX for new Invoice -99 - endpoint to generate pdf
Case 1
Make sure {{customerPaymentTemplateEnabled}} setting is disabled .
Goto customer portal:
Goto Open Invoices menu item.
Find some invoice with Invoice # ending -00.
Click on Invoice #.
Make sure Order invoice is displaying as expected.
Click on Print button.
Make sure pdf file is displaying as expected.
Case 1
Make sure {{customerPaymentTemplateEnabled}} setting is enabled .
Goto customer portal:
Goto Open Invoices menu item.
Find some invoice with Invoice # ending -99.
Click on Invoice #.
Make sure Order invoice is displaying as expected.
Click on Print button.
Make sure pdf file is displaying as expected.
KOD-18403: Kodaris - CSP TinyMCE Issue
KOD-18406: Setup Secondary Content Website as a Host
KOD-18435: Customer app - add faceting to search screens
Case 1
Test faceting (selecting of existing values) in filters if it exists (some filters might not have faceting, it is ok)
Press filtering option on the left side of search bar
Select facets
Press apply
Your search should be adapted to applied facets|
Case 2
Test creation of saved view
Press filtering option on the left side of search bar
Select facetes or enter filters for results to be found (do not enter “completed” facet)
Press 3 dots on the top
Press “Save view”
Wait
You should see massage on the bottom about saved filters
Press 3 dots on the top
Go to saved filters
You should see your saved filter
Case 3
Apply saved filtering
Reset your filtering
Go to saved filters (like you did on step 8 of case 2)
Press on your saved filter
Press save
Your filtering should apply
Press apply
Case 4
Deletion of filters
Go to saved filters
You should not be able to see tree dots of not your saved views
Press on tree dots near your filter
Press remove
Wait; your filter should be removed
Case 5
Edit of saved filters
Go to saved filters
You should not be able to see tree dots of not your saved views
Press on tree dots near your filter
Press edit details
Change name of filter
Wait; your filter should be updated
Case 6
Resetting of filters should work fine (it is new feature as well)
KOD-18445: Custom Parser
KOD-18446: Custom Parser 2
KOD-18470: Convert CMS content
KOD-18484: Configure PO for Customer
KOD-18485: Configure Taxes
KOD-18488: spin up canadian system
KOD-18547: List trips on home screen with search to allow driver to search for and select a trip
KOD-18552: Convert more content to CMS
KOD-18557: Set Up Another Secondary system
KOD-18563: Configure Inventory
KOD-18566: Set up PO for everyone
KOD-18568: Configure Customer Portal
KOD-18570: shop by category dropdown - too many categories
Case 1
Check the menu for instances where the second level and third level menu links arent overflowing. There should be no issues
Case 1
The menu height should cover all category and subcategory links
KOD-18584: Add UOM Dropdown
Case 1
As not logged-in customer check product pages for product with and without unit conversions. Check category grid, list and catalog view.
Case 1
Check unit conversion dropdown on the product page and how it is displayed in the cart
Case 2
Check unit conversions dropdowns on the category grid, list and catalog page views
Case 3
Check unit conversions dropdowns on for the search pages. Steps the same as for the case #2
KOD-18585: Discounts do not function correctly in some cases
KOD-18588: Description not Syncing for K Records
KOD-18599: Add Card Type Selector and Modify Convenience Fee Process
Case 1
Test creating/updating company payment method in customer portal.
Case 2
Test creating/updating customer payment method in customer portal.
Case 3
Test payment from Cart checkout and saving new customer payment method.
Case 1
Test creating/updating company payment method through swagger using new cardType values:
Case 2
Test creating/updating customer payment method through swagger using new cardType values:
Case 3
Test invoice payment throws exception when used payment method with invalid card type and convenience fee is on:
Case 3.1 (continue)
Test invoice payment can be made when used payment method with invalid card type but convenience fee is OFF:
Case 4
Test invoice payment with DEBIT card, NO convenience fee should be applied.
Case 5
Test invoice payment with CREDIT card, convenience fee SHOULD be applied:
Case 6
Test convenience fee calculation is working as before.
Case 7
7.1 Test Scheduled invoice payment can be made when used payment method with invalid card type but convenience fee is OFF.
7.2 Test Scheduled invoice payment throws exception when used payment method with invalid card type and convenience fee is ON.
Case 8
Test SCHEDULED invoice payment with DEBIT card, NO convenience fee should be applied.
Case 9
Test SCHEDULED invoice payment with CREDIT card, convenience fee SHOULD be applied. *Please make sure you have setting “percentageCreditCardFee” with actual fee percentage value.*
KOD-18623: Support unit of measure
Case 1
Check the website and make sure that pricing loads and looks good as it was for InforCSD
Case 1
Check products which support UOM: prices long with UOM that that user chose from the dropdown on the product, category or search pages should correctly be shown in the cart.
KOD-18633: Logged in Users & Pricing with Shop by Store
KOD-18635: Public Comments Option
Case 1
As a logged user, go to a contentPage with “comment Post” component and try to submit a comment.
Check that you are able to submit the comment.
See video 1 to know how to check the comments in the employee portal.
Case 2
As a no logged user, go to a content Page with “comment Post” component and try to submit a comment.
Check that you are able not able to submit the comment.
Note: is possible that you can no try this because UX is blocking the “comment post” component. In that case you will have to try this endpoint in swagger:
Case 3
Check that you can post and see comments in a a content Page from the employee portal.
All test should run with this setting {{allowNotLoggedUserPostCommentOnContentPage=1}}
Case 1
using swagger you should try to post a comment in a content page not being logged to the system.
You must to check that the comment appear in the employee portal with the author {{Public User}}
KOD-18637: Configure more Taxes
KOD-18639: Configure more inventory
KOD-18643: Countries and states
KOD-18644: Create a new endpoint to return re-order items list
endpoint should return unauthorized if you are not a logged customer
endpoint checks valid orderID
the endpoint return a list of the existent orderItems from the order passed by param. The list should contain as default three fields:
code, quantity and unitSell
On the employee portal you should check that there is a new interceptor:
{{whitelistOrderItemsToReorder.js}}
KOD-18651: Add order field to cached attributes
Case 1
Make sure filters on product list page appear fine
Case 2
Make sure ‘Shop by category’ drop down works fine.
KOD-18658: Change permissions for Tax Rates Screen - UX
Case 1
Log in to the employee portal as a superuser. Open tax screen to see is it still accessable for a superuser.
Case 1
Log in from account with basicTaxRateEdit and basicTaxRateView. Open Tax screen. Verify access to this screen and specific tax screen.
KOD-18670: Kodaris - Exporting Ticket Data
Case 1
export tickets without any filters. make sure it was successful
Case 1
Apply some filters and export again. Make sure filters are affected a file
KOD-18672: Upload shipping methods
KOD-18676: Quiet down payment logging
KOD-18693: Add Datamatx to kodaris site as a partner
KOD-18695: Billing address is not selected by default
Case 1
As a logged-in Customer add item to Cart. Check if billing address is not populated at step 2. of the checkout. Check {{billingAddressCode}} in API response is “-0000“
Case 1
As a logged-in Customer add item to Cart. Check if billing address is populated at step 2. of the checkout. Check {{billingAddressCode}} in API response is populated with a real CompanyAddress code (different from “-0000“)
KOD-18701: Issue with InforCSDV3 Price Engine
KOD-18703: Issue with displaying different results for the same search
Case 1
Login to the app
Go to category or search for something
Wait for prices to load
prices on products should be correct
Case 1
Go to general search of products
Search for something
Set some filtering
Reset filtering by reset button
You should not see infinite loading; filtering should be reset
KOD-18722: CSD order insert - geocode error but new shipto was added