Happy ERP
Open demo

v3.200.171

Changelog

What changed in each version, written for shop owners — the app updates itself, nothing to install

3.200.171 2026-11-08

  • 💬 New card-style price/product reply: answers first (✅ in stock · ⏳ pre-order · 🙏 sold out) · transfer and COD prices on their own lines · sizes · up to 3 details, never cut mid-text
  • ⚡ Stock count shown only when 5 or fewer are left («only N left») · sold out = the customer can type «… ມີເມື່ອໃດ» to be notified
  • 📏 Asking for a sold-out size says so and lists the sizes in stock
  • 🔳 QR always appears on phones with slow internet: waits and draws itself · if it cannot load: retry or the shop's QR image · never prints a blank box
  • 📷 Barcode camera and province list show a message and a retry button when they cannot load

3.200.170 2026-11-08

  • 🧾 COD debt: «Remove from COD debt» button (owner/admin) — pick a reason: test order = goods back to stock · courier did not collect = booked as a loss · can be undone
  • 💸 Refunding a COD order the courier has not paid out yet first asks «Did the courier collect from the customer?»
  • ↩️ «Undo money received» within 7 days (with a reason) — reverses cash-in, commission and points · no repeat message to the customer
  • 📊 One COD-debt figure on every screen (shipping, home, Telegram, advisor)
  • 💬 Chat staff can open the courier branch list

3.200.169 2026-11-08

  • 📝 Purchase orders: staff send requests · the owner approves or rejects with a reason · only approved POs can be received
  • 🔁 A rejected PO can be «Edit as new request» · a 0 ₭ line must be confirmed as a free item
  • 📊 Every CSV (including the backup ZIP) opens in Excel with Lao intact and proper columns
  • 📷 Bulk add: barcode scan · empty rows get an automatic 13-digit barcode
  • 📍 Courier branch directory (HAL, Anousith): search · near me · call/WhatsApp · public page /branches/

3.200.168 2026-11-08

  • 📦 Packing needs a printed label (pickup excepted) · shipping needs packing first
  • 👆 One-tap «print + pack» and «pack + ship»
  • 🔐 Only owner/admin can skip a step, with a reason

3.200.167 2026-11-08

  • 📦 Packs: set «1 box = 12 pieces» and receive stock by the pack with a live total (stock stays in pieces)
  • 🏷 A/B/C sales-speed labels from 30-day sales
  • 🕘 Price and cost history: who changed what and when (owner and admin)

3.200.166 2026-11-08

  • 🧾 Cancelling a printed order now voids its label · pick a reason and tick «label removed, items back on the shelf»
  • 🖨 Labels print only for paid, COD or deposit orders (a shop can allow printing before payment)

3.200.165 2026-11-07

  • 🖼 Product photos wherever order items are listed (list · detail · pick list · packing · POS · tracking · storefront) — tap to enlarge
  • 👤 Customers: full profile page with photo · Call · WhatsApp · Chat buttons (WhatsApp for mobile numbers · can mark «no WhatsApp»)
  • 🔔 More complete restock alerts · ⏱ «awaiting reply» counts 3 h + a warning row on the chat page · ✓ a customer typing «received» marks the order received

3.200.164 2026-11-07

  • ⚖️ Weight, size and brand on the product form and CSV · the AI can answer about brand
  • 🏷 In-house 13-digit barcodes with category and size + sticker printing
  • 📥 Safer CSV import: new products always get their sizes and quantities · new categories are created · S,M,L = 3 sizes · old files after a size change follow the file · rows pasted from Excel don't inherit the row above · deleted codes can't be reused

3.200.163 2026-11-07

  • 🧾 Waybill photo: AI reads tracking numbers — sure = filled in · unsure = you check first
  • 🔒 Staff notes and return reasons no longer appear on the customer's tracking page · customers edit only their own note · shipping labels print only the customer's note

3.200.162 2026-11-07

  • New 4-step product CSV import (file · match columns · review · import) · cleaner CSV export
  • Add many products on one page · duplicate a product · stock per size when creating · category defaults

3.200.161 2026-11-06

  • Customer messages in Messenger and web chat: every link is a button (track · pay · my page · browse …) · outside links = «🔗 Open» button · Facebook comments keep plain links (buttons not allowed)
  • «How to pay» on cash-on-delivery orders: no bank account until the customer picks «Transfer» — then a QR with the right amount · tracking page says who confirmed receipt · orders without a chat room no longer alert the shop repeatedly

3.200.160 2026-11-06

  • Customers can wait for a sold-out size (chat or storefront) → when that size can really be bought again they are told (also when a reservation is cancelled) · asks back when the size doesn't exist · «2 pcs» is a quantity, not a size
  • «Sales lost to sold-out» report (no order within 7 days) · shop Telegram lists waiting customers, split into several messages when long

3.200.159 2026-11-06

  • The app loads small files first and large ones after — shorter waits on slow networks (about 21 → 12 s) · switching Lao/English/Thai works online and offline

3.200.158 2026-11-06

  • Product form: offline = cannot save but what you typed stays · two devices editing at once no longer drops sizes or adjusts stock · errors shown in Lao under the field · failed photo uploads are reported honestly · COD fee like 1,500₭ allowed
  • HAL tracking: parcels at the branch are checked every hour (was 6) + a «🔄 Check HAL now» button

3.200.157 2026-11-06

  • Chat reply speed page: see how long AI, staff and message delivery take (median · 90%) · alerts when AI is slower than 30 s or chats are left unanswered
  • Product form: «Manage categories» opens over the form without leaving it · a new category is selected for you · what you typed stays

3.200.156 2026-11-06

  • The add/edit product form is now a full page (with its own link) · Back returns to your place in the list · leaving with unsaved changes asks first
  • A form left open still saves to the real product · stock you did not touch never overwrites sales made meanwhile · a product deleted on another device is reported and not saved

3.200.155 2026-11-06

  • Simpler phone screens (Nielsen r27): orders list starts higher · bulk actions appear after selecting · order detail shows 3 actions + «⋯ more» · storefront shows products right away
  • 24px checkboxes in every form · «Ask AI» is an icon that never covers data · cancel dialogs say «Go back» · notification ask once (later = 7 days) · theme icon follows the mode
  • CF sheet confirm button stays on screen · product form hints in seller words · tracking page footer links easy to tap · one red button per chat room

3.200.154 2026-11-05

  • AI no longer re-asks when its question carried a link + buttons («cancel order … ?» → «yes» cancels) · never says «link sent» when nothing was sent · wrong/damaged/size always opens a return request
  • Quiet hours 21:00–08:00 also cover «back in stock» and «received?» (sent at 08:00) · no satisfaction survey when the chat ended after 21:00
  • A transfer request (QR · transfer · account number) on an unpaid COD order switches it to transfer and says how to go back · a bare «how do I pay?» shows both prices without switching
  • Transfer reminders: a manual «remind» counts as reminder 1 (never more than 2) · «reminder 1 sent» label · the cancel time told to the customer is kept · new hand-typed product codes need a letter + number
  • Remaining «ໃບ» order counts now say «ອໍເດີ» · profile picture on the customer card + no full inbox redraw per picture · page health: a quiet page is ℹ️

3.200.153 2026-11-05

  • New product edit page: sticky summary (transfer · COD · gross profit/unit · stock) · 5 numbered sections (rarely used ones folded) · bottom bar «Save» and «Save + add next» · errors shown under the field
  • Enter = next field · Ctrl+Enter = save · reorder photos with ‹ · closing with unsaved changes asks first · picking photos/videos from the Studio library no longer closes the form
  • Shops without a transfer account see the single price customers see · the data processing agreement (DPA) now lists customer profile pictures

3.200.152 2026-11-05

  • The chat list and room header show the customer's profile picture (when Facebook/Instagram provides one) — no picture = the initial as before
  • Order counts now say «ອໍເດີ» instead of «ໃບ» (e.g. «ຍັງບໍ່ຈ່າຍ 2 ອໍເດີ») in the app, Telegram reports and AI replies
  • Privacy policy updated 5 Nov 2026: states that customer profile pictures attached to messages are kept (that shop only · deleted on forget/deletion request · removed after 180 days without messages)

3.200.151 2026-11-04

  • AI replies faster: hand-offs, cases, return requests and cancellations are answered in the same round (median 9.9 → 7.9 s · 90% within 12 s), still through the same checks
  • Page health: a connected Facebook page with no customer messages for 24 h says "customers did not write — connection is fine · check ads/posts" and keeps its connection points · Zernio pages say "page can still send · check message receiving/ads"
  • The weekly AI report counts replies where the AI still wrote «ບິນ» instead of «ອໍເດີ» · page-care agency invoices are now called «ໃບແຈ້ງໜີ້» (invoice)
  • When a customer names a courier branch that is not in the registry, the AI saves it as given instead of handing off · the order shows «⚠️ Branch as told by customer (not registered) — check before shipping» for the packer

3.200.150 2026-11-04

  • «Order» everywhere: customer messages, staff screens and printed documents — official «tax invoice» and «shipping label» names unchanged · customers typing «ບິນ 1199» are still understood
  • Transfer orders whose reminder 2 could not reach the customer: auto-cancelled with stock returned after 7 days (night → 08:00) · a customer message first restarts the reminders · staff are notified once
  • Staff-created transfer orders (no chat room) cancel at the shop's deadline as before · timers: Settings → Money & shipping → Order timers & restock lead time

3.200.149 2026-11-04

  • Unpaid transfer orders: reminder 1 after 12 h · reminder 2 six hours later (states the cancel time) · cancelled six hours after that, stock returned · night steps move to 08:00 · adjustable in Settings → Money & shipping → Order timers & restock lead time
  • Paid orders with added/merged items keep their coupon · overpayment is recorded, queued for refund and sent to Telegram · paying the difference after the old dispatch date gives a new date
  • A shop cancel no longer messages the customer automatically (paid orders go to the call list) · no satisfaction survey after a cancel · barcodes compare case-insensitively

3.200.148 2026-11-04

  • Quiet hours 21:00–08:00: no automatic payment reminders, warnings or cancels · at least 2 daytime reminders before an auto-cancel
  • AI asks the courier before the branch on every new order · offers the previous courier only if the customer chose it · no dispatch date until address and courier are complete
  • Past the promised dispatch date: Telegram to the owner + an apology to the customer · an unanswered «shop will get back» after 60 min: AI answers from the order data or gives the shop phone

3.200.147 2026-11-03

  • Product codes are issued automatically = category prefix + number (e.g. A78) · set prefixes in Settings → Shop → Product codes
  • Two devices creating the same code: the second gets the next free code with a notice · deleted codes are never reissued (old orders still refer to them)
  • Save + add next (keeps category/unit/sizes) · similar-product warning · CSV import issues codes by category

3.200.146 2026-11-03

  • AI: asking for a QR on a two-price COD order switches it to transfer with the right QR amount · transfer-only items are stated clearly
  • AI: «new order» makes a new order · shortcuts no longer pre-empt the AI during its questions or order-number references
  • AI: cancel confirmed on the first yes (only the asked order) · no empty follow-up promises · no nudges for 24h after a cancel

3.200.145 2026-11-03

  • AI can merge orders: into a paid-but-unpacked order, or two orders into one (no double stock) · when refused it states the real reason
  • Orders missing phone/address offer the customer's previous details (masked, ✅ button) instead of asking to retype

3.200.144 2026-11-01

  • Messenger: tracking and edit links always appear as buttons — track, edit/add items, turn on alerts
  • Long bills get a follow-up «order menu» with the buttons · shipped notices get the track button too
  • Tracking page: the 🔔 button jumps to «turn on alerts» so customers get shipped/delivered alerts beyond Messenger's 24h window

3.200.143 2026-11-01

  • Order confirmation: products with transfer and COD prices get «Transfer» and «COD» tap buttons
  • New confirmation wording for COD surcharge, COD total and the reuse-address question
  • «Add … to bill 1199» now reaches the AI merge instead of a price card · long descriptions cut at word boundaries

3.200.142 2026-10-31

  • Product form: explains that kaishop COD is set in the product's «COD +₭» field

3.200.141 2026-10-31

  • The product list shows «COD …» under the price, including per-page COD (a range when pages differ)

3.200.140 2026-10-31

  • Adding items: shops where the customer pays the courier no longer mention the shipping fee
  • Label reprint needed: packers are told once

3.200.139 2026-10-31

  • Live-comment orders: the order summary has a «💳 Get QR to pay» button — tap for the QR
  • Customers can add items while the bill is not packed (even if paid) — same shipping fee; they are told «paid X · still to pay Y» with a QR for the rest
  • Packed bills: added items go on a new bill, shipped separately

3.200.138 2026-10-30

  • Every QR or payment link now asks the customer to send the slip for checking
  • «Payment received ✅» now says when goods are handed to the courier, from shop settings (no date for pre-order or held bills) — the AI and tracking page use the same date; staff are reminded if it passes unpacked
  • After the order summary, transfer bills get the QR with the amount automatically; if no payment method is chosen yet there is a «💳 Transfer · get QR» button

3.200.137 2026-10-30

  • Customer relink: «order 1124» with the phone now works too (3+ digits)

3.200.136 2026-10-30

  • Customers on a new Facebook account: the AI verifies with the bill number and the phone used, then they can see old bills and reorder; staff get a «link to existing customer» button
  • One bill can hold several tracking numbers — it counts as delivered when every parcel arrives
  • Chat: «mark as test room» — AI reports skip that room

3.200.135 2026-10-30

  • A ✅ tapped in time but delivered late reopens the same bill, with the price and courier the customer confirmed
  • Duplicate barcodes are removed with a notice to create a new one; a scan that matches two items asks which one
  • AI: returning customers are asked about the courier each time; courier and branch named together change in one step; it never claims a bill was sent when it was not
  • COD-only shops: the printed bill and ໃບຈ່າໜ້າ show a single price per row
  • Paid bills moved to a branch in another district get shipping recalculated; the shop page lets sold-out sizes be pre-ordered
  • With AI v2 on, every refund goes to the owner (the self-approve refund field is hidden)

3.200.134 2026-10-30

  • The user guide now covers the latest version: COD/transfer prices, scan-to-ship, parcel tracking, hold shipping, pre-order, barcodes, the chat role and more
  • «Ask AI — Happy advisor» can now answer about these features, with a link to the right guide section

3.200.133 2026-10-30

  • Switching payment to BCEL or QR now tells the customer it changed to transfer
  • Customers who already paid no longer get a second «changed to transfer, remaining …» message
  • A slip that no longer matches the current amount due is attached but does not close the bill, and the shop is asked to check
  • The AI quotes the correct COD price for each size and wholesale tier
  • COD-only shops: the order confirmation and tracking page show one price, matching what the AI quoted

