Changelog archive for Eren Labs - Stocktake for WooCommerce
============================================================
Recent releases are documented in readme.txt; this file archives
the older history below.

= 1.1.17 =
* Variable products: parent-level (pooled) stock is now counted correctly as one
  line; scanning any of its variations lands on that line, and per-variation
  SKUs can no longer count against the wrong sibling.
* Fix: a recount saved after "Apply" is now always pushed on the next Apply,
  while items whose count matched the records are never touched — sales made
  during the stocktake are preserved exactly.
* Reports: Pulse/Insights pages now stay fast and light on huge catalogues,
  exclude trashed products, respect the shop timezone, and exports stream
  any catalogue size without memory limits or skipped rows.
* History gains paging past 300 entries; goods-in sessions export the received
  quantity; presets are addressed by stable ids (stale tabs can no longer
  delete the wrong preset); many smaller fixes from the second code audit.


= 1.1.16 =
* Security & reliability: reject counting/adjusting draft or trashed products;
  validate quantities; guard against concurrent Apply double-counting stock;
  the auto-backup now aborts Apply if it can't be fully written.
* Fix: Undo now rolls back each Apply wave correctly; a failed save no longer
  freezes the counting screen; blind counts no longer leak expected quantities.
* Fix: comma decimals (12,5) are accepted; upgrade/activation edge cases,
  the count reminder after reactivation, and full data cleanup on uninstall.
* Adds a Cancel button to a stocktake; clearer export column and safer CSVs.


= 1.1.15 =
* Fix: the admin menu icon rendered as a plain white square on some
  colour schemes; the brand icon now displays in full colour.


= 1.1.14 =
* i18n: the checkout now opens in the plugin's selected language where
  supported (EN/ES/DE/FR/IT), with automatic detection elsewhere.


= 1.1.13 =
* New: fully localized upgrade screen in all 8 languages, replacing the
  English-only pricing page; direct support contact is now part of Pro.


= 1.1.12 =
* Fix: the licensing screens now correctly follow the plugin language
  on WordPress 6.5+ (translations are stored per locale).


= 1.1.11 =
* i18n: the licensing menus and screens (Upgrade, Contact Us, opt-in,
  license) now follow the language selected in the plugin - including
  Turkish, Portuguese (Brazil) and Arabic.


= 1.1.10 =
* i18n: the licensing menu items and buttons (Upgrade, Contact Us,
  opt-in and license screens) now appear in Turkish on Turkish sites.


= 1.1.9 =
* Fix: the FAQ on the upgrade screen kept its legacy styling and cards
  could split across columns; it now matches the redesigned page.


= 1.1.8 =
* Polish: the plugin's brand icon now also appears on the opt-in and
  upgrade screens.


= 1.1.7 =
* Polish: new brand icon in the admin menu and a refined upgrade screen
  (header, guarantee and FAQ styling).


= 1.1.6 =
* Fix: upgrade buttons on the pricing screen could render with invisible
  labels depending on stylesheet load order.


= 1.1.5 =
* Polish: redesigned upgrade/pricing screen - side-by-side plan cards,
  clearer pricing and a highlighted recommended tier.


= 1.1.4 =
* Internal: licensing-service packaging refinements. No user-facing change.


= 1.1.3 =
* Internal: premium files are now declared via the licensing service's
  standard header tag so its packaging step recognises the paid version.
  No user-facing change.


= 1.1.2 =
* Internal: the Pro package now declares is_premium as a literal so the
  licensing service recognises it as the paid version. No user-facing change.


= 1.1.1 =
* Internal: uninstall cleanup refactored into a shared, idempotent routine so
  the Pro build can clean up via the Freemius after_uninstall hook (its
  deployment processor requires no root uninstall.php); the free build keeps
  its standard uninstall.php. No behaviour change on removal.


= 1.1.0 =
* Licensing & updates via the Freemius SDK: in-dashboard upgrade and secure
  checkout for Pro, automatic Pro updates, and an in-plugin contact channel
  for priority support. The free version is unaffected — it stays fully free.


