As part of the native mobile app features that Kodaris offers, we now provide the capability for customers to print a PDF copy of an order directly from their app. To do so, navigate to the order you would like a copy of, tap the three dots in the upper right-hand corner and tap 'Generate and save PDF'.
Commerce
Add separate page when a link is input
As part of the extensive CMS features Kodaris offers, you are now able to send your users to a separate thank you page when a form is submitted, as well as displaying a thank you message on the same page.
To use this feature when building a CMS page, you'll want to first create the form the user will be inputting. After doing so, select the form and go to the Block column on the right. Under Block settings, toggle 'Use redirect link on success' to on and input the desired redirect link in the 'Redirect Link On Success' field.
After publishing the page, when the user submits the form they will automatically be taken to the link entered on the CMS block.
Operations Portal
Warehouse type as you search
As part of the extensive pricing troubleshooting features Kodaris offers, we've made a small tweak to allow users to search warehouses as they type the name or code in. This is particularly helpful when your commerce system has a large amount of warehouses.
Delete unselected lines
As part of the spreadsheet-like screens that Kodaris provides for ease of use, we've made an update in this release to allow you to delete unselected rows. To use this feature, on any spreadsheet-like screen select the rows you would like to keep and click Edit > 'Delete unselected rows'. All unselected rows will immediately be deleted.
Import company cross references
As part of the robust PIM module system within Kodaris, you can create cross references for specific products via importing or pull in your cross references from your ERP. These cross references can be used to denote replacement items for products that have been phased out, customer cross references, interchange codes, etc.
As an addition to this feature, we've added the ability to import cross references under individual companies as well as on the global cross reference screen. To do so, navigate to the company you would like to add or update cross references on, under File > Import select your preferred method of importing, choose the file to upload and click Import.
Export tickets
As part of the Kodaris Services module, we've added an update where you can export all tickets at once. To do so, navigate to the Tickets screen, click File and Export. Voila!
Export company catalogs
In this release we've also added an update for users to mass export company catalogs and use the exported file headers as a template to import updates if needed.
To utilize, navigate to the Customers > Company Categories screen, click File and then Export.
Payment
Cancel a scheduled payment
Your robust Kodaris platform includes the ability for your customers to schedule a payment directly in their Customer Portal. As part of that capability, we've released an update that allows an employee to cancel the scheduled payment a customer has made if needed.
To do so, simply navigate to the Accounts Receivable screen and pull up the scheduled payment that should be cancelled. After doing so, click the button in the upper right hand corner to cancel!
Tickets
KOD-9537: Add To Weekly Job To Run and Check When Contract Expires
KOD-14779: Customer App - Loading payment methods still displayed on Pay screen even though no cards saved
Regression tests:
Case 1:
Login to the app, go to the payments → select 1 invoice → press “calculate total”
While loading, you should see {{Loading payment methods...}} message where payment methods should be
While loading, you should see icon, that represents loading
Case 2:
Login to the app, go to the payments → select 1 invoice → press “calculate total”
After successful load, when payment methods where found, you should see {{Select payment method}} message
After successful load, when payment methods where found, you should see icon that represent selection of payment methods
Tests:
Login to the app, go to the payments → select 1 invoice → press “calculate total”
After load, when no payment methods are found, you should see {{No payment methods available}} message
After load, when no payment methods are found, you should see icon that represents “no money”
KOD-15047: Customer App - Faceting and Filtering on Categories
Regression tests:
Case 1
Login to app
Open search on the top of the app
Perform search request
Results should be found in case of good request
Case 2.
Login to app
Open search on the top of the app
Perform search request
Try changing filters
Results of search should be updated based on filters
Try reseting filters
Results of search should be updated to results that was present after step 3
Case 3.
Login to app
Open any category
Results should be found for this category
*Tests:*
Case 1.
Login to app
Open any category
You should see new top bar
It should display number of results
It should display category name
Case 2.
Login to app
Open any category with filters present (some categories might not have filters)
Try to change filters
Results of search should be updated based on filters
Try reseting filters
Results of search should be updated to results that was present after step 2
Case 3.
Login to app
Open any category
Try to make search request
Your search request should be added to the top bar after the name of your Category
KOD-15221: Customer Portal - Order Items - Pricing Columns not working
KOD-15434: Style sample punchout success page
Regression Tests
Case 1
Test going through the checkout flow as a normal user, should work fine.
Tests
Case 1
Go to the operations portal → Punchout
Select customer → and setup punchout
Copy the link into incognito or logout as employee then go to link.
Go through the checkout flow and place order
Make sure the thank you page looks fine.
KOD-15468: Supporting square footage calculator in Kodaris ERP integrator
KOD-15668: Add email and email files endpoints to Order, Quote, VendorInvoice, Company APIs
KOD-15751: Notifications not going out when Credit App Status is Updated
Regression Tests
Case 1
Login in the login page using a customer account. There should be no errors. You should not be redirected to the credit app form page
Case 2
Login in the login panel in the header using a customer account. There should be no errors. You should not be redirected to the credit app form page
Tests
Case 1
Login using a credit application account
Sign up for a credit application account using this link {{spcu/credit-application-register}}
You should get an email to set your password
After setting your password, login in the login page and it should redirect you to the credit application form page.
Also, check the login panel in the header. Logging in through there should redirect you to the credit application form page
Case 2
Check if we receive notifications when Credit App Status is Updated
KOD-15907: Call For Availability Issue with Longer Yard Names
Tests
Case 1
As a *guest* user you should be redirected to the sign in page after clicking *Saved Lists*, *Order History* or *Status Invoices* links in the header
After logging into your account you should be redirected to the appropriate page.
For instance:
Click on the Saved Lists - should see Sign in page
Log in - should be redirected to the Saved Lists page
Case 2
As a *logged in* user you should be redirected to the right page after clicking *Saved Lists*, *Order History* or *Status Invoices* links in the header
Case 3
setting *enableShopByStore=0*
Check both desktop and mobile
*Guest* user shouldn't see shop by store, white bar at the top should be hidden
*Logged in* user should see white top bar with his company and ship to information
Case 4
Setting *enableShopByStore=1*
Check both desktop and mobile
*Guest* user should see white bar at the top, shop by store is shown
Case 5
enableShopByStore=1
Check both desktop and mobile
Check if we can see and select different stores in Shop by store and it shows up as selected
Case 6
enableShopByStore=1
Check both desktop and mobile
Check if *logged in* user can select any Ship to locations and it works fine
Case 7
Check if you are signed in a Logout link is shown and it works properly, and if you’re not signed in no Logout link should show up
Case 8
enableShopByStore=0
Check both desktop and mobile
Сheck that inventory are not displayed for logged in and guest users, if this product doesn’t have inventory at all. Instead it displays *Call for Availability* on the product page, for grid and list view.
Case 9
*enableShopByStore=0*
Check both desktop and mobile
Сheck that *Call for Availability* is displayed for the special order products. If *specialOrders=true* in *pricesByCodes* endpoint we should see *Call for Availability* on the product page, for grid and list view.
Case 10
*enableShopByStore=0*
Check both desktop and mobile, for *logged in* and *guest* users
Check that for *Direct Shipped Products* all available inventories for all SKUs always are shown
Go to Direct Shipped Category
If product doesn’t have inventory level you should see Call
If there is inventory level it should show quantity on the product page, for grid and list view.
To verify it you can check *pricesByCodes* endpoint, skuData should show all available skus
Case 11
Checking for *logged in* user for grid and list view
If user has the store selected on the header, we should see inventories for this store:
Should be displayed selected inventory and Show more link on the list page
After clicking Show more link you should be redirected on the *product detail page* and see all warehouses for this product
If user doesn’t choose any store on the header we should see only user primary warehouse
*note*: you can find primary warehouse code on the development tab under your user company, in *defaultWebWarehouse* field, and if you search for this code on the Locations tab you will see the name of the warehouse
If user doesn’t choose any store on the header and doesn’t have primary warehouse on his company we should see the first warehouse in the list
Case 12
*enableShopByStore=0,* for *guest* user
Make sure there is no inventory shows, should see only *Call for Availability*
Case 13
*enableShopByStore=1,* for *guest* user
If user doesn’t choose any store on the header we should see *Select store to view availability* everywhere
If user has selected store on the header we should see *this* warehouse everywhere, on the product page, for grid and list view.
If user has selected store on the header, but there is no inventory for this store (see Case 8) we should see *Call for Availability* everywhere, on the product page, for grid and list view.
Case 14
setting *enableShopByStore=1*
Check both desktop and mobile, for *logged in* and *guest* users
Pricing should be always shown for *Direct Shipped Products*
If there is no price for product it should show *Call for pricing*
Case 15
*enableShopByStore=1,* for *logged in* users
Check both desktop and mobile
Pricing should be always shown for *all* products
If there is no price for product it should show *Call for pricing*
Case 16
*enableShopByStore=0,* for *guest* users
Check both desktop and mobile
You should *not* see any pricing of products
If there is no price for product it should show *Call for pricing*
Case 17
*enableShopByStore=1*, for *guest* users
Check both desktop and mobile
If user doesn’t choose any store on the header we should see *Select store to view pricing*
If user has selected store on the header we should see *Pricing*, on the product page, for grid and list view.
If user has selected store on the header, but there is no price available we should see *Call for Pricing* everywhere, on the product page, for grid and list view.
Case 18
For *logged in* users make sure that MSF pricing and the whole unit pricing is showing as well for products
KOD-15980: Include Delivery Address in Loading List
KOD-16201: Quote Shipto Reprice Issue
KOD-16481: Add /configuration endpoint to api/vendor/user
Tests
Case 1
Test new configuration endpoint
KOD-16718: Search Field is Not Working when in a Category Screen on Customer App
KOD-16778: Add List Price and Additional Product Code Field
KOD-16845: Adding SEO Schema Markup
KOD-16876: Vendor Invoices - fix the vendorInvoiceEmail-EJS template
KOD-17063: Able to refresh grid even though logged out issue
Regression Tests
Case 1
Go to operations portal → Customers, than basically just check if any previous functionality was not broken
Case 2
Need to check if logging in with username and password works.
Go to the operations portal
Sign in
You should be signed in and re-directed to the home screen
See if you are correctly logged in, try to visit some pages on the platform
Case 3
Make sure that the employee password reset flow works fine.
Go to the operations portal
Click forgot password link
You should be re-directed to the recover password screen
Enter your username
Click the recover button
Go to your email inbox.
You should see a lost password email
Open it
Click on the reset password link
Enter your new password and then confirm your password
Click the submit button
It should redirect you to the login page.
Try to log in with a new password
Case 4
Test logging into the employee portal using google where google sign-on is enabled
As a logged out employee
Navigate to the operations portal on a site that has google sign in enabled.
Click the google sign in button You should automatically be logged in and directed to the home screen
Case 5
Test that the operations portal generally works. Do a lot different tests, for example, viewing data in grids, filtering and other things you can think of.
Tests
Case 1
Go to operations portal → Customers, then duplicate the page. Logout from the portal on the second page. Go back to the original page and try to refresh the grid. It should take only 1 refresh(or any other action like going to a different page) for a login pop up to show up
KOD-17065: Move setting service to disk
KOD-17085: Create/implement a -99 invoice template - UX
Regression Tests
Make sure that the setting {{customerPaymentTemplateEnabled}} is set to {{0}}
Go to Customer Portal:
Navigate to Open Invoices
Open a test invoice via the Invoice # link
It should open the same order invoice template
Tests
Make sure that the setting {{customerPaymentTemplateEnabled}} is to {{1}}.
Go to Customer Portal:
Go to Open Invoices
Open a test invoice with *-00 or -0* suffix via the Invoice # link
The template should be the same as before since it’s not a 99 transactionType.
Make sure that the setting {{customerPaymentTemplateEnabled}} is set to {{1}}
Go to Customer Portal:
Navigate to Open Invoices
Open a *-99* invoice via the *Invoice #* link.
The template should be different and as shown in the video below.
KOD-17257: Customer App - enhancement - generate a pdf for order
Tests
Case 1
Login to the app
Go to the “My orders”
Press on any order
There should be “Three dots” on the right from order id
Case 2
Login to the app
Go to the “My orders”
Press on any order
Go to files tab
Press on “Three dots” on the right from order id
Loading should start
After loading, generated file should be opened
Case 3
Login to the app
Go to the “My orders”
Press on any order
Go to files tab
Remember already created files for the order
Press on “Three dots” on the right from order id
Loading should start
After loading, close generated file
You should see this new generated file
KOD-17274: Add Confirmation Email When Request Assistance Application Has Been Submitted
KOD-17355: Product List per Ticket UX
Regression Tests
Case 1
Check that changes didn’t break ticket details, you should still be able to navigate from the tickets header section to other tabs.
Case 2
Check the same for tickets tabs related to the following tabs:
{{jobs/lead/}}
{{quotes/quote}}
{{companies}}
{{orders}}
Tests
Case 3
Check product lists tab under Tickets tab.
Try adding list, editing, deleting the list
Case 4
Press arrow and go to the product list items.
Try adding, editing and deleting an item. Check that arrow leads to product details page.
Case 5
Repeat the some steps for Tickets that are placed on the
{{jobs/lead/}}
{{quotes/quote}}
{{companies}}
{{orders}}
KOD-17487: Enable AI search
KOD-17573: Time Logging Tweaks
Regression Tests
Case 1
Operations portal → Tickets → Log Time
Fill out the form and click the *Log* button, logging time should work properly
Tests
Case 1
Operations portal → Tickets → Log Time
Pick a date from the date selector.
Select “Log more time” option
After logging the date selector should display the selected date
Case 2
Operations portal → Tickets → Log Time
Clicking the *Log* button without filling out the required fields shows which fields are not filled out
KOD-17586: Operations portal - Display modules in order
Regression Tests
Case 1
Test if the employee portal works fine, visit some of the pages, detail pages, etc.
Tests
Case 1
Go to the employee portal, the modules on the navigation menu should be in alphabetical order
KOD-17614: Items Not Populating On Vendor Quote Sheet Drag and Drop
KOD-17625: Add custom part # to order acknowledgement
Regression Tests
Case 1
Please check that we still can make order, print it and see the email as usual
Tests
Case 1
Please check that if product has your part - it will be displayed on order details for 3 templates (order, pdf, email)
Case 2
On employee portal go to order → items and cash quote → item and check if there is customerProductCode column and value isn’t editable
KOD-17628: Payment Date should be the same in the AR grid and Invoice details screen
Regression Tests
Case 1
Check that on AR details Tab layout hasn’t changed, the same on the payment detail tab.
On the AR data tab and search tab check that data is displayed properly
Tests
Case 2
Check that Due Date and {{Scheduled Date}} for the payment on global AR search and data screens are the same as on the Payment Detail screen for the records with status *ScheduledPayment.*
Case 3
On the payment detail tab check empty state for dates when we don’t have *due date* field.
KOD-17654: Scheduled Payment Record Date Issue
Regression Tests
Case 1
Check that we are still showing date only for ScheduledPayment records
Check schedule payment flow
Tests
Case 2
Check that the day we’we selected while scheduling a payment, is the same on the open invoices tab in the Status column for the records with the status ScheduledPayment
KOD-17696: Add company address permissions to company address catalog endpoints
Tests
Case 1
Test new role {{companyAddressCategoryEdit}} is working
Case 2
Test new role {{companyAddressCategoryView}} is working
KOD-17764: CenPOS Payment Provider - Credentials Per Host - Finalize
KOD-17798: Add UX to Demo for Customer Catalogs in Operations Portal
KOD-17849: Text color on dark backgrounds is black
Tests
Case 1
Login to app.
Go to any category
Text at the top “Shop {category_name}” should be visible and white
Case 2
Login to app.
Go to any category
Add products to the cart
Go to cart
Press checkout
Press on any select (shipping, billing, payment)
Text “Save ✓” should be visible and white
Case 3
While testing this ticket you should not find any other black text on dark backgrounds in any other part of the app not mentioned in test cases (may try to ask different apps to test on)
KOD-17858: Bulk SKU Creation
Regression Tests
Case 1
Check if you can add SKU without any exception or try to add an existing record with an exception. It has to work like before.
Tests
Case 1
Swagger → Endpoint:
{{/api/system/sku/byProducts}}
Check if you can add non-existing record to the database without any exception. You need to test it with the several product codes.
If you try to add an existing record you need to skip adding of this record.
*NOTE!* Expect to return just a counter message → “{counter}“
Case 2
Swagger → Endpoint:
{{/api/system/sku/byDirectShippedProducts}}
*Note!* It will work only with products which has flag {{directShipped = true}}.
Check if you can add non-existing record to the database without any exception. You need to test it with the several product codes.
If you try to add an existing record you need to skip adding of this record
*NOTE!* Expect to return just a counter. Message → “{counter}“
KOD-17896: Update Line Numbers on Invoices
Regression Tests
Case 1
Generate order email, order pdf and view order in customer portal.
Everything should look fine.
Tests
Case 1
Generate order email, order pdf and view order in customer portal.
The line #'s should come from the webLineNumber field.
KOD-17902: Sort Product images by fileOrder
KOD-17910: Removing handsontable
Regression Tests
Login to your account:
Add items to your cart
Go to Cart page
Proceed with the usual checkout flow
Tab pages should load without any errors
Further test cart page by checking out.
Tests
Login to your account:
Go to Cart page
The page should load without any errors. If your account has {{isDragDropEnabled}} set to {{true}}, a drop field should show.
KOD-17945: Should not be able to delete line items off invoiced order
Regression Tests
Case 1
Check if you can open order’s items without any exception. If you can remove it or edit if you don’t have any invoiced statuses.
Tests
Case 1
Check orders' endpoints if you can edit or delete them
KOD-17951: Price Debug - Warehouse select needs to be autocomplete
Regression Tests
Case 1
Enter data to all required fields and ensure that price debug works like usual (it should show on the right the info about selected product)
Tests
Case 1
In employee portal go to price debug screen, the warehouse field should now be autocomplete
KOD-17977: Option to Delete Lines not Selected
Regression Tests
NO REGRESSION needed.
This feature has no effect on old code and functionality, only new code was added.
Tests
Case 1
Login into Operations portal as employee.
Go to any grid, for example Orders → Order details → Items tab
Make sure you have some items inside this grid, if no please add some.
Select some rows in grid
Click on Edit → Delete unselected rows.
Make sure all unselected rows were successfully deleted.
Case 2
Login into Operations portal as employee.
Go to any grid, for example Orders → Order details → Items tab
Make sure you grid is empty.
Click on Edit.
Make sure {{Delete unselected rows}} button is disabled.
Case 3
Login into Operations portal as employee.
Go to any grid, for example Cash Quotes→ Cash Quotes details → Items tab
Make sure you have some items inside this grid, if no please add some.
Select some rows in grid
Click on Edit → Delete unselected rows.
Make sure all unselected rows were successfully deleted.
KOD-18002: Display Pricing on Invoiced Order Line Items
Regression Tests
Case 1
Please test that products (list and grid view) and product pages work as usual
Case 2
If setting is turned off we should see prices on each step while creating order|{color:#36b37e}*Passed*{color}
Tests
Case 1
Please test that if hideCommercePricing setting = 1 → we won’t see any prices, in other case we can see them as usual.
Case 2
If order status = received and hideCommercePricing setting = 1 → we won’t see any prices
KOD-18006: PunchOut OrderRequest: BillTo > DeliverTo line is too long
Regression Tests
Case 1
Submit PunchOut OrderRequest with a regular customer full name in _DeliverTo_ element.
Check if Order is entered.
Tests
Case 1
Submit PunchOut OrderRequest with a custom information in _DeliverTo_ element (long string) - cXML file is attached
Check if Order is entered. First name, last name are empty at billing info section. Original _DeliverTo_ content is saved as notes on order.
KOD-18024: Disk page should be blank or an error page
Regression Tests
Case 1
It’s still possible to reach the store front after deployment, everything works as expected.
Tests
Case 1
Redeploy the environment.
Refresh the store front page
Expected behaviour:
a blank page with loading text in shown for a while
the expected layout is shown
KOD-18032: Import option for Cross Reference - UX
Regression Tests
Case 1
Go to companies → details page → Cross Reference
Check if page looks good
Case 2
Go to companies → details page → Cross Reference
Check if export works good
Tests
Case 1
Go to companies → details page → Cross Reference
Try to import csv file
Setting alwaysBatchUserUploads should be turned off
KOD-18036: Invoice Update
Regression Tests
Case 1
Check order email, order PDF, order PDF mailer, order layout, all should be working.
Login to operations portal > Orders
Check a sample order. Generate an order email. there should be no errors
Generate an order PDF. there should be no errors
Generate an order PDF mailer. Use the wrappedOrderPDFMailer-EJS layout in the popup. there should be no errors
Login to customer portal > Orders
Check a sample order and go to order detail page, there should be no errors
Tests
Case 1
Test order PDF, order PDF mailer, order Email and order layout. Invoice Date should be at the top of the page and PO date should be where the invoice date is previously
Login to operations portal > Orders
Check a sample order. Generate an order email. The layout should be correct
Generate an order PDF. The layout should be correct
Generate an order PDF Mailer. Use the wrappedOrderPDFMailer-EJS layout in the popup. The layout should be correct
Login to customer portal > Orders
Check a sample order and go to order detail page, The layout should be correct
KOD-18041: Display label for pick up only products
Regression Tests
Case 1
Make sure that Direct Shipped Products are marked with “Ships Direct“ label. Product code of one of Directly Shipped products:
Tests
Case 1
For products that are not shipped directly there should be a 'Pick Up Only' label next to them (only for guest users). Label should be displayed on products page (list and grid views), product and cart. When you are logged in, those labels should not be there.
Check if Cancel a Scheduled Payment works without any errors
_Note 1: After successfully canceled, you should see that status was changed to ‘ScheduleCanceled' and active was changed to 'No’. You also should not see an icon
KOD-18111: Customer Portal - Tracking Page for Orders - Endpoint
KOD-18127: Company category import by external ID failing
Regression Tests
Case 1: Check whether impotring {{CompanyProductCategory}} record works correct
at first turn on the setting: {{alwaysBatchUserUploads}} in setting list
go to page: /company-product-categories and select import action
you have to put existing *companyCode* from DB
{noformat}code, name, companyCode, externalID
2) go to page /operations/scheduler and run job: *SyncPayloadJob* then check again page /operations/company-product-categories whether record imported
KOD-18130: Add Log in or Continue as Guest page
KOD-18143: Create server side export for company catalogs screen
Regression Tests
Case 1
Check if export works without any problems
KOD-18144: Taxes - Ensure addons are taxed
Regression Tests
Case 1
Verify that taxes still could be calculated by Sovos
Tests
Case 1
For delivery address choose state, that takes shipping amount as taxable (e.g. Kentucky), make sure that shipping amount affects resulting tax
KOD-18145: Add the ability to change the XML header on responses from punchout
Regression Tests
Case 1
PunchOut SetupRequest is processed successfully with no errors
Case 2
PunchOut OrderMessage (cart xml) is generated successfully with no errors
Case 3
PunchOut OrderRequest is processed successfully with no errors
Tests
Case 1
PunchOut SetupRequest is processed successfully with no errors, response does not contain {{standalone}} attribute in xml header. Status text is “Accepted“.
Case 2
PunchOut OrderMessage (cart xml) is generated successfully with no errors, response does not contain {{standalone}} attribute in xml header.
Case 3
PunchOut OrderRequest is processed successfully with no errors, response does not contain {{standalone}} attribute in xml header. Status text is “Accepted“.
KOD-18148: Add new Action addToSearch
Regression Tests
Case 1
On Search Rules page, check if we have new option ‘addToSearch’ for action field
KOD-18170: Turn on checkout payment methods automatically when companies are synced from ERP
KOD-18178: Multiple Reps not Sticking when Assigned to a Lead
Regression Tests
Case 1: Check assignee process on lead details page
Go to a lead, assign two or more persons and then refresh the page. All persons should still be assigned.
KOD-18183: Do not show pricing until store is selected in shop by store selector
KOD-6501: Payment Provider sync jobs [Checks if it is Settled]
KOD-18184: Add direct ship flag to warehouse entity
Regression Tests
Case 1 Check wether we don’t have regression on locations list page on employee side and in swagger endpoint
Go to Locations page and then check we don’t have regressions
Go to swagger endpoints: /api/system/warehouse, create some warehouse record without field: *directShipped* and *isLocal* after creating should by default values =>
{noformat}"directShipped": false
"isLocal": true{noformat}
!image-20240103-154300.png|width=1424,height=795!
result =>
Try to set false/true for fields: *directShipped* and *isLocal* =>
KOD-18207: Customer Order Post Issues
KOD-18228: Add additional info to shipping address dropdown
Regression Tests
Case 1
Test selecting shipping addresses, the autocomplete searching, and checking out.
Make sure it works as expected.
Tests
Case 1
Check that the shipping address dropdown options show the address name, address, city, and state.
KOD-18234: Enable email attachments on cms forms
Regression Tests
Case 1
Try submitting both the contact form and the service form. Make sure they both submit correctly and the emails go out.
Tests
Case 1
On the service form, check that the attached files are added as internal files and are sent as attachments.
Note: the only allowed file types are jpg and png.
KOD-18237: Add direct ship flag to warehouse entity - UX