3.200.132 2026-10-30

  • When a customer says in chat they have not received the parcel, the system remembers it, does not close the bill, and asks staff to call
  • If the courier reports delivery but the receiver phone does not match, neither the customer nor the AI sees «received» until the shop confirms
  • Parcels waiting at a branch remind staff to call every 3 days; automatic closing sends a single thank-you message
  • Held bills cannot get a tracking number or a printed ໃບຈ່າໜ້າ until the hold is released
  • Tracking page refreshes each time you open it, with actions for returned parcels and wrong numbers

3.200.131 2026-10-29

  • Tax invoice: if the buyer TIN is empty, you are asked before the invoice is issued
  • Paid bills: changing items or the address/branch recalculates shipping — more means a link to pay the difference, less means a refund request to the shop
  • After paying a difference, the customer gets one «paid» message
  • The COD fee is recalculated when the AI changes item quantities

3.200.130 2026-10-29

  • Every bill edit records «old → new» and who made it, whether from the app, the AI or chat
  • Changing the branch, branch phone, address or note after the label is printed shows «reprint needed» and tells packers once
  • Once a tax invoice is issued, buyer details and payment method are locked — change them by issuing a credit note and a new invoice
  • Old phone numbers in history are visible only to staff with bill rights; chat staff see them partly hidden
  • Chat: «load older» now shows replies the shop typed directly in Facebook

3.200.129 2026-10-29

  • Order status messages to customers are sent only by the server: no duplicates and none missed, even if the app is closed right after a change
  • The AI sees replies staff typed themselves (in the app and on Facebook), so it continues the conversation correctly
  • Groundwork for 1,000–3,000 chat rooms per shop without slowing down

3.200.128 2026-10-29

  • Payment QR with the amount filled in: customers scan without typing the amount — turn it on under Settings, payment QR
  • Bills held to ask the customer: once the customer answers, the AI updates the bill, releases the hold and tells the team
  • Customer changes items after paying: if the total rises the AI sends a link for the difference; if it falls the AI passes the refund to the shop to decide
  • If the AI edits a bill after its label was printed, packers are told to reprint; once shipped, the AI does not edit and hands it to staff

3.200.127 2026-10-29

  • The AI reports the amount due correctly: customers who have paid are no longer asked to pay
  • Profit in Telegram, reports and stock use the same numbers and show who really changed the bill
  • If a bill whose commission was already paid is cancelled or returned, it is deducted in the next period, for both staff and referrers
  • Set transfer and cash-on-delivery prices easily in settings and the product form, with example prices
  • Posts and reports show both prices, with a «COD fee» column

3.200.126 2026-10-29

  • The AI answers chats faster and more accurately: most replies arrive within 10–15 seconds
  • For in-stock items the AI no longer mentions pre-order waiting times
  • When a customer complains about service or a parcel is later than usual, the AI notices at once and passes it to staff

3.200.125 2026-10-28

  • Shipping label: row number, quantity and amount are clearly separated — no more run-together numbers
  • Bill and tax invoice: the «No.» header stays on one line
  • The shipping label is renamed «ໃບຈ່າໜ້າ» across the app

3.200.124 2026-10-28

  • New «Shipment tracking» menu item under «Shipping & COD» with a count of parcels that need action
  • The shipping page has a one-tap switch between «Pack & ship» and «Tracking»
  • The «In transit» tile opens tracking

3.200.123 2026-10-28

  • Customer bill: row numbers, unit price, size/colour, item and piece totals, courier and branch (address/phone), tracking QR
  • Unpaid non-COD bills print the transfer account and an amount-filled QR (for shops with the bank GUID set)
  • Shop logo and return/exchange policy on the bill
  • Tax invoice: row number, quantity and unit-price columns, buyer phone, payment method
  • Labels: row numbers, piece total, branch-pickup tag, always one sticker; agent bills show the agent's selling price

3.200.122 2026-10-28

  • New «Shipment tracking» page: every parcel by stage (waiting for number, in transit, at branch, received, stuck, problem) with call buttons
  • HAL parcels are checked automatically: once received, the bill closes and points and thanks go out (after a phone check)
  • Anousith: customers are asked if they received the parcel on the expected day, reminders when it waits too long, and a quick one-by-one review for staff
  • Add tracking numbers easily: scan, paste many at once, or read from a screenshot
  • The customer tracking page shows the parcel's journey and destination branch; the AI answers «where is my parcel» from real data

3.200.121 2026-10-28

  • The AI states a bill's status (shipped, paid, delivered) only when the real bill says so
  • When the AI says it will check, it really asks the shop right away and keeps helping with other questions
  • Things the shop has not set (warranty, returns, product details) are never guessed: the AI asks the owner once and remembers
  • Return requests, missing items and late parcels are opened properly for the shop to decide
  • Settings: return days «0» (no returns) now saves correctly

3.200.120 2026-10-28

  • The AI chat reviewer sees the same bill data and tool results as the AI, so it no longer flags made-up facts without proof
  • The morning report lists problem rooms: repeated questions, overlapping replies, non-Lao answers, long waits
  • Monday report: weekly AI numbers against targets
  • Web-chat customers whose bill was cancelled for a missing phone get one message with their cart link
  • Repeated general questions the AI cannot answer go to the owner once, and the AI remembers the answer

3.200.119 2026-10-27

  • Several messages in a row: the AI reads them all and answers once instead of overlapping replies
  • AI v2 order confirmations are built from the real bill and ask for one missing detail at a time
  • Product suggestions come only after the bill details are complete
  • «Drop at + branch name» is understood as the courier branch
  • Upset customer with an open bill: the AI apologises, says the shop will contact them soon and alerts the shop
  • Every shop uses AI v2 by default (shops that switched it off stay off)

3.200.118 2026-10-27

  • One product, two prices: set a cash-on-delivery surcharge per shop, page or product (existing price = transfer price)
  • Order confirmations show both 💳 transfer and 🚚 COD totals with the saving
  • Switching payment method recalculates the total, logs it and tells the customer once; printed/paid bills keep their total
  • Slips are checked against the transfer total; overpaying the COD total alerts the shop to refund
  • Shops that do not set it see no change

3.200.117 2026-10-27

  • Customer gives phone + branch + district in one message — AI saves all of it, no repeated branch question
  • "Switch to HAL, branch X" — courier and branch changed together
  • Pasted tracking link — reply in Lao, not English
  • Reads «ອານຸສີດ», Lao-digit phone numbers and ໍ/ຳ branch-name typos
  • No satisfaction survey after an outage notice; Get Started on Thai-language phones answers in Lao

3.200.116 2026-10-25

  • 🏬 Branch directory: Anousith 826 + HAL 828 branches (village · district · province · phone · hours) — the AI asks courier → branch → phone one at a time · several matches = the customer picks · a confirmed branch becomes the shipping address with its phone · the order form's branch field suggests branches
  • 🔁 Returning customers: «Same as last time?» with [Same] [Change courier/branch] buttons every time — tapping acts instantly · changing courier asks for the branch right away · [Home delivery] option
  • 🧾 Order confirmation and «added to your bill» messages use the table with 👤 name · 📞 phone · item details · ⛔ Zernio unpaid = the app says so plainly + Telegram alert and a back-online notice

3.200.115 2026-10-25

  • 🤖 The AI knows each order's full history (confirmed · paid · packed · shipped · delivered · refunded · cancelled, when and why) and bills closed in the last 7 days — answers correctly without naming staff · shop cancellations send no message; the AI explains when the customer asks
  • ❌ Cancelling a bill: optional reason (out of stock · customer asked · unreachable · duplicate · other) — the AI uses it to answer the customer
  • 🛒 AI: «I'll take 2» updates the bill · answers every question asked · «merge it» merges right away · never says «confirmed» while details are missing

3.200.114 2026-10-24

  • 🚚 Courier branch: «ຝາກ/ສາຂາ X» means pickup at branch X (no longer read as an address) · shown on the bill, label and tracking page · editable in the order form · the system remembers branches it has shipped to
  • 🧾 «Order received» is now a numbered list: code · name · price × qty · grand total — other AI messages use 📍 🚚 💰 lines and ask one thing at a time
  • 🤖 AI: in-stock items say «ready to ship» · remembers an address given in pieces (village → district/province → phone) without asking again · no English reasoning reaches customers · 🔔 new chat/order alert is now a tada sound

3.200.113 2026-10-24

  • 🔢 Product form: create a new barcode (shop-internal number, never repeated · one per size) + 📷 scan with the camera · scanning with a barcode reader no longer closes the form

3.200.112 2026-10-24

  • 🛒 Storefront: for products with sizes, a sold-out size can be pre-ordered even when other sizes are in stock · short stock = take what is there plus pre-order the rest (same as ordering in chat)

3.200.111 2026-10-24

  • 🧾 The alert bar shows «new holds» separately from «new orders» · staff phones get «✅ Hold #N confirmed — ready to pack» when a customer confirms
  • 🗂 A paused tab takes over by itself when the main tab is gone · a customer with several held orders must name the #bill so one reply does not answer them all

3.200.110 2026-10-24

  • 📦 Products: «⏸ Stop selling» and «📦 Pre-order» buttons in the product list (5–14 day wait · max per bill · max across bills) — out of stock but not stopped = still on sale
  • 💳 Pre-order payment policy per shop and per page: transfer first for everyone / new customers transfer first / COD for everyone
  • ⏰ Telegram alert to the shop a day before a pre-order bill passes its promised window · 🛒 Storefront: running short at checkout no longer empties the cart — lines are adjusted and you can order again

3.200.109 2026-10-24

  • 🔔 Chat alerts: late-arriving messages now ring and count · live comments stay quiet on the live page · each role only hears what it can open · a 🔔/🔕 button in the alert bar mutes this device
  • ✅ When a customer confirms a hold card in time but the message arrives late, the system reserves again and confirms instead of saying it expired
  • 📦 Bills with unreserved lines: staff confirmations tell the customer too · editing the items clears the short lines and the system's hold · a customer reply like “send it” releases the hold

3.200.108 2026-10-23

  • 💬 Faster chat through Zernio: when Zernio delivers customer messages late, the system now fetches them itself every minute (was 10 minutes) and alerts the team as soon as a delay passes 3 minutes
  • ⭐ Storefront: review stars are now yellow and easier to read

3.200.107 2026-10-23

  • 💬 Urgent fix: for pages connected through Zernio, if Zernio stops forwarding customer messages the system picks them up through a backup path within a minute (none lost, none duplicated) and alerts the shop

3.200.106 2026-10-23

  • 🛒 When some CF items are out of stock, what is available is reserved at once and the customer is told clearly what is missing, with similar items — no lost sale over 1–2 items · «discontinued» items are now explained instead of silently dropped
  • 🔔 New-chat and new-order sounds on every page and every device (a separate order sound) with a tap-to-open bar · phone notifications summarise new chat/live orders

3.200.105 2026-10-23

  • 💬 Chat history for every room is now kept safely on the server for 12 months — groundwork for shops with 1,000–3,000 chat rooms (nothing changes in how you use the app)

3.200.104 2026-10-23

  • 📦 Packing station: the camera scanner can stay open all shift and data keeps updating, with offline items still reaching the server · on a computer the lists and numbers refresh by themselves · phones no longer slow down when only new chats arrive
  • 🤖 AI: for a bill the shop is asking the customer about, the AI applies the answer itself (checks real stock and records the change) · for shops taking pre-orders, the AI accepts quantities above stock just like the storefront

3.200.103 2026-10-23

  • 🛠️ Fix: after a reload the app could show «app open in another tab» with only one tab open, and the first save after opening could be lost — reloading now keeps saving normally

3.200.102 2026-10-22

  • 🗂️ The app open in several tabs on one device: only one tab saves — the others show «app open in another tab» with a «use here» button · tabs no longer overwrite each other · stock held for an order that didn't go through is returned automatically (unless the stock was counted since)

3.200.101 2026-10-22

  • 🛠️ Pack station and printing improvements: an app update no longer wipes an order being packed · offline packs save themselves when the network returns, even without opening Shipping · scanning a label into a tracking-number field no longer saves the wrong number · the station flags items short on stock (pre-orders) · held orders are no longer reminded or auto-cancelled · packs made right after a batch print are no longer refused

3.200.100 2026-10-22

  • ⚡ Phones download only what changed: when another device saves, an open app downloads just a few KB instead of the whole shop (big shops: from ≈5.8 MB) and the screen no longer freezes — saves data and battery, especially for shops with several devices

3.200.99 2026-10-22

  • 🔔 Follow-up for stuck orders: paid (or confirmed COD) orders still missing a phone/address/courier — the system asks the customer again once (08:00–21:00) · no reply = into the call queue and the team is alerted · hold shipping with the reason «ask the customer» and a typed question → the system sends it and shows «customer answered» for you to release · can be turned off in Settings

3.200.98 2026-10-22

  • ↩️ Scan returned parcels (pack station → «Returns» mode): scan a bag → see the effect first (e.g. «stock +1») → scan again or tap confirm to save · bags needing the owner and unknown bags are listed separately · end-of-run summary · packers can receive returns only for uncollected COD parcels
  • 📶 Groundwork for phones to download only what changed (server side) · tracking links fetch only the orders still missing — phones use less data

3.200.97 2026-10-22

  • 📦 Scan-to-pack station (Shipping page): scan the label → instantly told if the order was cancelled, held, has an old label or is already packed → scan each item (wrong = red, not counted) → complete = «packed» · hand-over mode for the courier + run list · USB scanners work even on a Lao keyboard layout (tracking-number fields too) · packing continues offline and saves when the network returns

3.200.96 2026-10-22

  • ⚡ Other shops no longer slow down with a big shop: saves are computed first and only queue for the actual write — while a big shop has several devices saving at once, other shops save within half a second (was 3 s)

3.200.95 2026-10-21

  • 🖨️ Label print runs: print 100 labels at a time, then answer «all came out / up to label … / none» — a paper jam marks only the labels that really printed · labels of the same product come out together · filter single/multi-item · reprints show «R2» · a 3-character code next to the barcode tells whether the order changed after printing

3.200.94 2026-10-21

  • ⚡ Faster saves for big shops: each save of a data-heavy shop (≈6 MB) now holds the system's write queue 40–60% shorter — several devices saving at once (during a live) wait less, and other shops aren't slowed down

3.200.93 2026-10-21

  • 🔒 Data safety: automatic work (AI chat replies · expiry sweeps · Telegram ✅) now queues with the app before saving — a stock reservation just made on a phone can no longer be overwritten · order numbers stay unique even when created from several places at once