= 1.0.0 =
* First public release: counting sessions (partial and full/zero-based),
  barcode/SKU/name scanning with phone camera support, blind counts,
  variance review, one-click apply with automatic restore points and undo,
  reorder shortlist, CSV export, Help & FAQ — in 8 languages.


= 0.23.1 =
* Help & FAQ expanded to 17 detailed answers, now covering the report tabs,
  Stock pulse maths, the Stock check module, and — in depth — how purchase
  costs are resolved (own field, WooCommerce COGS, SkyVerge, WPFactory,
  ATUM) and how to enter them singly or in bulk.


= 0.23.0 =
* New: a Help & FAQ screen inside the plugin — the twelve questions that
  actually generate support mail, answered in place, plus a direct route to
  the support forum (free) or priority contact (Pro).


= 0.22.0 =
* The free package now physically contains no Pro feature code (WordPress.org
  guideline 6): Pro implementations — stock check, Excel engine, valuation
  and movement analytics, audit-trail view, approval workflow, presets,
  reminders, restore-point history — are stripped from the free build at
  package time. Free keeps every free feature, the upsell pages, and the
  automatic backups + last-apply undo. No behaviour changes in either tier.


= 0.21.3 =
* The "Start counting now" quick-start is now a plain action link instead
  of a form, so nothing client-side can swallow it silently; if it ever
  fails, the list now shows an error message instead of nothing.


= 0.21.2 =
* Hardening from an independent end-to-end review: the automatic restore
  point is now written BEFORE any stock changes (a failed save aborts the
  apply), completed or cancelled counts can no longer open the counting
  screen via a direct link, approving a stocktake keeps it in review when
  nothing could be applied, and the language switcher now saves for
  everyone who can see it.


= 0.21.1 =
* Stock pulse now has its own entry in the admin menu (managers), and the
  menu highlights it correctly while you are on the tab.


= 0.21.0 =
* New (Pro): Stock pulse — a live report tab showing your whole inventory
  right now (units on hand, value at retail and cost, 30-day sales), plus
  what's about to run out at the current sales pace, the top movers, and
  dead stock that hasn't sold in 90 days with the money it ties up.


= 0.20.0 =
* Excel (.xlsx) export on stocktakes, valuation and the reorder shortlist (Pro):
  real numeric cells, bold frozen header row with filter dropdowns — no CSV
  delimiter or encoding guesswork.
* CSV exports now open correctly in Excel in every language (UTF-8 BOM) and
  use translated column headers.
* Clearer counting hints: uncounted items "keep their current stock" (or, in
  full counts, "are set to 0 when applied") instead of "still need counting".


= 0.19.0 =
* Stock check access is now granted explicitly: pick WordPress roles and/or
  individual people (searchable picker), plus a switch controlling whether
  they may also fix stock. Store managers always have full access. Existing
  installs migrate their previous access level automatically.

= 0.18.0 =
* Internal: the plugin now builds through the factory pipeline — separate
  free and pro packages (premium boundary physically stripped from the free
  build), shared hardened core, cold-artifact and metadata checks, and the
  full 145-check live test battery shipped in-repo. No behaviour changes.

= 0.17.2 =
* Improved: the Stock check feature page (shown on the free tier) now covers
  the full module — camera scanning, team access levels and the footprint
  table — with four benefit bullets and an updated preview.

= 0.17.1 =
* New (Pro): a footprint table on the Stock check screen (managers only) —
  the last 50 quick fixes item by item: when, who, product, SKU and the
  before → after change.

= 0.17.0 =
* New (Pro): Stock check access levels. By default managers AND count staff
  can check and fix stock; a manager-only setting on the Stock check screen
  can restrict staff to check-only, or make the tool managers-only. Every fix
  is audit-logged with the person who made it, whoever makes it. Count staff
  see a Stock check menu entry when they are allowed in.

= 0.16.0 =
* New (Pro): phone-camera barcode scanning on the Stock check screen — same
  scanner as the count screen (native detector + bundled ZXing, torch/zoom,
  photo-scan fallback); a detected code runs the check instantly.
