SARAH

Changelog

Recent updates and new features in Sarah.

Last updated: 2026-06-18

Promotions and A4 labels (2026-06-18)

Promotions list fixes

  • Editable priority: changing priority from the table now saves correctly as an integer (previously failed on save).
  • Active toggle: enabling or disabling a promotion from the list works again.

A4 labels

  • Product brand text in label preview and print uses a darker color for better readability.

ARCA fiscal validation and correct cancellations (2026-06-18)

Safer invoicing for AFIP compliance

  • Emit validation: Invoice A only for Registered VAT (RI) customers with CUIT; Invoice B blocked when the customer is RI (must use A). Invoice C can only be issued by monotax or VAT-exempt businesses; monotax and exempt customers cannot receive Invoice A (B or C only). Applies in POS, invoice generation, and advanced invoicing.
  • Cancel validation: before issuing a credit note, Sarah queries AFIP and requires the buyer to match the registered customer (same party).
  • Automatic reversal: invoices produce credit notes; wrongly issued credit notes produce debit notes, copying the original buyer and amounts.
  • Patmos corrections panel (superadmin, /arca) and operational script for NC/ND correction chains on test receipts.

French, Turkish, and Simplified Chinese (2026-06-15)

More languages across the app and online shop

  • New languages in the selector: French, Turkish, and Simplified Chinese (in addition to Spanish, English, and Portuguese).
  • Full UI translation (POS, dashboard, online shop, onboarding, and more).
  • Auto-detection by country and browser; Sarah AI assistant replies in the selected language.
  • Docs for those locales fall back to English content until dedicated translations are available.

Sarah AI for administrators only (2026-06-15)

Business owners and managers

  • Floating assistant, /asistent page, and /api/chat require Administrator role (plus Pro plan).
  • Cashiers, salespeople, and junior salespeople no longer see the ✨ button or can query business data via chat.
  • Updated docs: Roles and permissions.

Multi-tenant security and accounts receivable in Sarah AI (2026-06-15) — v0.2.1

The assistant and writes stay within the user's company

  • /api/chat: verified session via getUser() and membership check (userHasCompanyAccess); no longer relies on the x-user header alone.
  • db tool: stronger isolation — promotion_targets and sales_details scoped by company; FK ownership on creates; company_id cannot be changed on update; cross-tenant companies list blocked.
  • App CRUD: updateTableData requires row permission and filters by company_id.
  • Sarah AI: accounts receivable queries without date ranges; get_accounts_data fix; follow-ups for debts and pending invoices.

Sarah AI — floating assistant and Pro chat (2026-06-15)

Business queries backed by live data

  • Floating assistant (✨) and Sarah AI page (/asistent); Pro plan required.
  • Gemini 2.5 Flash agent via AI Gateway (5 steps max, limited follow-ups).
  • Clean UX: one final reply per turn, promotions with product names, Mermaid charts.

Guided onboarding and industry catalog (2026-06-15)

Faster setup for new merchants

  • Sample product import from Catalog (/onboarding/catalog) tagged in products_db.
  • Guided tour (driver.js) on dashboard, products, and POS.
  • Post-signup activation flow and progress tracking in onboarding_progress.

Global documentation search (2026-06-15)

Quick wiki access from the dashboard

  • Search help shortcut in the header with instant docs search (es/en/pt-BR).
  • Plain-text indexing and improved ranking on /api/docs/search.

New public landing (2026-06-15)

Homepage focused on kiosks, grocery stores, and bookshops

  • Redesigned sections: pain points, benefits, comparison, demo, YouTube tutorials, testimonials, and pricing.
  • SEO metadata and i18n per locale (es/en/pt-BR); dynamic OG/Twitter images.
  • Optimized WebP assets and deferred loading for below-the-fold sections.
  • Trustpilot link and YouTube channel centralized in constants.

POS: cart layout mode for Junior Seller (2026-06-14)

More flexibility in point-of-sale layout

  • Users with the Junior Seller role can now switch between always-visible cart and panel layout, same as other POS roles.

POS: invoice type selector (2026-06-12)

Cleaner checkout cart UI at the point of sale

  • The ARCA and fiscal invoice notice no longer sits below the selector: it now appears in a tooltip when hovering the info icon next to the Invoice Type label.

Fix for shared links and infinite reload when opening products

  • Canonical product URLs use ?product={id} on the store home again (reverts the /p/{id} experiment).
  • Legacy /p/{id} links automatically redirect to ?product={id} so previously shared URLs keep working.
  • Fixed an infinite RSC reload loop when opening products via /p/{id} URLs.

Product URLs, SEO, and analytics scripts (2026-06-11)