3.200.92 2026-10-21

  • 📦 Keep selling at stock 0 (shop-wide): the owner sets a wait-time text (e.g. «ordered item, arrives in 4–5 days») in Settings — products at 0 still take orders on every channel (chat · comments · live · storefront · POS) and the AI states the wait instead of «sold out» · empty = off (as before) · a product's own setting still wins · alerts say «to restock»
  • Products with their own «pre-order» (same rule, checked correctly): sized products need a size · bundles are judged as the bundle · gifts are kept · the «📦 pre-order» label only on orders really short · with the switch on, POS may sell stock reserved for unpaid orders (restock when alerted)

3.200.91 2026-10-21

  • ⏸ Hold shipping: tap «Hold» on an order card (with a reason · 7 days by default) — the order stays out of packing, labels, pick lists and hand-over until released · order tags (up to 5) are searchable · the orders page has a «slip to check» chip for payments still waiting

3.200.90 2026-10-21

  • 💬 New role «Chat staff»: the owner can create an account for an employee who only answers customers (Settings → Team) — sees chat and products only · sees the amounts of the bill being discussed but no reports, costs, stock or settings · sells by sending the order link · can send photos

3.200.89 2026-10-21

  • 🚚 Shops can add their own couriers (e.g. J&T): Settings → Couriers → «+ Add courier» (shop owner only) — the name shows everywhere: labels, order lists, the shop page, tracking page, customer messages · the AI asks about and reads courier names customers type («J&T», «JT»)

3.200.88 2026-10-20

  • 🏷️ Shipping labels list the items like the bill (one row per item with its amount · shipping · total · deposit) — the only bold amount is what the courier collects · customer bills and tax invoices carry the order barcode and the customer at the top
  • 📷 After «Scan to send bill» the app opens that customer's chat — send a photo of the parcel or the courier receipt right away · the chat has a camera button (between 🙂 and +) · a message that could not be sent shows as a warning, not a ✓

3.200.87 2026-10-20

  • 🔐 Groundwork for a «chat staff» role on the server: sees chat and products only — no costs, reports or settings — accounts cannot be created yet (next version) · an account whose role the system does not know can no longer open shop data

3.200.86 2026-10-20

  • 🧾 Shipping labels carry a barcode of the order number · the chat page has «Scan to send bill»: scan the barcode (or type the order number) and the app finds the chat of the customer who ordered and sends them the bill — it says so when Facebook refuses (e.g. the customer last wrote over 24 hours ago) · owner and admin only
  • 🏷️ Orders show the product name next to its code («A1 T-shirt/M×2») everywhere: labels, the bill to the customer, order lists, CSV files, search, and the confirmation the AI sends

3.200.85 2026-10-16

  • 💬 A phone number or village-district-province a customer types in chat or a comment before ordering is remembered with the chat (listed in customers · address shown in the customer panel) and filled into the order created later, with the delivery fee — the AI no longer asks again · «Create order» takes the phone from the chat · a phone typed while a reservation card is still open is not filled in yet

3.200.84 2026-10-15

  • ✉️ E-mail codes: a send that failed no longer counts against the limits · no single address can lock an applicant's code any more · a code pasted with spaces or dots is read · long waits are shown in hours

3.200.83 2026-10-15

  • 📊 The end-of-live summary and each history row show paid (count · total · %), COD on its way and profit (profit for owner and admin only)
  • 📋 Reports → «Live rounds»: one row per round (orders · paid · COD · unpaid · shipped · total) · tap for buyers and products · CSV · «Remind» only for those who have not transferred (never COD, never someone who already sent a slip)
  • 🗺️ Sales by page and by province (with the return rate) · the home tile compares with yesterday up to the same hour
  • 📥 CSV of sales per product by day or month · stock in, out and on hand per period (quantities · days of stock)
  • 💹 Profit uses one rule everywhere: a product without a recorded cost uses the current cost, marked «*» — never the full price as profit

3.200.82 2026-10-15

  • 🔄 A value changed back after a save whose answer was lost on the way (slow or dropped link) now reaches the server — no silent loss and no false «this device's data was overwritten»
  • 📶 The first opening after an update no longer re-sends the whole shop — only what changed (matters for a big shop on a slow link)
  • 🖼️ A shop's long link (/?s=…) pasted into a chat now shows the shop's name and picture

3.200.81 2026-10-15

  • 📦 Receive by scanning: the purchase-order receive box has a scan mode — one scan per piece, the box shows «37 of 50» · a product not on the order, or above what was ordered, is refused in words · before saving, the app refreshes and asks if another device already received · the count survives a page reload
  • 📤 Scan out from the stock page (damage · own use · lost): the whole batch is saved at once or not at all · taking out more than is on hand asks first
  • 🔢 In-house numbers are never given twice, even from two devices at once · sizes containing «/» (such as S/M) read from their stickers · the phone camera no longer counts twice after a brief missed read
  • 💰 Product cost stays right when a packer receives more than ordered, receives an order that was cancelled, or is the second to receive the same line
  • 🏷️ Owner and admin can clear the «received over» tag of a purchase-order line · signing out warns when a scanned count would be lost

3.200.80 2026-10-14

  • ✉️ The sign-up form has «No invite code? Get one by e-mail»: type your e-mail and a 6-digit code arrives at once — it works only with that e-mail, once, within 10 minutes · shared invite codes still work · the start buttons on happyerp.la open the sign-up form directly
  • 🔑 Many wrong passwords: the app says the password is wrong and points to «Forgot password?» (before: «too many requests») · when the password was not checked at all, it says plainly that it is not a wrong password
  • 📝 A saved tracking number or agent terms no longer keep the app from reloading itself into a new version

3.200.79 2026-10-14

  • 🏷️ Print the QR stickers of a whole purchase order in one go: each line starts with the pieces still to come · a header label per line so a run is easy to find · more than 600 stickers print in runs
  • 🔢 In-house numbers for keyboard barcode scanners: a product whose code a scanner cannot type gets an 8-digit number from the sticker box (owner or admin)
  • 📷 Scanning at the counter: an item held in front of the camera counts once (before, it counted again every second) · a code that matches two products sells nothing until you pick one · the camera really stops when closed
  • 📦 What the server decided about a purchase order now shows in the app (before, only on Telegram): goods received over the order · an order re-opened · a cancel refused · a new number · a line shows «N over»
  • 🖼️ The preview picture of a shop's short link or a product link pasted into a chat is a JPEG with its size — WhatsApp and LINE show it · product pages and shop pages carry text that search engines and AI assistants can read
  • 🌐 happyerp.la has real English (/en/) and Thai (/th/) pages · «Happy ERP» at the foot of a shop page and of the order-tracking page links to the home page
  • 🔑 Signing in: a server error is no longer shown as «wrong e-mail or password» · after too many wrong passwords from one network the message says so and how long to wait (on service.happyerp.la too)
  • 🔒 Team salaries and commissions no longer reach a packer's device or an agency seat — a device that already holds them drops them
  • 📝 Text left typed in a page you moved away from is no longer lost when the app reloads itself into a new version

3.200.78 2026-10-14

  • 📶 Opening the app without a connection: when the connection returns the app learns who is signed in and shows that person's menu by itself (before, a packer or a staff member saw the owner's menu until the app was reopened) · the bar says «no connection» instead of «not signed in»
  • 🔑 Signing in: several phones of one shop on one WiFi can sign in together — the guard against password guessing counts wrong passwords only. When the server answers that requests come too often, the app says «try again in … seconds», not «wrong e-mail or password»
  • 🏪 One device, two shops: after signing in with an account of another shop, the previous shop's data stays covered until the new shop's data has arrived
  • 🚪 Signing out without a connection: the sign-out is completed by itself when the connection returns, without reopening the app
  • ⏳ A device holding a much older version on a slow connection: the app keeps waiting while the update is making progress (the line says it is a one-time long update) instead of opening the old version that said «not signed in» for minutes
  • 🔄 Slow or hanging connection: a new version takes over sooner — a request the app has given up no longer holds the update back · a tab left open reloads into the new version by itself again when nobody is typing
  • 📴 The server answers with an error while the app is opening (maintenance or busy): the installed app opens instead of an error page · «checking your sign-in» for more than a minute: the sign-in button appears while the app keeps asking
  • 🧾 After a shop changes its VAT rate, an old bill keeps the old rate even when another device that still holds older data edits that bill
  • 📣 Shops using several devices: the owner's Telegram change report is complete (new orders · status changes · goods received for a purchase order) even when the save comes from a device holding older data
  • 📦 A packer or a staff member who has not opened the app for a long time is no longer told that data was overwritten when nothing of theirs was