* Improved: every locked Pro screen (Stock check, Insights, valuation,
  restore-point history, audit trail) is now a mini feature page — a visual
  preview of the real UI drawn in CSS, concrete benefit bullets, and a clear
  upgrade path — instead of a bare lock icon.

= 0.15.0 =
* New (Pro): Quick stock check — a dedicated screen to scan or search any
  product and instantly see its live stock, with a full per-variant breakdown
  (the scanned variant is highlighted). Type a corrected quantity and save on
  the spot; every fix goes through the normal WooCommerce stock hooks and is
  recorded in the audit trail. No session needed.
* New: proper submenu navigation under the Stocktake menu — Stocktakes,
  Reports, Stock check, and Restore points.

= 0.14.3 =
* Fix: the Reports and Restore points buttons in the header showed an empty
  icon slot — a tag style painted their icons white on the white button.

= 0.14.2 =
* Mobile: wide report tables now scroll sideways on phones instead of being
  clipped (the value / applied / counted-by columns could be cut off), and
  SKUs, prices and dates no longer letter-wrap in squeezed cells.

= 0.14.1 =
* Improved: in the count screen's search results, a variation's attributes
  (e.g. "Red, S") now show as small always-visible chips under the product
  name — with long product names the row used to ellipsize away exactly the
  part that tells variants apart. The quantity panel shows the same chips.

= 0.14.0 =
* New: the scanner now also matches WooCommerce's own GTIN / UPC / EAN / ISBN
  product field (WooCommerce 9.2+), for both products and variations — real
  retail barcodes work even when they are not stored as the SKU. SKU matching
  is unchanged; the barcode field is used as a fallback in the count screen's
  scan box, smart search, and out-of-scope lookups.
* Improved: category rows in the "Variance by category" and valuation tables
  now show their full parent path (e.g. "Clothing › White"), so same-named
  subcategories under different parents are distinguishable, and are ordered
  by biggest impact first.

= 0.13.0 =
* New: Reports hub with three tabs — Valuation, Reorder and Insights.
* New (free): Reorder shortlist — every stock-managed product at or below its
  low-stock level, or already out of stock, with one-click CSV export to hand
  straight to a supplier. Flags any products showing negative stock.
* New (free): count-completeness banner on the stocktake review screen — a
  clear warning before a full/zero-based apply about how many products would
  be set to 0.
* New (Pro): Insights — ABC count-priority classification (the few high-value
  items that hold most of your stock value, so you count them most often) and
  an accuracy & shrinkage trend across your completed stocktakes.
* New (Pro): per-session "Variance by category" breakdown — see which part of
  the shop is gaining or losing stock.

= 0.12.0 =
* Added Italian and Arabic (right-to-left) translations — 8 languages total.
* New flag-based language picker in the header: the button shows the current
  language and its flag; opening it lists every language with its flag. The
  interface mirrors to right-to-left automatically when Arabic is selected.

= 0.11.0 =
* Translations: the plugin now ships in Turkish, Spanish, German, French and
  Brazilian Portuguese (English is the source). The language follows the site
  language automatically, and a per-user switcher in the header lets each
  person pick their own — count staff can use a different language than the
  store owner.

= 0.10.3 =
* Stocktake screens are now distraction-free: third-party admin notices (theme
  nags, cache messages, etc.) no longer appear inside the plugin's pages — they
  remain visible everywhere else in wp-admin.

= 0.10.2 =
* Design polish (free & pro): accessible focus rings, hero brand badge and light
  sheen, stat-tile accent bars with hover lift, springier buttons, smoother mode
  cards, tidy scrollbars, animated flashes, graceful thumbnail fallbacks, and
  full prefers-reduced-motion support.

= 0.10.1 =
* Fix: undo now also restores the "manage stock" flag — a product that was not
  stock-managed before an apply (e.g. added on the fly during a count) no
  longer stays stock-managed after the apply is undone.
* Uninstall now removes the audit-log table, all plugin options, the counting
  capability, and scheduled events.

= 0.10.0 =
* Pro v1 feature-complete: per-session audit history with comments (every
  count, recount, apply, undo and status change is recorded with who/when and
  before → after), team counting via a count-only staff capability with named
  attribution, recount & approval workflow (submit → approve & apply / send
  back), saved count presets, printable A4 count sheets, per-session count
  analytics (accuracy, shrinkage, overage, biggest discrepancies), stocktake
  history & shrinkage table on the report, and recurring count reminders.

