You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
During the conflict fix, module-scoped variables were changed from let to const:
// Module-scoped init guard — prevents redundant heavy initialization// when component remounts due to translationVersion changes.// Tracks the profile+shift key so a user/shift change correctly re-initializes.const_initializedKey=nullconst_posInitPromise=null
The file still reassigns them elsewhere (_posInitPromise = initPOS(), _initializedKey = ...). This throws "Assignment to constant variable" and breaks POS initialization.
Permission is checked once at the start, then bypassed on save. A user with partial Item permissions could still write Item Price without an explicit Item Price permission check.
Fix:
Remove ignore_permissions=True and rely on normal permission checks, or
Add explicit Item Price create/write permission checks before price updates
Do not bypass permissions after a partial check
3. get_products() ignores POS Profile item group scope
get_items() in items.py respects _get_pos_profile_allowed_item_groups(). get_products() returns allis_sales_item = 1 items (limit 100), not just items allowed for the active POS Profile.
Risk: Cashiers may see and edit items outside their profile scope.
Fix: Reuse _get_pos_profile_allowed_item_groups() (or a shared helper) when building filters.
Important Issues
Issue
Details
Branch is stale
Missing recent develop work. Expect merge conflicts on rebase.
Huge unrelated diff
~89 non-translation files changed — mostly formatting, plus printInvoice.js, offline.worker.js, posCart.js, etc. Should be split or rebased onto clean develop.
Translation churn
ar.csv, id.csv, pt-br.csv fully reformatted (~9k line changes). Hard to review; likely merge noise. Prefer adding only new strings.
Item code = item name
item.item_code = data.get("item_name") — duplicates and special characters will fail; no naming series.
No pagination
Hard limit=100; no "load more" in UI.
Search fires on every keystroke
watch([searchQuery, filterGroup], () => loadProducts()) with no debounce.
Search scope
Backend only searches item_name, not item_code / name.
Missing frontend validation
UI marks item group and UOM required but only validates product name and price.
Disabled items shown
get_products does not filter disabled = 0.
Image upload
No file size/type validation; errors only logged to console.
Direct REST for UOMs
fetch('/api/resource/UOM?...') bypasses call() wrapper and consistent error handling.
refreshItem does not exist in itemSearch.js on develop or on this branch. It was removed when unrelated itemSearch.js changes were reverted in d4044594.
Impact: Product save succeeds on the server, but the UI shows "Failed to save product" because refreshItem throws. POS item grid may not update until a manual refresh.
Fix options (pick one):
Add a minimal refreshItem(itemCode, profile) export to itemSearch.js (recommended), or
Remove the refreshItem call and rely on invalidateCache() + a documented full reload, or
Call pos_next.api.items.get_items directly from ProductManagement.vue and upsert into the store
Minor Follow-ups (non-blocking)
Translations — New UI strings (Product Management, Stock Lookup, etc.) are not in pos_next/translations/*.csv in the final diff. English works; ar/id/pt-br will fall back until strings are added cleanly (without full-file reformat).
Naming series — Confirm POS-ITEM-.##### works on target sites (Frappe make_autoname usually auto-creates series counters; verify on a fresh site).
Re-enabling disabled items — Disabled items are excluded from the list (disabled: 0 filter), so a product disabled via POS cannot be re-enabled from the same screen without Desk access.
components.d.ts — May need regeneration after merge (pnpm/vite build).
Updated the blockers and suggestions .. please check
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added POS sidebar Product Management with permission-based access, product list/edit form, image upload, UOM conversions, pricing, maintain-stock control, Desk link, and live item refresh after save.
Screen.Recording.2026-06-13.at.5.45.22.PM_compressed.mp4