3.200.77 2026-10-13

  • 📦 Two devices receiving goods of the same purchase order: both receipts are counted — the order and the stock agree (before, the second device's receipt was not recorded on the order although the stock had gone up)
  • 💵 A supplier payment noted on another device is no longer lost when two devices change the same purchase order
  • 🔢 Two devices creating a purchase order with the same number: both are kept — the second gets the next number (before, one was lost)
  • 🚫 Cancelling a purchase order after another device has received goods for it: the order is not cancelled and the device that asked is told
  • ⚠️ Receiving more than was ordered (two devices receiving the same goods, for example), or goods arriving for a cancelled order: recorded, and the owner is told on Telegram to count the stock (if the shop has Telegram reports turned on) — the message inside the app comes with the next version
  • 🔒 Closed a route by which an account that may not change stock (a chat-only account, for example) could change stock numbers with a hand-made request

3.200.76 2026-10-12

  • ⚡ After an update the app can save as soon as it appears — nothing is downloaded afterwards while you work (the camera barcode reader comes with the update; on a slow connection the update takes about 10 seconds longer)
  • 🔑 If the first sign-in check gets no answer (slow connection, busy server) the app says «checking sign-in» and asks again by itself — it no longer stays on «not signed in» for someone who is signed in
  • 🔁 When the connection is back the app waits 8 seconds before trying the update again — the new version takes over sooner than before
  • 🔕 After signing out, the app itself cancels new-order notifications on that device (it no longer depends on the server being reached) — the next owner or admin who signs in is asked whether to turn notifications on
  • ℹ️ The «use the previous version for now» button during a slow update exists on devices that hold version 3.200.72 or later — a device on an older version waits for its first update to finish

3.200.75 2026-10-11

  • ⏩ Updating the app on a slow connection: after 45 seconds of waiting, a button «use the previous version for now» appears — tap it and you can sell at once · the update goes on in the background and the app switches to the new version by itself when it is ready
  • 🛟 If an update does not finish, the app opens with the previous version that is still on the device — it still opens even if the connection is lost afterwards
  • 🔁 An update that did not finish is tried again by itself: after 1 minute, every 5 minutes, and as soon as the connection is back
  • ⚡ Updates finish sooner: an optional part (the camera barcode reader) is downloaded after the app has opened
  • 📴 Signing out without a connection: the app still opens (locked) instead of the browser's error page · and after signing out the app no longer downloads itself again
  • 🔘 The button on the lock screen and «Sign out anyway» no longer look switched off
  • ✏️ The texts on the «Recover» page and in the sign-out question are more accurate

3.200.74 2026-10-11

  • 🔒 After signing out, that device shows nothing of the shop until someone signs in — for phones and tablets shared in the shop
  • 🚪 Signing out while some work has not reached the server yet: the app sends it first · if it cannot, it asks and names the bills — it no longer leaves silently
  • 👥 One device, several people: an owner's sale that has not been sent yet is kept as a copy when a packer uses the device next — the owner signs in again and presses «Restore» in Settings → Recover: the bill comes back and stock is not cut twice
  • 🙈 While the app downloads the data of the account that just signed in, the screen does not show the previous account's data
  • ✏️ The «Recover» page says more: expenses and refund records in a copy are counted · products that were not overwritten say what differs

3.200.73 2026-10-11

  • 📶 Slow internet: the app update is faster and finishes in one go — the new version is downloaded 4 files at a time (before, every file was requested at once, so on a slow link downloads broke off and had to start again)
  • ⏳ During an update: the app keeps waiting while the download is still making progress and shows how many files have arrived — it no longer starts the whole download again halfway (saves mobile data)

3.200.72 2026-10-10

  • 🔄 After an app update: the app waits until every part of the new version has arrived before it starts — it shows “Updating the app…” meanwhile (before, on the first open after an update the old version still sent data to the server first)
  • 📶 An update that cannot finish (for example on weak internet): the app still opens and works as before, and updates by itself later — it does not stay on the loading screen
  • ⌨️ App left open across an update: it loads the new version by itself once nothing is being typed and no box is open · while you are typing it shows a yellow bar to tap instead, so the text is not lost
  • 📷 No internet: every page of the app and the camera barcode scanner still open after the app has been opened online just once (before, some pages had to be opened online first)

3.200.71 2026-10-10

  • 💵 Refunds from two devices close together: both refund records are kept (before, two devices could give their refunds the same number and the second one was not recorded although the money had left the drawer)
  • 📌 When the app has to replace its data with the server's and some edits had not been sent: the message stays in a yellow bar with the order numbers until you press “OK” (before, it showed for 2 seconds and was gone) · it now says correctly that the edits were made before the app update, not by “another account”
  • 📖 A rescue copy that cannot be restored automatically can now be opened in Settings → Recover: order number · status · tracking number · items · note · stock movements — so the work can be redone by hand
  • 💾 Device storage full: the app does not replace your data until it has kept a copy of the unsent edits, or you press “Continue without a copy” (it names the orders first) · the next sale no longer gets the number of an order that sits in a copy
  • 📱 The owner gets a message in the shop's Telegram when a device still runs the old app after an update (fix: close the app on that device and open it again) · the red “cannot save right now” bar no longer flashes when the app opens

3.200.70 2026-10-10

  • 🔁 When two devices change the same bill: a bill split, a bill merge or a refund that could not be saved no longer lands “in halves” (before: one item on two bills, or a refund recorded while the bill stayed unchanged). The system takes the whole set or keeps the whole set in the rescue copy, and “Restore” puts it back together
  • ⭐ “Restore” brings the customer's points back with the bill (before, the bill came back but the points given on delivery, used by the customer or returned on cancel did not) · a restored refund goes back into the drawer total of the shift that is still open
  • 📦 Packer: the “Delivered” and “COD received” buttons no longer raise a “data overwritten” warning, nor send “not enough permission” to the owner, for every parcel
  • 🔐 Shared devices: a rescue copy made under a packer or staff account can be read by the owner but not restored (so the bill's cost is not erased) · switching shops no longer stores a copy of the whole shop every time, which used to push out the copies you need
  • 💬 The messages after “Restore” say what is true: ✕ deletes the whole copy (and asks first) · “not enough stock” only when stock is really short · they say whether a refund must be recorded again or must not be · the Telegram notice to the owner names the bill numbers

3.200.69 2026-10-10

  • ⚡ During a live sale on a page where another Facebook auto-reply is switched on: if Facebook was briefly slow, a customer who typed CF could get “✅ booked” under the comment without the link to pay (introduced in 3.200.68). Now the system waits and sends “✅ with the link” again
  • 🔐 Devices shared by several accounts: closed one more path at upgrade time where the partial data of a packer or staff account could be sent up in place of the whole shop · if the app finds edits that have not reached the server and cannot tell what they were, it says so instead of silently downloading over them
  • 👋 Opening the app: “not signed in yet” no longer flashes before the check has finished (on a slow connection it used to stay for several seconds although you were signed in) · the “cannot save” message when reserving stock gives the real reason (billing lock · downloading data) instead of “internet required”

3.200.68 2026-10-09

  • 🔐 Several people on one device (owner · admin · packer · staff): when you sign in with an account that sees different data from the previous person, the app first downloads the data for that account again, and does not let you save until it has it all. Before, an owner signing in on a device last used by a packer could work on data without customers and expenses, and the first save could delete the shop's customers and expenses · and a packer signing in on the owner's device could see cost prices and customer data. After updating, close and reopen the app once on shared devices
  • 🚪 “Sign out”: the app sends up any work that has not reached the server yet, then signs out — the next person on this device does not find someone else's unsent work. If something is still unsent (no internet when signing out) and the next person uses an account that sees different data, the app does not send that work up — it tells how many orders and their numbers so they can be redone by hand
  • ↩️ “Restore” does not overwrite an existing product with an old copy: if a product in the copy differs from the current one, the app names it with the price in the copy and the price now, and you decide. Before, a price, cost or reorder point that someone corrected afterwards could be rolled back · the “Restored” message now counts products too (it used to say “0 orders” when restoring products typed in the sample shop)
  • ⚡ During a live sale: when Facebook is slow, hiding a comment is tried once instead of retried — the system goes on answering CF comments and the “Hold” button in the live console does not hang (before, it could wait up to a minute) · the “Hold” button no longer posts ✅ under a comment that is about to be hidden

3.200.67 2026-10-09

  • ↩️ “Restore” is more careful: if something happened to a bill after you edited it — the customer confirmed the hold · the customer used points as a discount · a discount or free shipping was approved for the customer · it was shipped with a tracking number · it was received and points were given · COD money came in · a deposit or slip · phone or address changed — Restore does not overwrite the bill; it names the bill number and keeps the copy so you can redo your edit on the current bill. Before, Restore could erase the customer's confirmation, the tracking number or the discount from points (the points stayed deducted), and give points twice
  • 🔒 A copy for which the app does not know what the bill looked like when you edited it (for example one made after the app was closed and reopened) never overwrites an existing bill — the app says “not restored” with the reason and you redo that edit by hand (this includes a bill merge that was only partly saved: the app asks you to check both bills and count the stock). Before, it could pull a shipped bill back to “paid”, or cancel a bill that had already been shipped · a copy of an old bill that is closed and archived is not put back either (stock stays right)
  • ⚡ During a live sale: the system replies to and hides CF comments without blocking saves on other devices, even when Facebook answers slowly — before, a slow Facebook at the moment of a CF comment could stop every device from saving for up to about a minute
  • 🔔 Sending notifications to many customers (promo start · group message · shop replied in chat) no longer blocks saving while they are being sent — before, a shop with several hundred subscribers could be unable to save for 1–2 minutes when a promo started

3.200.66 2026-10-09

  • 🧪 Tried the sample shop, then signed up for your real shop: “Recover” holds only the orders and products you typed yourself (orders come back as “waiting” · products with the right quantity) — before, “Restore” also brought the sample shop's orders, expenses and stock into the real shop
  • ↩️ “Restore” puts your edit back only if the bill is still as it was when you made it: if it was cancelled, returned, changed in quantity or refunded elsewhere in the meantime, nothing is overwritten, the bill number is named and it stays in the copy — this prevents stock being given back twice, e.g. a double cancel or a double return (a copy made after the app was closed and reopened still follows the earlier rule)
  • 🔗 A bill merge that was not saved is restored as one unit: the closed bill goes back together with the bill that received its items — an item is never on two bills, nor missing from both
  • 📋 A rescue copy keeps exactly what has not been restored and shows the counts (orders · products · refund records · stock movements) — before, it sometimes said “Restored 0” and the copy was gone · a refund record comes back only together with its bill
  • ⬇️ The “Pull from server” button: it does not pull while the app is saving · if the system was restored from a backup, what this device sold after the backup is sent up first — if that send fails (network drop), pressing again sends first again instead of overwriting

3.200.65 2026-10-08

  • 📣 Posting to a Page no longer freezes the whole system: before, while the system waited for Facebook to accept a post (a few seconds for photos · minutes for a video or when Facebook is slow) every device showed “no internet”, nothing could be saved and the bot could not answer — found on 8 Oct in the evening (two freezes of 2–3 minutes)
  • 📣 A post that takes long (a video · several Pages) no longer shows a false “no internet”: the app says the system is still working on it, no need to press again, and takes you to the row being published · your draft is kept

3.200.64 2026-10-08

  • ↩️ Confirm an order, tap “Undo” on the message bar, then confirm that order again: stock is now deducted correctly — before, the order came back “confirmed” without deducting stock (selling more than the shop has)
  • 🧺 Bundles: when a bundle sale is undone, or saving fails after the bundle was reserved, the stock of the items inside the bundle is now given back in full (before, it stayed deducted)
  • 👥 Shops with several devices: when another device has already confirmed the same order, an “Undo” or a failed save on this device no longer gives back the stock of that confirmation
  • 🔁 Orders stepped back and confirmed again several times: every new confirmation deducts stock (confirming in the app, by payment slip, or from Telegram)

3.200.63 2026-10-08

  • ↩️ The “Restore” button (Settings → Recover & audit): an order restored as “confirmed” now always reserves its stock with the system first — before, if its stock deduction had already been given back, the order came back “confirmed” without deducting stock (selling more than the shop has) · not enough stock = it comes back as “waiting to confirm” and the app names the order
  • 🚫 An order that was cancelled or refunded meanwhile is no longer restored back to “confirmed” — the app names the order so you can open it and decide · the rescue copy of an order that was not restored is kept (tap “Restore” again later, or ✕ to delete it)
  • 💾 When a restore cannot be done (no internet · you need to sign in again · the device's storage is full) the rescue copy is no longer deleted — the app says why and you can try again

3.200.62 2026-10-08

  • 🎁 Loyalty points you adjust by hand are no longer counted twice when the connection drops during a save (e.g. +1 then +2 could become +4) · when two people adjust the same customer, both adjustment records are kept
  • ♻️ If the system ever has to be restored from a backup: orders you sold after the backup go back up by themselves when you open the app (before, they could be silently overwritten) and order numbers are not issued twice — tracking links already sent to customers never point to someone else's order
  • 📦 Packers: a stock or reorder-point value that is not a number no longer makes the save fail — the old value is kept and the app says which field was not accepted
  • 🔎 The Happy team can now see which shop, device and app version saves slowly or gets stuck (no names, phone numbers or shop content are recorded) — problems of shops with a lot of data get fixed faster

3.200.61 2026-10-08

  • 📶 Shops with a lot of data on a slow connection: the app no longer shows “no internet — cannot save” while the internet works — it waits for the download according to the shop's size (up to 2 minutes) · after signing in, a slow download no longer clears the device and is retried by itself
  • ✏️ What you change while the app is waiting for a save to be answered (shop name · settings · chat labels) is no longer silently reverted — the app sends it on
  • 📦 An order confirmed by the AI or the ✅ button in Telegram, which you then step back and confirm again: stock is deducted correctly — before, when done quickly, the order could be confirmed without deducting stock (selling more than the shop has)
  • 🚦 When the system is busy or someone saves a lot of data: the app waits 2–3 s and saves again by itself instead of showing “no internet” · if a save takes longer than 6 s you now see “not on the server yet” right away
  • 🗄 Big shops: shop data up to 10 MB is accepted (was 4 MB) · when the device's storage is full the newest rescue copy is kept first, and the app says so honestly when none could be kept

3.200.60 2026-10-08

  • 🔢 Order numbers are never shared and orders are never duplicated — even when two devices create orders at once on a bad connection, or the system's reply is lost on the way: each order has one number, exists once, and what you edited while waiting is kept
  • 🤝 You confirm an order while the customer sends the address to the AI — both are kept (confirmation + address); no need to press again and no red bar
  • 📦 An order created on a bad connection that gets a new number keeps its own stock deduction, and another order that used the same number is no longer treated as “already deducted” — before, in that case one order could be confirmed without deducting stock (selling more than the shop has)
  • 🏬 Multi-branch shops: counting stock while another device saves no longer skews the branch total · receiving stock while someone else saves still notifies customers waiting for “back in stock”
  • 🔔 Customers are no longer reminded to pay, or asked “did you receive it?”, a second time after you edit that order

3.200.59 2026-10-07

  • 💬 Staff replying to chats (chat-only accounts): replies in rooms with 50 or more messages are now always stored — before, a reply could be dropped and the shop got a “not enough permission” alert on every reply · shops with more than 300 chat rooms no longer get false alerts either
  • 🔒 Chat messages already stored (including customers' pictures and transfer slips) can no longer be changed or removed by staff accounts — an attempt keeps the original and notifies the owner

3.200.58 2026-10-07

  • 🚦 Several devices saving at the same time no longer stall or fail — including storefront checkouts that used to wait 10–20 s and then fail while many people were saving
  • 🔕 The red “data was overwritten” bar no longer appears falsely: on opening the app · when two people edit different things (different chats · different products) · when the AI creates an order while you save — it shows only when your own edit was really overwritten, and “Restore” no longer overwrites other people's work
  • ⚡ Opening the app no longer uploads the whole shop every time — saves mobile data and makes the first save after opening faster
  • 📦 Stock counts: the count lines no longer go missing from the history when someone else or the AI saves at the same time · multi-branch shops: recounting no longer subtracts twice
  • 🛟 If the system is restored from a backup, the app now sends what was sold after that backup back to the server by itself when opened

3.200.57 2026-10-07

  • ⚡ When someone else in the shop or the AI saves at the same time, the app no longer downloads the whole shop again — the server sends only what changed (new bot orders · stock reserved by the storefront · the other device's edits) — large shop: from about 3.4 MB to under 50 KB each time
  • 🔕 Packers and staff: no more false “not enough permission” notices when the shop has orders that came from the bot or the storefront — their ordinary saves are no longer counted as forbidden edits · packer stock counts now clear the “due for counting” list and raise no false notice

3.200.56 2026-10-07

  • 🚀 Launching ads from service. is much simpler: pick a post and press «AI builds the whole ad» — the AI writes 3 copy variants, adds photos from the post or the product, sets the audience and sends it to Meta for a dry-run check · the budget is still your decision and an ad still starts only after the shop owner approves
  • 📣 When a post fails the AI review there is now a «Create a new ad from this post» button — it reuses the post's photos and info while the AI writes new copy (price and cash-on-delivery up front) · the post on your Page is not touched
  • 🩹 Fixed: «Check with Meta» was rejected when AI-suggested interests were used · «Send for approval» can always be pressed — the system runs the Meta check first and shows the reason if it fails · the «Let AI fix» button no longer lingers when the AI cannot fix the rest

3.200.55 2026-10-07

  • ⚡ Selling an item, changing a price or replying in chat now uploads only the rows that changed, not the whole list — shops with many products, orders and chats use far less data per save (large shop: one sale goes from about 1 MB to about 5 KB)
  • 🛡 If the list on the device and on the server do not match, the server never saves a half-applied change — the app resends that whole list by itself, nothing for you to do

3.200.54 2026-10-07

  • ⚡ Saving to the server is much lighter: the app now sends only what changed and compresses it first — editing a setting, replying in chat or changing an order no longer uploads the whole shop every time · shops with many products and orders sync faster and use at least 4× less data
  • 🛡 If the server cannot accept the new format (for example after a restore from backup) the app falls back to the old one by itself — nothing is lost and no error message gets in your way
  • 🧮 Three fixes found while reviewing sync: a manual points adjustment is no longer added twice when the connection drops and the app retries · per-branch stock is no longer double-counted when an admin/packer saves after another device reserved stock · no “sync conflict” Telegram notice when nothing was discarded

3.200.53 2026-10-07

  • 🩹 Hotfix: version 3.200.52 showed “Could not save — browser storage is full” when the app opened although storage was not full — no data was lost and there is no need to clear the cache · the message now appears only when storage is really full

3.200.52 2026-10-06

  • 🛒 Pre-order products now work end to end: selectable in the order form at zero stock · cart links sent in chat no longer open empty · Facebook posts are not tagged “sold out” · the Telegram confirm button is back · stock alerts say how many units are owed instead of “oversold”
  • 💬 Comments that start with your page name (a customer replying to the page’s comment) are read correctly — they used to be taken as a question or a cancellation when the page name contained such words · questions typed with the tone mark first are no longer read as orders
  • 📦 Paid orders and confirmed COD orders that still lack a phone or address: the system asks the customer once more (08:00–21:00) · no answer = they appear in “Call the customer” and the shop’s Telegram is told · the entry clears itself once the details arrive
  • 📊 Reports now say so when older orders have not finished loading (“incomplete”) and wait until they have before exporting CSV or printing
  • 🚚 Bulk “ship” skips bills with no phone/address and names them · courier-file import leaves orders not yet marked shipped untouched and names them (mark them shipped, then import again)
  • ⚠️ When shop data is larger than the server accepts, or device storage is full, a red bar stays up saying what happened and what to do — the Happy team is notified automatically

3.200.51 2026-10-04

  • 🧺 Picking list you can scope: COD only · paid · transfers awaiting payment, and per page — each option shows its order count · opens following the Orders page filters
  • ⚠️ Orders missing a phone or address are no longer skipped silently: the picking list names them, lets you open or include them, and the order row shows a “No phone/address” tag

3.200.50 2026-10-04

  • 🔎 Better product search: finds aliases customers use, category, sizes and barcodes, and Lao spelling variants · sort by name / code / lowest stock / price / newest · list thumbnails load ~30× lighter
  • 🕘 A “movement history” button per product — every +/− of that item, with the order number
  • 🔔 Stock alerts (oversell / out / low) are now per size and also fire for orders the AI takes in chat, comments and live
  • 🗄️ High-volume shops: finished orders are archived by data size (not only after 90 days) so sync never hits the limit · orders with a printed label are never auto-cancelled · deleting a discontinued product no longer switches it back on

3.200.49 2026-10-04

  • 🛡️ Edits to prices, costs and purchase-order receipts are no longer lost when another device or the AI saves while you are editing
  • 🏷️ Zero-price protection: clearing a price by mistake is not saved · a product priced 0 cannot be sold by the web shop or the AI · CSV import no longer wipes per-size prices
  • 💰 COD paid short by the courier: choose “Book as courier fee” — the difference is spread as a fee per parcel and shows in the profit report
  • ↩️ Two-step returns (optional, Settings → Delivery): a returned parcel is not counted in stock until you press “Received back” and choose resellable / damaged

3.200.48 2026-10-04

  • 📑 Orders by Facebook page: shops with several pages now see the page on each order and can filter, print labels and pick per page · the label shows the page name
  • 🗂️ The Orders page is now a work queue: awaiting confirm · unpaid · to pack · packed · in transit, plus filters for payment (COD/transfer), courier, date and label status
  • ✅ “Select all” now picks every order matching your filters (no 12-row limit) to pack, ship, print labels or print bills in one go · choose 12/50/100 rows per page
  • 🚚 Delivery page: hand over many parcels in one tap · paste tracking numbers from the courier's file · scan with the phone camera · search and filter packed / not packed

3.200.47 2026-10-04

  • ⚠️ Labels stay correct: if a customer pays by transfer or changes the address after a label was printed, that label is flagged “old label — reprint” and returns to the “not printed” filter — no more double collection by the courier
  • 🖨️ After printing, the app asks whether everything came out before marking orders “printed” · cancelled orders and orders with no phone/address are never printed and are listed separately so you can complete them
  • 📋 The shipping manifest now covers exactly the same orders as the labels, grouped by courier with the COD total and signature lines · bulk cancel and bulk ship ask for confirmation first

3.200.46 2026-10-04

  • 🎨 Line icons replace emoji on every page customers and partners see: storefront · order tracking · affiliate · post approval · agent portal, and the ad launcher / ads system / page health in service.happyerp.la — crisp and identical on every device and theme · buttons and wording unchanged

3.200.45 2026-10-04

  • 🎨 service.happyerp.la (page-care agencies) and the agent portal happyerp.la/agent/ get a complete new look in the Happy brand: ledger-style lists, paper-coloured status stamps, line icons instead of emoji, a left side menu on desktop, full dark mode — every button and step stays where it was

3.200.44 2026-10-04

  • 🎟️ Discount codes for your subscription: enter a code on the Billing page before paying — the amount to transfer updates at once and the receipt shows the discount line
  • ⚡ Running promotions now show on the plan cards in the app and on the pricing page automatically — no code needed

3.200.43 2026-10-04

  • 🔒 Founding shops: the price is now locked by the system itself — the Billing page shows your locked price and charges it, even after later price rises
  • 🗓️ Any future price rise is announced ahead with its start date, in the app and on the pricing page — renew before that date to keep today's price

3.200.42 2026-10-04

  • 🤝 The Happy /care page and application form always show the current prices and terms (plans · first-shops discount · shops taken per intake)

3.200.41 2026-10-04

  • 💰 Prices and terms on happyerp.la (Lao · English · Thai) always match the current price list — including the trial length and what Google sees
  • ✨ “Ask AI” and the in-app help assistant answer price questions from the current price list, not from text typed in earlier

3.200.40 2026-10-04

  • 🎨 App: the coloured left stripe on alert rows, status cards, call queue and the post calendar becomes a thin coloured ring around the box, per the brand standard (nothing moves · same meaning: yellow = look · green = fine · red = problem)

3.200.39 2026-10-04

  • 📝 You can now apply for Happy /care online at happyerp.la/care/signup: pick a plan, give your page and number, confirm your email with a 6-digit code — our team gets back to you before anything starts, and nothing is charged yet
  • 🏷️ /care page: the button on each plan card now takes you straight to the application for that plan (the free page audit is still at the top and bottom of the page)

3.200.38 2026-10-04

  • ✨ One help button at the bottom right of happyerp.la: open it and pick the “Ask AI”, “Contact admin” or “Feedback” tab (send a comment or report a problem), all in one panel
  • 👤 In the app: a “Contact admin” button is always in the “Ask AI” panel — press it to send a request to the Happy team, with your last question filled in (owners and admins)

3.200.37 2026-10-03

  • ✨ An “Ask AI” button on every happyerp.la page (bottom left): ask about services, prices, strengths, how to sign up and set up, in Lao, English or Thai
  • 👤 Prefer a person? Press “Contact an admin” in the same button: the Happy team gets your message on Telegram and gets back to you
  • 🤖 The daily AI reply limit now counts only AI replies: order cards and automatic notices don't count · one very chatty room no longer makes other rooms wait
  • 📄 Pricing page: several Pages per shop on every plan (Pro is for heavy chat) · Terms section 11: price changes follow section 5 (15 days' notice)
  • 📣 Happy /care prices from 3 Oct: Care 1,190,000₭ · Grow 2,990,000₭ · Performance 990,000₭ + 10% of sales growth (never more than 2,990,000₭ in total) · Happy Service is open for self sign-up

3.200.36 2026-10-03

  • 🏷️ The pricing section (happyerp.la/#pricing) now has an “Other services in the Happy family” strip: Happy AI (included in every plan), Happy Studio, Happy /care and service.happyerp.la, each with its starting price and a link to its full price page — the numbers come from the same place the Happy team sets prices
  • 📇 Happy's email and phone inside the shop app and service.happyerp.la messages now follow the main contact channels as soon as the Happy team changes them (like the footers and legal pages since 3.200.33)

3.200.35 2026-10-03

  • 💵 Prices and terms (trial days · grace days · daily AI limit · the setup pack) on the home page now come from the same source the billing uses: the website and the app always show the same numbers
  • ⭐ The Pro plan (2 Pages · 3× the daily AI limit) is opened through the Happy team: once paid, the AI tier is raised automatically
  • 📘 The guide's “Billing” section is rewritten (Lao and English): plans · how to pay and attach the slip · trial and grace · the setup pack · the Pro plan · receipts
  • 🤖 When the daily AI reply limit is reached (or one chat is asking too fast) the AI pauses, tells the customer plainly and alerts your staff at once · it no longer switches to a cheaper AI model

3.200.34 2026-10-03

  • 💵 New prices (for new purchases from 3 Oct): Happy ERP 599,000₭/month · 6 months 3,249,000₭ · 1 year 5,990,000₭ (≈499,000₭/month) · Pro 1,390,000₭ for 2 Pages or heavy chat · periods already prepaid are not affected
  • 🤖 The same AI quality on every reply: busy shops are no longer switched to a cheaper AI model · the daily reply limit is now stated on the pricing page and in the terms
  • 🧾 Terms section 5 (Fees): 14-day trial · 7 days' grace then read-only (data kept) · prices reviewed at most once a year with 15 days' notice · the first 10 shops keep their price forever

3.200.33 2026-10-03

  • 📇 Happy ERP's contact channels and company details now live in one place: email, phone and WhatsApp in every page footer, the legal pages, the guide and Studio update together when the Happy team edits them — the footer has its own easy-to-tap contact row
  • ℹ️ The “About us” page is rewritten: our vision · every service (Happy ERP · storefront · Happy AI · Studio · /care · service.) · the problems we see · the problems already solved and the ones we are working on

3.200.32 2026-10-03

  • ↩️ Undo after deleting: removing a product from an order, deleting an auto-reply rule or a quick reply now offers “Undo” in the bottom message for 6 seconds · small buttons on phones (CF queue, waiting list, shipping filters, photo/holiday remove) are easier to tap · the action button repeated on every row is now black — red is kept for the page's main action
  • 💰 Ad launch (service.happyerp.la): the full money formula “daily budget × days = maximum spend” is shown · “Pro settings” now lists what it changed on the page (budget first, old → new) with a button to restore · an AI review is marked out of date when the form changes after it · “Undo” after AI fixes restores your own text even after several fixes · the campaign name is marked required and checked before images upload

3.200.31 2026-10-02

  • 🎨 Online storefront — your shop colour works with any colour and always stays readable: the colour set in Settings › Shop now reaches every main button, including “Add to cart” (it used to stay red) · the text on those buttons is picked automatically, black or white, whichever reads better (orange, yellow, green and pink used to get hard-to-read white text) · light colours are no longer refused · the same goes for a promotion colour (promo banner, −% badges) · links and labels are no longer red when the shop has its own colour
  • 🔧 Storefront: errors after pressing Order (connection lost, out of stock) scroll into view · a “Try again” button when the transfer details or the shop list cannot load · “Add to cart” on a sold-out product now looks disabled · a clear black ring on every field and button when using the keyboard

3.200.30 2026-10-02

  • 🏷 One look, wave 3 — inside the app and service.happyerp.la: page and panel titles in Noto Serif Lao · square corners (pills, chat bubbles and status tags stay round) · main buttons and count badges in black ink on red paper (easier to read, especially in dark mode) · product codes on yellow paper, like the tags used on a live sale · a clear black ring on every field when you use the keyboard · everything is where it was and works the same
  • 🔧 Fixes: Reports — the daily sales bars are clearly visible in light mode (they were pale yellow on white) · Chat on desktop — the “pick a chat from the list” hint is no longer squeezed to one word per line · the subscription receipt links back to the app · the Facebook data-deletion confirmation page is light, bilingual and shows a contact email

3.200.29 2026-10-02

  • 🏷 One look, wave 2: order tracking, affiliate earnings, the agent portal (sign-in and sign-up), post approval, the monthly report and the whole guide (info.happyerp.la) now follow the home page: Noto Serif Lao headings · square corners · main button in black ink on red paper (easier to read in dark mode) · guide: the “I want to…” cards show their chapter number · the contents list scrolls to its end on phones · the “Contents” button goes to the contents
  • 🔧 Fixes: order tracking no longer flashes the search form while a valid link loads, and search still works when the network drops · agent sign-up now tells “loading”, “network problem” (with a retry button) and “link not valid” apart · printing any page uses a white background even in dark mode · the English guide no longer overflows on phones · shops on their own domain: a dead link no longer shows a list of other shops (it now says the link is not valid) · the system status page (happyerp.la/status) follows the same look and its “down” label is easier to read

3.200.28 2026-10-02

  • 🏷 One look across the site: the page-care (/care), free page audit, agency (/agency), help, changelog and policy pages now share the home page's header, footer and design (live-sale code tags · Noto Serif Lao headings) · /care plans are price tags, each with its own button · English pages link to English pages · the audit form marks required fields and its error text is easier to read · the wording of the policy pages is unchanged
  • 🔧 App fixes: the “Undo” and “Reload” buttons inside the bottom notification can now be tapped (after a live sale · POS refund · chat) · the salary and commission tables in Reports and the agents table have their columns back · service.: the A/B result table no longer prints ₭ after impressions/chats/orders · the Data Processing Agreement link on the policy pages opens from app.happyerp.la

3.200.27 2026-10-02

  • 🙋 Customers waiting for staff are no longer left in silence: after the AI hands a matter to a person, or the customer asks for one, and the customer writes again → the AI says honestly where things stand and still answers other questions (at night it says staff will reply in the morning) · staff are reminded at 5 → 15 → 60 minutes while nobody has replied · the morning report lists rooms still waiting · once a staff member replies (in the app or directly in Facebook) the AI steps back as before
  • 😡 Upset customers are handled deliberately: a real complaint → the AI apologises, states the verified facts (paid · shipped · tracking number) and alerts the owner urgently without going quiet · a threat to sue, call the police, post publicly or do harm → an urgent case is opened at once, the owner is alerted and the AI answers briefly and politely · rude words → the AI stays polite and does not argue

3.200.26 2026-10-02

  • 🏷 The happyerp.la home page is fully redesigned: live-sale product code tags hanging on a rail — press “CF” on tag #A3 and watch order → stock cut → slip → shipping label · two ways in: shop owners and page-care agencies/freelancers · the five steps of a selling night, “before → with Happy ERP”, each with a sample screen · four products (ERP · AI · Studio · /care), each saying which problem it solves · a section for agencies · headings set in Noto Serif Lao · the video section is removed

3.200.25 2026-10-02

  • 🔍 Deep audit of the customer AI, fixed: the "asked again" detector no longer counts other days or sticks to a new topic (greetings, answers to the shop's question and different sizes are not counted) · two slips for two bills in one go are both accepted · a question sent with a slip still gets its answer · product photos that are not the shop's own picture are recognised more often · a sticker after a shop question gets a request to type the answer · Vietnamese is detected more reliably · "can I cancel?" gets a confirmation question first
  • 🎤 Voice messages (still waiting to be switched on): a transcribed voice message cannot create, change or cancel an order until the customer confirms by typing — protects against mishearing

3.200.24 2026-10-02

  • 🤖 Customer AI understands more: a repeated question or "that's not what I asked" makes the AI retry knowingly, and the third time it hands over to staff by itself · replies in Chinese and Vietnamese · facts the shop has not set (opening hours · pickup) are answered as unknown, never guessed · "yes/ok" after an AI question is read as the answer · swapping an item in a bill takes one step
  • 🖼 Every kind of message: a photo with no text gets the product's details straight away (instead of "someone will look") · stickers no longer trigger a reply · every slip image sent is checked against every unpaid bill (paying the older bill first settles the right one) · voice messages: ready to be transcribed for the AI once a speech-to-text provider is chosen
  • 🔧 Fixes from the re-audit: "customer waiting" alerts really reach Telegram even with reports off · tapping a product link never adds an item to a bill · a re-sent reply is no longer mistaken for a staff reply · Settings: side menu and section bar no longer hide behind the app header · switching section returns to its top · address/long-text fields use the full row

3.200.23 2026-10-02

  • 🎛 Settings redesigned for order: desktop = section menu on the side with icons and descriptions · phone = a grid of all 8 sections on one screen · content in a single column read top to bottom · each section has shortcuts to its topics · short fields sit two per row · help text is smaller and quieter

3.200.22 2026-10-02

  • 🔔 Telegram alerts are now two switches: «Report» and «Alert when a customer is waiting for a person» — AI hand-offs, questions for the owner, customers asking for a person, refund requests and undelivered messages always reach the shop, even with reports off, and also arrive as in-app notifications · shops with AI auto-reply on cannot turn this one off
  • 🌙 Questions the AI sends to the owner no longer expire at night — the 2 hours count only during opening hours (no hours set = 08:00–21:00) · a late answer within 48 hours still reaches the customer
  • 📮 Replies that fail to send because of a temporary pipe problem are retried automatically up to 3 times (never duplicated) · customer messages that Zernio failed to deliver are detected and fetched every 10 minutes

3.200.21 2026-10-02

  • 🔎 The chat AI (Messenger and website chat) now recommends products by need — when a customer says what it is for, who it is for or their budget, the AI reads the whole shop catalogue and picks what fits, with prices · if nothing fits it says so and offers the closest item · fill in product descriptions and other names to make it more accurate
  • 🚚 When a customer asks when the shop will hand the parcel to the courier, the AI now answers the dispatch time instead of the arrival time — Settings › Online shop › new field «Dispatch within» (e.g. 1–2 days) · if it is empty the AI asks the owner instead of guessing
  • 🛑 Fixed: tapping a product chat link / QR / ad created an order straight away in shops with instant orders on — now «interested + code» gets product details; an order needs «ເອົາ …»

3.200.20 2026-10-02

  • ☰ New Messenger menu: 🛍 View products · 🎁 Privileges (promotions · coupons · points available now) · ⭐ My points · 📦 Track order · 💳 Pay · get QR (QR with the unpaid amount) — instant answers from real data, no AI cost · press «Set again» in Settings › Connections › Pages to apply

3.200.19 2026-10-02

  • 🚀 For agencies (service.) — ad launcher: pick photos from the shop's posts and product gallery for each version · choose gender and a group that should not see the ad (e.g. people who already messaged) · «Check with Meta» now uploads the images itself, no need to press «Use this image» on every version · the AI re-check keeps the same criteria, so fixed points really turn green

3.200.18 2026-10-02

  • 💬 «Ask AI» keeps your chat history (on this device · per user · latest 20 questions) — it is still there after you reopen the app · «Clear history» button
  • ✍️ Posts › «Let AI draft»: the button spins and shows «AI is writing…» and cannot be pressed again until the drafts arrive · product chips show the real photo (used to show the image link)
  • 🛠 Fix: every morning after 08:00 the system could freeze for some seconds while the daily AI report was built — the report no longer blocks other saves

3.200.17 2026-10-02

  • 🧑‍🏫 New «Setup + training» package 990,000₭ one-time (Billing page): the Happy team sets up your shop + 2 online training sessions + 14 days of chat support · 🎁 free with a 1-year plan · after payment a booking request opens automatically

3.200.16 2026-10-01

  • 💬 «Ask AI» now opens as a side panel instead of covering the screen — chat while you work: desktop = right panel (content shifts left) · phone = bottom sheet above the menu bar, ▾ to minimise · the chat stays when you change pages
  • 🔗 Product chat link + QR: shops with several pages can choose which page to use (remembers the last choice)

3.200.15 2026-10-01

  • 🧾 Orders › Tools › «Check many slips»: pick up to 20 slip photos — each is checked with the bank (BCEL slips), then unpaid orders with the same amount are offered with a «Mark paid» button
  • 🎯 Bulk message › «Make a Meta ad audience»: turn a customer group (VIP · repeat · lapsed …) into an audience in your shop's ad account to advertise to past customers or build a lookalike (owner only · asks for consent · numbers hashed before sending)
  • ✦ Inbox: suggested tags (hot · complaint · spam) from the customer's messages — tap to apply

3.200.14 2026-10-01

  • 📋 Inbox: «Summary» button next to ✨ AI draft — AI sums up the chat for whoever takes it over: what the customer wants · what is agreed · what is pending · next step (latest 40 messages · phone and account numbers hidden before AI · tapping again on the same chat costs no quota)
  • 📣 Chats that start from Click-to-Messenger ads are now linked to the ad ⇒ the ad → chat → order report counts them (pages on the new connection used to show 0)
  • 🎯 A customer who taps an ad or a product m.me link ⇒ the AI knows right away which product they want (when the ad's post is linked to one product)
  • ☰ Messenger menu: Settings › Connections › Pages › «☰ Messenger menu» — Get Started + 3 buttons (view products/order · track order · talk to staff), set on the page in one tap
  • 💬 Product page: «Chat link + QR» button — the product's m.me link for posts/websites or a printed QR in the shop; the AI knows the product as soon as the customer taps
  • 📣 Bulk message: can now send on Messenger, only to customers who messaged the page within the last 24 hours (Meta rule) · up to 300 people · once per hour · 08:00–21:00
  • 🔁 Settings › Marketing: multi-step follow-ups — a second reminder (asked then silent 20 h · abandoned web cart 23 h) you switch on yourself + 📈 one report of sent · replied · bought · ₭ for abandoned carts · silent askers · unpaid bills · after-sale care · Messenger groups
  • 🌙 Birthday / win-back notifications no longer go out around midnight (08:00–21:00) · customers who typed «ບໍ່ຕ້ອງເຕືອນ» (stop reminders) no longer get the 7-day thank-you or follow-up nudges

3.200.13 2026-10-01

  • 🪄 For agencies (service.): after the ✨ AI ad check there is a «Let AI fix these points» button — AI rewrites the ad text and adjusts age and placement in the form, then re-checks · never touches budget, never launches · one-tap undo · new «Landed cost» field so AI can work out the max ad cost per order

3.200.12 2026-10-01

  • 💬 Floating «Ask AI» button on every page of the app — an advisor you can ask anything, like Claude (sales ideas · marketing · customer problems · writing · general questions), plus how to use and set up Happy in Lao — AI knows the guide + help center + every app screen (which tab and panel a setting lives in) + your shop's current settings (owner/admin) and answers with steps (menu → tab → button) and read-more links in ~10 s · not solved = «Send to the Happy team» pre-fills a support request
  • 📘 Guide: new section «Prepayment only (no COD) — set and remove» (whole shop · category · single product)

3.200.10 2026-10-01

  • 🖼️ Posts → «From product» button: pull the product's gallery photos and clip already stored in the system into the post — tap photos to add or «Add all photos» · Google Drive clips (shared «Anyone with the link») are fetched and posted as video/Reels automatically
  • ✍️ AI posts: no stock counts · more natural Lao (Opus 5.5) · honest urgency without invented quantities/deadlines

3.200.8 2026-10-01

  • ✍️ Posts → «Draft with AI» now really writes (it used to fall back to templates every time because the AI bridge timed out): AI reads the product photos + facts and drafts 4 styles shaped like a strong sales post (hook · ✅ benefits · 💰 price · COD/shipping · how to order) + 6–10 #tags · when it still falls back to templates, the app says so
  • 🗣️ Posts → «Instruction for AI» box: steer it like Claude — tone · audience · length · focus (price/numbers/facts never change) · remembered in the draft

3.200.7 2026-10-01

  • 🛡️ Products → «Let AI handle it»: guards after AI writes — prices removed from text (the system shows the price) · numbers/claims not found in shop data, photos or search results are flagged «unsure» · sources only from real search results

3.200.6 2026-10-01

  • 🤖 Products → Edit → «Let AI handle it (reads photos + web)»: AI reads the product photos, looks up specs from public sources and drafts the description · AI knowledge · aliases · size guide · how-to for you to review before saving — unconfirmed facts are marked «(ຮ້ານເຕີມ: …)» with sources listed · fields that already have text ask before overwriting
  • 📣 Products → Edit → «Draft 4 post styles»: drafts 4 post/ad styles for this product; pick one and continue on the Posts page with product and text pre-filled

3.200.5 2026-10-01

  • 🔧 Shop-setup questions on Telegram go only to shops with their own Telegram connected (test shops no longer fall into the team room)

3.200.4 2026-10-01

  • 💬 «Interested» comments under posts/ads: the system instantly sends that post's product card (price · highlights · shipping/COD · how to order + button) by Messenger and replies under the comment — then the AI closes the sale in chat
  • ✍️ Posts → «Draft with AI» now writes 4 real styles (direct · urgency · story · short ad) with a ready ad set (headline · primary text · button) you can copy into Ads Manager + hashtags — the server checks codes/prices and rejects invented numbers

3.200.3 2026-10-01

  • 🧠 Smarter AI: the shop facts the AI needs (hours · delivery days · returns · FAQ · about) are asked on Telegram one per day — reply and they are saved · when the AI cannot answer it asks the owner at once and remembers the answer
  • 🏷️ Products → «Other names customers use»: map chat words («white cream») to a product · the AI now tolerates Lao spelling variants

3.200.1 2026-10-01

  • 📞 Every Lao phone format: customers can type 8 digits (55665582), 020/030, without the leading 0, +856 or any provincial landline — the AI and the app accept them all and store one canonical form «020 5566 5582» (the AI used to insist on 020/030)
  • 🛡️ AI sales v2: 21 fixes from a deep audit — no duplicate instant orders after a mid-write crash · at most 2 open unpaid bills · refunds land on the requested bill · hold confirmation needs the customer's word · the AI never talks over staff or re-answers a message staff already handled

3.200.0 2026-09-30

  • 🛡️ Safer ad launching: a request the system cannot confirm with Meta is never reported as «no money spent» — after 20 h both sides are asked to check Ads Manager · Happy staff signed in on your behalf cannot approve money, pick the ad account or create a new owner · boosts only for your own page's posts · the owner sees the full ad text (including the Messenger greeting) before approving
  • 📈 Sales to Meta: one order is never sent twice through two paths · an implausible USD rate blocks sending · delivered COD orders are now sent in the correct format
  • 🧪 A/B: the winner is judged on cost per chat and only when the test ends (no premature calls) · the AI ad planner retries by itself when its answer is incomplete

3.198.0 2026-09-30

  • 📈 Reports → Facebook ads: «Send sales to Meta» switch — the owner turns it on/off, sees how many orders were sent, and can enter a test code from Events Manager · only the phone (hashed) + products are sent, never names, addresses or chats

3.197.0 2026-09-30

  • 🚚 The courier is the customer's choice: the system asks «which courier?» on every order (buttons Anousith · Houngaloun · HAL) · «send with Houngaloun» or a change request updates the bill at once (misspellings understood) · the AI no longer confirms a courier the customer did not pick
  • Settings → Shipping fees: «customer pays the courier directly» — when on, bills carry no shipping fee and the system/AI/storefront never say «free shipping» nor bring up shipping cost unless asked
  • Fix: the AI could send an internal English note to the customer (rare) — replies must now be in the customer's language

3.195.0 2026-09-30

  • 🤖 The AI handles money disputes and threats calmly: «I paid / charged twice / parcel never came / I want a refund» → it checks the bill's evidence (amount · paid time · slip · tracking · refunds) and states only facts · opens a case for staff + notifies the owner on Telegram (threats to sue/expose = 🚨 urgent + room handed to a human) · refunds always go to the owner first, the AI never says «refunded»

3.194.0 2026-09-30

  • 💚 After-sales care (Settings → Marketing): give products «lasts ~N days» + «how to use» → the system asks «how is it going» 3 days after delivery (with the how-to) · reminds before it runs out + one-tap reorder link · ≤1 message per person per 7 days · «stop reminders» stops it · unreachable = call list
  • The AI knows what the customer bought and what is running low (offers a refill once, after the main topic) · answers «how do I use it» from the product's how-to · the customer panel in the inbox shows «bought items running low»

3.193.5 2026-09-30

  • Chat AI is faster: a wasted step is skipped (it used to wait another 5–8 s for the AI to repeat its own text) · when a bill was created/edited/cancelled but the AI is still thinking, the customer gets the confirmation right away (no 25 s wait) and the full reply follows

3.193.4 2026-09-30

  • Inbox list while a room is open: customer names are fully visible (used to shrink to «Boun…») — wide screens get a wider list · smaller screens compact the time/tag column and hide the assignee in the row (still shown in the room header)

3.193.3 2026-09-30

  • Messenger: suggestion buttons under AI replies based on the customer's state — «received» (bill shipped) · «QR please» (unpaid transfer bill) · «my points» (shop has points) · «my bills» — taps are answered instantly (no AI) · asking about points gives the rules + balance instantly · can be turned off from admin (quickOff)

3.193.2 2026-09-30

  • Inbox list: the customer's name and last message are fully visible again — a long assignee name used to squeeze them down to one character · the preview shows the customer's/shop's message, not system notes («assigned to …»)

3.193.1 2026-09-30

  • The AI now knows each courier's delivery time (Settings → Shipping «delivery time») and answers «how many days» correctly · hold-card confirmations carry the 🔔 push invite like instant orders · shorter 🙋 tag in the inbox list · AI v2 breaker alert names the right mode · fixed auto-CRM failing when a test shop was deleted

3.193.0 2026-09-30

  • Fix: some AI replies did not appear in the chat room (the customer got them, but the app showed only the customer's messages) — it happened when the app saved to the server while fetching AI replies · replies now stay and are ordered by time (customer ↔ AI) instead of piling up at the end
  • Settings → AI: owners can choose the chat AI (new brain v2) themselves — off · shadow test · on — and see 7-day results (turns · orders · speed · AI cost) · set tone, emoji, sentence ending and the largest order the AI may create
  • Inbox: rooms the AI handed to staff show a 🙋 tag + reason + summary · the AI's draft reply goes into the message box with «Use draft» (review/edit, then send yourself)

3.192.0 2026-09-30

  • The AI answers comments under posts/lives: CF codes still create a hold card right away · other questions («ib», «price?», «does it crush ice?», «shipping to … how much») get one complete Messenger reply (price · stock · how to order) and a public «answered in chat 💬» note (no prices) · it knows what the post sells, so code-less questions get the right product
  • Comments with an address are hidden automatically (like phone numbers) · spam comments (link + money/gambling/loan words) are hidden and not answered · Thai/foreign customers get approximate baht/dollar prices at the shop's own rate (bills stay in kip)

3.191.0 2026-09-30

  • The AI answers doubtful customers («is it genuine?» · «will I get it if I pay first?») with the shop's real numbers: verified badge · orders delivered · repeat customers · review stars (the same numbers as the storefront's trust block) + offers cash on delivery — no numbers = no claims

3.190.0 2026-09-30

  • AI sales v2: a customer who asks to «use points» in chat gets them applied right away (same rules as the «Use points» button on the tracking page: unpaid bill · the phone really belongs to that customer · once per bill) with the new total · the shop is notified every time

3.189.0 2026-09-30

  • 👋 Follow up customers who asked about a product then went quiet (Settings → Marketing): quiet for 2 h with no order → the system follows up once, within 24 h, with a «take …» button · never people who complained, are waiting for staff or said no · 30-day results: followed up / ordered / said no
  • 📉 Why they didn't buy: customer objections (price · size · shipping fee · out of stock · trust · delivery time · payment) + products asked about but not bought + tips — in Settings and on Telegram every Monday · product info score for the AI on the Products page + «AI draft» button (drafts knowledge from product data and customer questions — review before saving)

3.188.0 2026-09-29

  • AI sales got better at selling: sold out = tells the restock date (new «Restock date» field on products · the storefront shows it too) and suggests in-stock alternatives · gift/urgent/call-first requests = the AI writes them on the bill for the packers (gifts use the shop's gift service: the label prints no prices) · warns customers 7 days ahead about shop days off and public holidays (slower delivery)
  • Order tracking page: «💡 Picked for you» box (shops with suggestions on · paid/shipped bills) · a customer who answers «no thanks» to a suggestion gets none for 30 days · bills whose slip carries no money (duplicate/no QR) are no longer locked — they merge, edit and expire like normal bills

3.187.1 2026-09-29

  • Messenger: when the shop asks the customer to type a command («confirm cancel 1124» · «confirm transfer 1124» · «confirm 6498» · «take G376» · «received») the customer can tap a button instead — the delivery question has «Received» / «Not received yet» buttons

3.187.0 2026-09-29

  • AI sales v2 now handles bills in chat when the customer asks: cancel an unpaid, unpacked bill · reduce or remove items (total and shipping recalculated) · switch cash on delivery ↔ transfer · confirm or cancel a hold card in plain words · join the waiting list for sold-out items — same rules as the tracking page, and the shop is notified every time
  • Slips with the wrong amount: the AI can tell the customer how much is still missing
  • 💡 Product suggestions after a purchase (turn on in Settings → Marketing): 1–2 items, once per order, in private chat — after the order is confirmed (add to the same bill, no extra shipping) · after payment · after delivery · picked from the new «Sells with» field on the product form, then items customers buy together · see 30-day results (ordered from a suggestion · extra sales) in Settings
  • «✨ AI draft» and quick replies: the draft no longer disappears when new chats arrive while the AI is thinking — it always lands in the reply box · switch rooms and come back, it is still there

3.186.2 2026-09-29

  • Agency ad requests: after you approve, the card shows «waiting for the agency» (no second button) · budget requests show the end date, or warn when spending continues with no end date · the agency can request «+20% budget» or «pause» on running ads and target people who messaged or engaged with your Page — anything that spends money still needs your approval first

3.186.1 2026-09-29

  • The first greeting now includes the page's online shop link (page prices · browse and order right away) — once per 24 h · not for customers already on the website or on agent pages

3.186.0 2026-09-29

  • The agency managing your Page (Happy Service) can now request Facebook ads for your shop: the owner sees a «💸 Ad spend approval» card on the home screen with the daily budget · days · maximum spend · location · age and ✅ Approve / ✕ Reject buttons — the ad goes live and spends real money only after both you and the agency approve · notified in the app (and Telegram if linked)

3.184.0 2026-09-29

  • Order at once (per-shop setting · Money › CF holds · admin can switch it): orders from every channel (chat · comments · live · web chat) become real orders with no «confirm» step · the AI asks for phone + address right away · reminders at 2 h and 11 h · no phone and unpaid after 12 h = cancelled (stock returns) · at most 2 unpaid bills per customer (more = added to the open bill) · comment/live orders get a 🚫 cancel button in Telegram
  • A phone number typed alone in chat is now saved to the order (it used to need an address with it)
  • Delivery: the ask now shows the points to earn · Vientiane capital is asked after 2 days · a second reminder before auto-receive · typing «received» in chat confirms it · afterwards the customer gets a thank-you with points, benefits, how to use points and returns · the tracking page shows the same box
  • The AI knows the shop's own online store (per-page link · product links · ready carts) · greets with the page name the customer wrote to · no apology/duplicate link when the system is slow · one reply per voice message · tracking page: paid bills no longer show «slip does not match»

3.183.2 2026-09-28

  • Chat: rooms that started from a comment but where the customer continued on Messenger now send, retry and share images/QR via Messenger (was “no comment id to reply” every time)

3.183.1 2026-09-28

  • CF: “E1 take 2” style comments (code, then “ເອົາ”, then the quantity) now read the right quantity (was 1) — comments, chat and live
  • AI sales v2 knows the shop's online store link and never claims something does not exist without evidence

3.183.0 2026-09-28

  • AI sales v2 now knows everything the old AI knows: hold cards (confirm code · expiry · edit link) · bank account · promos/gifts · staff canned answers · customer memory — 60 items checked

3.182.0 2026-09-28

  • Page health: view all pages or one page (its score + top 3 fixes) · direct link to a page · print only the selected page · 🔄 refresh re-checks the Facebook connection now — in the app and service.happyerp.la

3.181.1 2026-09-28

  • AI sales v2: ~3× faster replies (from ~25 s to ~7–10 s) — answers from prefetched data in a single step when that is enough

3.181.0 2026-09-28

  • Page health: a 0–10 score per page from 14 checks (connection · chat · closing · content · ads) + the top 3 fixes with links — a card on the home screen (owner/admin) · instant Telegram alert when a page loses its connection · Monday summary
  • service.happyerp.la: 🩺 page health tab per client + score in the client list + included in the printable report

3.180.1 2026-09-28

  • Chat: when the slip checker is down, a customer with an unpaid bill who sends a product photo now gets a product answer (price · quantity) instead of “the shop will verify the payment”, and the shop gets no false urgent alert

3.180.0 2026-09-27

  • AI sales v2 ready to go live (enabled per shop by the owner): the AI creates/merges orders, saves addresses, sends pay links and product photos, asks for discounts and hands off to staff with a summary — every action goes through server checks, no empty promises
  • Shops on AI v2: after a staff reply the AI pauses 10 min (was 30) and drafts a reply · if a customer asks for a person and nobody answers in 15 min the AI comes back · faster replies (2.5–6 s wait)

3.179.1 2026-09-27

  • AI sales v2 (shadow mode): fixed the Claude request that was rejected on every turn — shadow comparisons are now recorded

3.179.0 2026-09-27

  • AI sales v2 (shadow mode): the new Claude brain drafts alongside the current AI to compare quality — customers still get the current AI's replies · daily comparison report on Telegram

3.178.0 2026-09-27

  • Chat AI: remembers the product being discussed — “take 3” or “ok” creates the order + sends the link · “merge it” adds to the unpaid bill · product photo + “I want 2” = buy · the AI no longer promises links that don't exist

3.177.0 2026-09-27

  • service.happyerp.la: «Ad system» tab per client — 8-step score · top 3 fixes · break-even ad cost from real data · ad table with advice · money-leak alerts · 35-technique checklist + guide · printable report

3.176.0 2026-09-27

  • Chat AI: customer photos are now told apart — payment slip or product photo. A screenshot of the shop's product + “I want 2” = the AI knows the code and answers price/stock · no more wrong “no QR found” replies

3.175.0 2026-09-27

  • Chat: «+» button sends photos (up to 10) · product cards · payment QR for the amount due · new messages arrive instantly + sound (can mute) · «Mine N» badge · «customer asked for a person» banner · faster
  • Customer panel in chat: orders · addresses · notes · points · create-order prefilled (wide screens = right column · phone = bottom sheet)

3.174.0 2026-09-27

  • Chat: see when AI is paused because a person replied + “Let AI reply again” · replies sent from Facebook and web system messages now show in the thread · support list refreshes every time
  • Orders and POS: rows show in transit/delivered/returned + new chips · packers can pack COD bills · POS bill search + refunds older than 7 days · archive search
  • Live and customers: faster live buttons (no full upload) · flash prices only on the live page, for bot and web · work customer segments (VIP · lapsed · birthdays…)

3.173.0 2026-09-27

  • Stock and products: barcode labels per size · phone product form split into “Basics / More” · stock log filter no longer floods the screen · adjust reasons enforce +/− · bundles never deduct partially · picking list shows bundle parts
  • Reports and settings: CSV “counted in sales” column · in-app dialogs instead of browser ones · new vs returning customers counted one way · receipt rows in the right order · larger billing QR
  • Server: faster posts page · scheduled posts go out on time (±30 s) · AI quotes bus shipping · product feed per size · advisor uses Lao time · billing days left match Telegram

3.172.0 2026-09-27

  • Chat: “talk to a person” pauses AI for 12 h (not forever) · AI replies no longer lost · COD confirmations never ask for a transfer · rooms without an address no longer show a fake “sent” · duplicate rooms merge
  • Orders: deposit and amount due on the card, QR asks only for the amount due · bills with a deposit/slip lock item edits · deposits can't be lowered · shipping recalculated after edits · VAT visible everywhere · no VAT on shipping
  • Live: pin price = bot price · revenue = sold (awaiting address shown separately) · ✕ sold out stops CF in this live only · ✅ 20/min without releasing holds · same names no longer merge carts
  • Customers: VIP coupons work · money in/out recorded on the server (🔒) · forget customer removes the person everywhere · agent-customer mark derived from orders · “shop collects” label

3.171.1 2026-09-26

  • fx19 follow-up: the chat CF box pops again for “do you have A1?” / size / colour questions (only pure price questions are skipped) · Settings reloads its data every time you open it (shop directory switch · promo link in posts)

3.171.0 2026-09-26

  • Waves 1+2 from the all-feature audit: QR/tracking links sent from an order really reach the customer · chat orders keep their conversation · no duplicate orders vs the bot · new messages appear at once · the phone chat shows messages · photos via Zernio · sync no longer disturbs typing · live: “now showing” only on the live post · flash price kept · “cancel A1” releases stock · scheduled posts publish · forgotten customers leave no trace · group Web Push beyond 500 · commissions/bonuses on cash actually received · CSV import no longer reverts stock · courier files parsed correctly · one stock formula on every screen · reports/journal/print agree · QR needs a real GUID · faster settings · advisor “7 days” matches reports

3.170.2 2026-09-26

  • Urgent audit fixes: customers with the same display name are no longer merged into one chat (replies used to reach the wrong person) · stock take: count everything you see, the system subtracts sold-not-shipped goods · POS bills are no longer deducted twice in a count · bulk pack/ship no longer marks unpaid transfer bills as paid · removing a line returns stock to the right branch

3.170.1 2026-09-26

  • After an update the app reloads itself when the new screen meets old code (new buttons work at once · never while you are typing) · report section chips say when a section is still loading instead of doing nothing

3.170.0 2026-09-26

  • Wave 6: import products from posts and post↔product mapping now work on Zernio pages (honest errors) · the bot reserves +1/take under posts typed in Facebook · reports/chat show post text + link instead of raw ids · live console picks real posts with images · reports: ads panel near the top + section nav · single ad account auto-selected · unpaid ad-account warning · web orders from ad links count as ads (+ ad URL-parameter helper) · Meta ad spend deducted from net profit (no double count) · expenses panel fixed · post funnel no longer double-counts bills · light/dark switch on every page (remembered across subdomains)

3.169.0 2026-09-26

  • Wave 5: new live console — the server is the single comment intake (works on Zernio pages) · sold/awaiting-address/queue/revenue counted from real orders in a sticky strip · tap a product = “now showing”, so +1/take/CF reserve it · flash price applies on every path · one-tap confirm/cancel/block/sold-out · max 3 open holds per viewer · post-live wrap-up + re-nudge · exact-amount LAO QR on the storefront and tracking page (no typing the amount) · QR with a Lao shop name now scans · VAT stamped on each order (changing settings no longer alters old bills) · multi-branch stock correct per branch across devices · POS undo releases the reservation at once · AI answers several shops in parallel · staff canned replies are recognised as human (AI pauses) · archive of old orders (faster sync for shops over 250 orders)

3.168.0 2026-09-26

  • Wave 4 (owner-approved): comment/live reservations kept 12 h (1–48 configurable) with product names + clock time · 1-hour reminder and expiry notice via Messenger · shop digest of released holds · sending an address confirms the hold · one link: tap ✅ Confirm on the tracking page (no code typing) · reserved CF comments are hidden from scammers (toggle in settings) · AI: knows per-province shipping and the fee to the place asked · knows the unconfirmed hold · understands “this one ×2” and “change to L” · buy + discount = reserve first then ask the owner · greetings/👍/spam skip the AI · honest “am I a bot” answer · complaints get the status + a staff alert · “I transferred” asks for the slip · storefront: adding to an existing bill adds quantity (no overwrite) · cart shows VAT · copy-amount button · POS: discount field keeps the keyboard · timed-out stock claims are released correctly

3.167.0 2026-09-26

  • Audit round 2 (vs best-in-class) — wave 3: stock — bundles confirm the last set · step-back then re-confirm deducts correctly · server cancel no longer restocks returned items · stock take excludes sold goods still on the shelf · server reservation rows survive a device push · pre-order works on every channel · RTO/refund/line-edit rows carry the order id · comment CF — “cf ແດ່”, “cf 2”, glued “ຈອງB2”, Thai “เอา 2 ตัว” parsed · “ຂໍເບີໂທ”/“ສົນໃຈ” no longer reserve · plain “ຢືນຢັນ”/“ບໍ່ເອົາ” confirm/cancel without a code · confirm + address in one message · no duplicate cards · “ເອົາ M” after a size question reserves · live — “ຢຸດ A1” cancels instead of ordering · ✅ public ack + tracking line from the console · AI-first holds counted in the live tally · tray/waitlist deduped across devices

3.166.3 2026-09-26

  • Audit wave 2 — 12 fixes: stepping back from “delivered” (pickup) reverses points/referral/auto cash-in · marking paid from a slip reserves stock on the server first · merge/split recompute tier discount + shipping · pre-order items can be confirmed while out of stock · web/Telegram customers over the AI quota get a notice and the shop is alerted · tracking-link lookup counts hits (20/day per phone) · 128-bit link tokens (old links still work) · fake-order-number guard ignores money amounts · agency seats cannot delete or shorten the shop’s chats · old raw payloads/logs pruned automatically · graceful server shutdown on deploy

3.166.2 2026-09-26

  • Deep audit of ordering · CF · stock deduction · chat (26/9) — 20 fixes: storefront reply total includes VAT like the tracking page · server order ids never collide with app ids · editing qty/adding/removing lines recomputes coupon and tier discounts · status messages go to the order's own chat (shared phone numbers no longer reach the wrong person) · full deposit on COD counts as transfer · stock take warns about confirmed goods still on the shelf · live sessions count reservation cards · undelivered AI bubbles show as failed with retry · server: cross-process stock write lock · live-console CF gets ✅ under the comment/Messenger when private reply fails · transient transport failures retry instead of dropping the customer's message

3.166.1 2026-09-26

  • Ads report: the USD→kip rate is pulled automatically every day from BCEL's selling rate (what the bank charges your card for ads) — no manual entry · ad spend in kip · cost per order · profit after ads show right away

3.166.0 2026-09-26

  • Reports: new “📣 Facebook ads — worth it?” panel — ad spend · new chats from ads · cost per chat · chat/live orders · ad cost per order · sales · profit after ads for the selected period + a per-ad table (fatigued/costly/cheapest) · warns when the ad account has a billing problem · pulled from Meta via Zernio every 6 h (read-only) — the owner picks the ad account once

3.165.8 2026-09-26

  • Chats & comments: replying in a comment room after the system already sent the reservation card (Facebook allows one private reply per comment) — if the customer has messaged the page, the reply now goes through Messenger automatically instead of showing “not delivered” (owner and AI)

3.165.7 2026-09-26

  • CF via comments: the system reserves the item right away and replies “✅ Reserved E1×2 — details in your inbox” under the comment (others see the item sells · no prices) · if a Meta/other auto-reply used the private reply first, the system replies publicly with a link and keeps the reservation
  • Chat: the “items updated” message for an already-confirmed bill no longer asks for an empty confirmation code · re-sending the same quantity no longer says “added”

3.165.6 2026-09-26

  • Integrations: new shops can connect their Facebook page right away — option 1 (recommended) via Zernio takes ~20 s with no waiting for Meta approval · direct Facebook connect becomes option 2 · shops already connected see no change

3.165.5 2026-09-25

  • Backup pipe (Zernio) — deep audit round 2 (≈46 items): real post ids from Zernio are now received (CF comments bind to the right post) · posts published via Zernio can be deleted from the app · the “sold out” label is applied to Zernio posts · owners can reply after 24 h (7-day human window) · customer button/CSAT taps are handled faster and never dropped · scheduled Zernio posts show as a label, not an error · the “can't read page” warning no longer appears for Zernio pages · posting to a Zernio page works even when the Meta page lacks permissions
  • Security/resilience: the temporary Facebook token is no longer kept after expiry nor written to server logs · reconnecting a page removes its old Zernio account automatically (no wasted quota) · pages can be removed even when Zernio is down · one combined Telegram alert when Zernio is unreachable · file sending and the live console say clearly that the backup pipe doesn't support them yet

3.165.4 2026-09-25

  • Backup pipe (Zernio): the Happy team can link a page the shop already connected at zernio.com to the shop from the console, without a new Facebook authorisation (makes the most of the 2 free accounts)
  • Chat: the “✅ Confirm order” button is no longer sent without a reservation code (order closed earlier) · tapping an old button is now treated as a “confirm” message for the AI/shop to answer instead of being silently dropped (both Meta and Zernio pipes)

3.165.3 2026-09-25

  • Backup pipe (Zernio): when the Zernio account limit is reached (free plan 2 pages) the app says so and what to do (payment method or remove an old page) instead of a generic failure · connected-page dates display correctly · Zernio profiles left over from unfinished connects are cleaned up automatically

3.165.2 2026-09-25

  • Backup pipe (Zernio): fixed “Zernio connection failed” when picking the page — the Facebook user profile arrived double-encoded and could not be read · now decoded, with a fallback built from the page · server logs no longer keep the temporary token

3.165.1 2026-09-25

  • Settings: the browser no longer auto-fills your email into the search / Verify Token fields — token fields (Telegram · page · App Secret · CAPI · GA4) are no longer treated as a login form (they still display as dots)
  • Backup pipe (Zernio): shows status (pages connected), what the pipe can do (chats · comments · private replies · hide · posting · scheduling · live pending test), the list of pages on this pipe, and the Pick page button appears by itself once Facebook has been authorised (15 minutes)

3.165.0 2026-09-25

  • Posting via the backup pipe (Zernio): pages connected through the backup pipe can now publish text, photo, album, video and Reel posts from the app · scheduling works (the system holds the queue and posts at the set time) · link as first comment · products are bound to the post from the start so CF comments reserve the right item

3.164.0 2026-09-25

  • Backup pipe (Zernio): shops can press “Connect a page via backup pipe” in Settings → Integrations (one page per connect) — the page's chats and comments reach the app without waiting for Meta approval · “Pipe: Zernio” badge in the page list · privacy policy and DPA list Zernio as a sub-processor (only for shops that opt in)
  • Backup pipe reliability: auto-replies, hold cards, satisfaction scores and web-chat messages follow the page's actual pipe · no double sends when Zernio is slow · negative comments alert Telegram like the Meta pipe · phone numbers in comments are hidden faster

3.163.0 2026-09-25

  • Groundwork for a backup message pipe (Zernio) for Facebook inbox and comments — not yet enabled for shops until testing passes · shops already connected see no change

3.162.0 2026-09-25

  • AI replies: when the AI asks the owner about a discount it always states the number (e.g. 10% off) · replying “yes” in Telegram applies it to the bill and the customer hears the new total · discounts or free shipping the AI granted in web chat apply in the cart automatically within 24 hours
  • Commission/points: a referrer, broker or agent ordering through their own link earns no commission or points (checked when the phone number is entered)
  • Money/stock: reserved carts with a slip or deposit are never auto-cancelled — the shop decides · refunds post correctly (cash never goes negative) · merging bills and POS recompute tier prices from the new total · re-tapping a stock count never deducts twice · every stock row carries the bill's branch
  • System: certificate and queue watchers no longer raise false alerts and report that they are alive · operations documents match the live system

3.161.0 2026-09-25

  • New: request help from inside the app (More › Request help) or type “ຊ່ວຍແດ່ …” in your shop's Telegram — the Happy team replies in the app and notifies you
  • Billing: a receipt for every payment · referral code — when a shop you refer makes its first payment you get +1 month free
  • Posts: reconcile with the Page — posts made outside Happy and posts deleted on Facebook now show · posting KPI per person (Reports) · Inbox: filter comments by post
  • The AI ad planner is about 2× faster and shows elapsed time · Console: closed shops release their custom domain automatically

3.160.0 2026-09-25

  • The app now works fully on tablets and phones held sideways · Back closes the open dialog first · larger, easier-to-read Lao text · faster on slow networks (only your language loads)
  • Live on phones: comments and the reply box are visible right away · Settings content starts at the top · the order form shows errors under each field
  • Storefront: the size reminder appears where you are looking · checkout errors sit under each field · a sticky “Add to cart” bar · bigger buttons on the tracking page
  • Cleaner Lao wording everywhere · page-care agencies: an expired plan is clearly read-only · save the payment QR to pay from the same phone

3.159.0 2026-09-24

  • Every page now opens in the light theme by default — tap ☀️/🌙 to choose dark and your device remembers it
  • All guides updated to the current system · new guide for page-care agencies (info.happyerp.la/service.html)
  • Page-care agencies you authorise no longer see order amounts or daily sales (only order status, to answer chats)
  • The sign-up form no longer pre-fills a sample shop name · clearer buttons in light mode · long names end with “…”

3.158.0 2026-09-24

  • New: 🏢 Page-care agency — shop owners create a code for the agency they hire (Settings › Shop) · the agency posts and answers chats without seeing money, costs or settings · revoke any time
  • Products and customers now clearly show “read-only” for people who cannot edit them (packers can edit stock and alerts only)
  • New: service.happyerp.la — run your own page-care agency (1 person + a 6-role AI team) · self sign-up · 14-day trial · Solo/Team plans · AI top-ups · overview at happyerp.la/agency

3.157.0 2026-09-24

  • Posts: new month calendar view (📋 List | 📅 Calendar) — colour by status · tap a day to see its posts · “+ New post” pre-fills your best time
  • Client approval page: month overview at the top — tap a day to jump to its posts
  • New shops: sample chats/staff/expenses no longer leak into real data · the ✓ marks in “Get started” are normal size again

3.156.3 2026-09-24

  • Storefront: the AI greeting bubble sits above the chat button again — it no longer covers “Add to cart” on the product page

3.156.2 2026-09-24

  • Deep-audit fixes: re-confirming an order after stepping it back now deducts stock correctly · the AI no longer uses another customer’s history/address (gift phone numbers) · one bus-parcel fee rule everywhere · Telegram customers get storefront prices · post-approval links expire and need approve rights · one thank-you per customer · “customer waiting” alerts no longer repeat hourly · storefront: text-size buttons no longer break the page · the 💬 button no longer covers badges

3.156.1 2026-09-24

  • Storefront: shops with per-province shipping (no per-district rates) show the fee as soon as the province is chosen — no more “pick a district first”

3.156.0 2026-09-23

  • Settings › Shop: shops managed by Happy /care see the link to approve this month's posts under the monthly reports box · Guide: a Happy /care card in the Happy family section

3.155.0 2026-09-23

  • Client approval page for scheduled posts (Happy /care): a private happyerp.la/approve link opens on a phone with no login — this month's drafts with image and scheduled time, ✅ approve or ✕ send back with a note, plus the history of what happened to each post

3.154.0 2026-09-23

  • New: Happy /care — a page-care service (AI chat replies 24/7 · scheduled posts · ads management · monthly report) at happyerp.la/care with plans/prices and a free page-audit form at /care/audit — for shops on Happy ERP

3.153.0 2026-09-23

  • Prices per size: live sales, the AI price answer and Meta Ads signals (ViewContent/AddToCart/Checkout) use the chosen size's price · storefront: shipping says “pick a district first” instead of 0₭ · recent searches · out-of-stock error names the product · easier −/+ tap targets

3.152.0 2026-09-23

  • Sales targets per month/branch/staff (Settings › Marketing) — the home page and monthly report show % and pace · Customers: a “may churn” tag (repeat buyers gone unusually long) + average order value · thank-you / follow-up 7 days after delivery (opt-in · custom message)

3.151.0 2026-09-23

  • Posts: approve or return a draft straight from Telegram buttons (shops with their own bot) · CF comments: the first private reply carries the tracking link · storefront: the ☰ menu moved into the header (products visible sooner) · checkout folds the item list into a summary row · 7-step text size in the ☰ menu

3.150.0 2026-09-23

  • Settings › Sales: keyword rules — when a customer types a set keyword (e.g. shipping · opening hours) the system replies instantly without AI credit, on every channel · bus-terminal fee per province (Settings › Shipping) applied automatically to bus orders · agent pages get their own AI cap so they cannot consume the shop's quota · hold-card time suggestion from the last 30 days of data

3.149.0 2026-09-23

  • Product stickers: A4 or 58 mm roll · products with a barcode print Code128 for 1D scanners · Settings › Backup: download everything as a ZIP (JSON + orders/products/customers CSV) · points awarded/spent while a device was offline for a long time (over 50 sync rounds) are no longer lost on resync · order lookup by phone on the storefront is faster (searches only that shop)

3.148.0 2026-09-23

  • Inbox: customers who ordered through this chat (Facebook/web/Telegram) show their purchase history without a phone on the chat · the customers page no longer double-counts them · AI remembers customers across channels · assigning a chat pushes a notification to that staff member · a customer waiting over 5 minutes with nobody replying (AI off/paused) alerts the shop

3.147.0 2026-09-23

  • Telegram: a ✅ confirm button under new-order messages (shops with their own bot) · m.me?ref=<product> links land in the inbox as “interested in …” · the storefront shows a real “n people viewing” count (10 min)

3.146.0 2026-09-23

  • Storefront: a 💬 ask button on every product card · the confirm card shows approximate shipping · idle chat polls slower after 5 min to save battery

3.145.0 2026-09-23

  • Storefront: customers who change phones can continue their old chat — enter the phone used to order → a 6-digit code appears on the old phone → type it on the new one and the history and orders follow

3.144.0 2026-09-23

  • Security: OTP attempt counting hardened · old password-reset links die as soon as a new password is set · customer-uploaded images are verified as real images · customers can no longer self-cancel after a label is printed or an invoice issued (contact the shop)

3.143.0 2026-09-23

  • Reports: new «Web & Telegram chat — is the AI really working» panel — rooms/day · % closed by AI alone · AI reply time · chat→order · carts recovered · days at the cap · share-link clicks · stars by channel

3.142.0 2026-09-23

  • Storefront: when the AI has used up its quota the chat header says «An admin will reply» instead of «auto-reply 24h» · abandoned-cart nudges reach the phone as a push (if the customer opted in) · you can pause the bot per web/Telegram room in Chat & Comments

3.141.0 2026-09-23

  • New channel: customers can message your shop on Telegram — turn on Settings › Connections › Telegram › «Accept customers via this bot» and share t.me/yourbot · AI answers 24h · orders work · staff reply from Chat & Comments (label Telegram) · no Meta involved

3.140.0 2026-09-23

  • AI test room: Settings › What the AI knows › 🧪 Try chatting with your AI — type like a customer and see how it answers before opening it to real customers (no orders · no real owner questions)
  • The AI remembers returning customers: last 3 orders · latest address («ship to the same address?») · products asked about before — no need to repeat everything

3.139.0 2026-09-23

  • Storefront: the AI greets first — a visitor on a product page for 45 s, or hesitating after adding to cart, sees one bubble «Interested in A1? price · stock» (once per visit · switch off under Settings › What the AI knows)
  • Chat link per product: add ?chat=A1 to your storefront link (posts · comments · QR) to open the chat with that product filled in · comments we cannot answer privately get a public reply with this link
  • Quick replies and shop policies are now one set: staff tap them in the inbox and the AI answers from the same list

3.138.0 2026-09-23

  • Shops managed by Happy /care: open your monthly report (what we did · results · next · what we need) in Settings › Shop or via the private link the team sends
  • Help center happyerp.la/help — 20 common questions · report a problem via the 💬 button · links to the full guides (English: /en/help)
  • Public status page happyerp.la/status — app · storefront · API · AI replies, with 30-day uptime
  • Custom domain settings: the Check button appears right after saving (no need to reopen Settings)

3.137.0 2026-09-23

  • Tracking page: customers can report “not received”, and merged orders link to the new order
  • Returned parcels (RTO): stock is restored only for items not already refunded; stepping status back is consistent
  • Accounting: customer deposits on unsold orders are held as a liability (not counted as sales yet); report periods use Lao time
  • Shops with a custom domain: every link (AI chat · tracking · promos) uses your domain, re-checked automatically every 24 h
  • Agents: refunds after a locked payout are recorded in the agent wallet correctly; return-shipping fees charged to agents appear under shipping expenses
  • Partial stock receiving (receive fewer than ordered)

3.136.0 2026-09-22

  • Security: changing the shop’s Telegram room/bot or turning off 2FA now requires your password; the old room is notified
  • Slip images in the inbox: photos from Facebook need staff confirmation before marking paid
  • TLS certificate watch for every domain with early warnings

3.135.0 2026-09-20

  • Stock counts are computed server-side (sales during a count are not lost); recount sets
  • Packers can move paid → shipped; cross-month VAT/commission computed correctly

3.134.0 2026-09-19

  • Manual payment approval requires the bank reference; duplicate approvals blocked

3.133.0 2026-09-18

  • Proactive customer updates at every order step · call list · 3-step shop reminders · points usable at POS and on the tracking page

3.132.0 2026-09-17

  • Loyalty points are granted when payment is in and the parcel is received (not at order time)
  • Customers confirm receipt on the tracking page; the system asks automatically after 3 days