Items with quotes or percentage are not recognized by online POS or item master

I Had variants created in System as inches with symbol [ " ] but after upgrade to v10 , when entering barcode of those items items , items are not fetched ,

More over when clicking the name on items , it gives cannot find error as it doesn’t load the name in URL , i have to then manually type the remaining part to get the item .

see below e.g

image

Thanks

Can you please create a github issue for this?

Are you self hosted? Please include a traceback to help your case…

Yes ,
There is no traceback which appears , take for example this item
image
When you click on it , the address bar doesn’t load the whole name like this -
image
Without the the parts in quotes "107" and hence shows
image

Only after entering the “107” manually in the address bar , item loads.
Same is case for items with single quote " , percentage (%).

This problem prevents it from loading in the online POS when its barcode is scanned.

Thanks

No problem here to save and display an Item code with metacharacters…

frappe@erpnext:~/frappe-bench$ bench version
erpnext 10.0.4
frappe 10.0.5

Have you tested import and export?

To get a traceback for debug purposes, my guess is add a throw “hello world” in show: or with_page: (before frappe.show_not_found) frappe/pageview.js at develop · frappe/frappe · GitHub

Some notes -

My guess is the ‘route string’ that encodes the item page spec is broken in V10, so metacharacters in the item code now cause the page render error.

frappe@erpnext:~/frappe-bench$ find . -name ‘*.js’ | xargs grep get_route_str

This to me is intriguing and pivotal

Perhaps this is a worthy smoketest detector case to supplement these basic tests found here?

apps/erpnext/erpnext/accounts/page/pos/test_pos.js
apps/erpnext/erpnext/accounts/doctype/pos_profile/test_pos_profile.py
apps/erpnext/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py

@kolate_sambhaji @utkarsh_goswami and @vishdha is this a practical case to implement a test, first to reproduce the error then as the basis for a fix!?