= 0.9.0 =
* New: Inventory valuation report — items, units on hand, value at retail and
  at purchase cost, potential profit, per-category breakdown, CSV export and
  print-to-PDF (Pro; free shows live retail totals). Pro adds a purchase-cost
  field to every product and variation; existing cost-of-goods metas (WC native
  COGS, SkyVerge, WPFactory, ATUM) are read automatically. Items without a cost
  are reported, never guessed.
* New: gentle, dismissible review request after a couple of successful applies.

= 0.8.0 =
* Free/Pro split: partial and full/zero-based counting stay free; add-on-top
  (tally) and goods-in (receiving) modes plus restore-point history become part
  of Pro. Pro-only features are described on the upgrade screen. Undo of the last apply
  remains free. The free plugin is fully functional on its own.

= 0.7.2 =
* Fix: in Goods-in mode, applying, receiving more of the same product, and
  applying again no longer adds the first batch twice — only the not-yet-applied
  portion is pushed to stock (tracked per line, restored exactly on undo).
* Fix: Apply is refused while the product list is still being prepared in the
  background, so a full/zero-based count can never zero items that simply had
  not been listed yet.

= 0.7.1 =
* Phone camera scanning is now clearly marked Beta (badge on the button and in
  the scanner), with an in-context note that some barcode types may not scan on
  every device.

= 0.7.0 =
* Hardening from a full release audit: ZXing is now bundled locally (no CDN),
  re-counting an applied item is no longer silently skipped on the next apply,
  cancelled/closed stocktakes can no longer be counted or applied, a category
  scope with no valid categories can no longer fall back to the whole catalogue,
  additive/goods-in counts now accumulate atomically (concurrency-safe), only
  simple products and variations can be added on the fly, apply now reports
  skipped products, and i18n strings carry translator comments.

= 0.6.1 =
* Robustness: snapshot rows are now idempotent — a unique key on
  (session, product, variation) plus INSERT IGNORE prevents duplicate lines if a
  background batch retries or the catalogue changes mid-build.

= 0.6.0 =
* Performance: large catalogues are snapshotted in the background (Action
  Scheduler) so creating a session never times out. Small stores stay instant.
  Batch size filterable via `stwc_snapshot_batch_size`.
* Security: CSV export now neutralises spreadsheet formula injection.

= 0.5.0 =
* New: automatic stock restore points — a backup of stock is saved before every
  apply. Browse and roll back any time from "Restore points".
* New: resume a count later — scans are saved live to the database as you go, so
  you can close the screen and continue from where you left off. Previously
  counted items are shown when you reopen the count.

= 0.4.0 =
* New: Goods-in (receiving) mode — scanned quantity is added to current stock.
* New: phone camera barcode scanning (native BarcodeDetector + ZXing fallback,
  torch/zoom, photo-scan fallback) with inline quantity confirm.
* New: one-tap "Start counting now"; product photo on the qty screen.
* New: "left to count" counter, "Not counted" list, and Undo (restore previous
  stock after applying).
* Safety: full/zero-based Apply now warns how many products will be set to 0.
* Counting does not change stock until you Apply (made explicit on the screen).

= 0.3.0 =
* New: smart product finder on the count screen — match by barcode, SKU, or
  product name with a live suggestion list (thumbnail, name, price, in-count
  status). Keyboard and touch friendly; the fast scan-and-Enter path is intact.

= 0.2.0 =
* New: counting modes — Full / zero-based (uncounted = 0), Partial (spot count),
  and Add-on-top (each scan adds to the running total).
* New: premium redesigned admin UI — gradient header, stat cards, progress bars.
* New: app-like count screen with touch steppers, audio feedback, live progress,
  and recent-scan variance chips.
* Variance report and CSV export are now counting-mode aware.

= 0.1.0 =
* Initial MVP: sessions, snapshot, scan count screen, blind count, variance
  report, CSV export, one-click apply.