Online store: measurement and better indexing

  • Metadata and canonical: product, search, and filter pages correctly define what to index and the canonical URL (?product= for products).
  • Analytics scripts: in Settings > Online Store > Analytics and tracking you can paste Google Analytics, Meta Pixel, or other scripts. They load on the public store only (not the admin panel), deferred to avoid impacting page speed.
  • Internationalization: configuration strings in Spanish, English, and Portuguese.

For more details, see Store setup and Store products.

Integration API and webhooks (2026-06-11)

Bidirectional integration with external systems (ERP, marketplaces, etc.)

  • Company settings: new Integration API and webhook section to set the outbound webhook URL and the deposit used for sales and stock queries.
  • Stock notifications: Sarah sends events (e.g. stock updates) to the configured webhook when products are created or updated.
  • Inbound API: external systems can query stock (GET) and send events (POST) with Bearer authentication and optional signature (x-signature).
  • Configurable deposit: choose a specific deposit or the sum of all deposits for integrations.
  • Internationalization: interface available in Spanish, English, and Portuguese.

For more details, see Integrations.

Inventory, A4 labels, and online store (2026-06-11)

Catalog, label printing, and store experience improvements

  • Store product order: alphabetical, best sellers, and manual modes from Settings > Online Store; Store featured and Store sort order fields per product.
  • A4 and thermal labels: improved printing with configurable VAT on labels, promotional prices, saved preferences (columns, rows, layout), and quick load by promotion or recent price update.
  • Product fields: profit margin, dimensions (weight, height, length, width), and store fields from the product form.
  • Share products: WhatsApp button in the store grid and product panel.
  • Per-store SEO: sitemap and robots.txt per store domain; structured data for products.
  • Performance: loading improvements (LCP) and optimized images in the store.

For more details, see Products, Store products, and Store setup.

ARCA, dashboard, and cash shifts (2026-06-11)

Fiscal billing, control panel, and shift closing

  • ARCA in POS: automatic tax regime detection when entering CUIT; dynamic receipt type selector based on ARCA connection status.
  • Dashboard: period-over-period comparison, new toolbar, and refactored metrics (sales, accounts, profitability).
  • Cash shifts: shift closing ticket with reprint and WhatsApp sharing.

For more details, see AFIP/ARCA configuration, Key metrics, and Cash register shifts.

Cancellation system and Junior Salesperson role (2025-02-11)

Product and sale cancellation system with barcode authorization

  • New Junior Salesperson role (Role ID: 4): Inherits Salesperson permissions but with additional POS restrictions: cannot edit prices or quantities, requires authorization code to remove products or cancel sales, cannot see returns or the Inventory > Products menu.
  • Product cancellation: Junior Salesperson users must scan an authorization code to remove products from the cart. Each cancellation is recorded with full detail.
  • Quick cancellation (shortcut Q): Two-step mode for quick cancellations: scan authorization code then scan the product barcode.
  • Sale cancellation: When closing a sale, the Junior Salesperson must provide an authorization code and a mandatory comment explaining the reason.
  • Authorization code management: From company settings, you can generate, print, view, and delete authorization barcodes with descriptive labels.
  • Cancellation logs view: New /cancellations page accessible only to administrators, with detailed records of all cancellations including date, type, product, user, authorizer, and comment.
  • Database: New cancellations table with columns for type (product/sale), comment, and full cancelled product data. New cancellation_authorizer_barcodes table for code management.
  • Internationalization: All new interfaces are available in Spanish, English, and Portuguese.

For more details, see Cancellations in POS and Roles and Permissions.

Channel filtering and promotion handling in shop (2025-01-29)

Add channel filtering and promotion handling in shop components

  • Promotions model: Introduced a new channel field in promotions to differentiate between POS and online store applications.
  • PromotionsPage: Updated to display the channel information for each promotion.
  • getCartWithPromotions: Implemented logic to filter promotions based on the selected channel.
  • PromotionModal: Enhanced to allow users to select the applicable channel for promotions.
  • ClientShopCart: Updated to calculate and display cart totals with applied promotions based on the selected channel.
  • Localization: Expanded locale files with new keys for channel labels and descriptions in English, Spanish, and Portuguese.

For details on configuring promotions and channels, see Creating and Configuring Promotions and Introduction to Promotions.

Payment surcharge handling (2025-01-29)

Implement payment surcharge handling across various components

  • PaymentModal and QuickInvoiceModal: Added support for payment surcharges. Surcharges are calculated based on the selected payment methods and their associated boxes (cash registers).
  • Invoice component: Updated to display payment surcharges clearly in the total calculation.
  • Boxes page: Enhanced to include payment surcharge percentage in the table and field labels for better user understanding.
  • Data layer: Refactored Supabase queries to fetch payment surcharge data from the database, ensuring accurate calculations.
  • Localization: Expanded locale files with new keys for payment surcharge labels in English, Spanish, and Portuguese for full internationalization support.

For details on using payment surcharges, see Payments and Collection Methods and Cash Register Management.