=== Stockaro Connect — Barcode Scanner for WooCommerce ===
Contributors: nexusdigitalgr3
Tags: barcode, woocommerce, inventory, stock, scanner
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.0
Requires Plugins: woocommerce
Stable tag: 3.2.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Free WooCommerce barcode & SKU scanner. Update stock in seconds from a phone, Bluetooth scanner, or webcam, with an audit log and CSV export.

== Description ==

**Stockaro Connect — Barcode Scanner for WooCommerce** is one free plugin that does two jobs: it turns your phone, tablet, or handheld scanner into a WooCommerce stock terminal, and (optionally) it connects your shop to the [Stockaro app](https://stockaro.gr) so shelf and eshop stay in sync. Search any product or variation by barcode or SKU, add or remove stock, log every change with a note, and undo mistakes, all from a single screen. The plugin is **100% free** with no license, no account, and no locked features.

Everything below works out of the box for free:

* **Barcode / SKU lookup** for products and variations.
* **One-tap stock actions** — add, remove, set-to-zero, or mark out-of-stock.
* **Camera scanner** with flashlight/torch toggle for low light (where supported).
* **Hardware scanner mode** — scans from a Bluetooth/USB scanner auto-submit, no Enter key needed.
* **Rapid (continuous) mode** — pick Add or Remove and each scan applies ±1 automatically for hands-free counting, with a live session list and per-item undo.
* **Full audit log** with date, user, action, and notes — plus per-row undo inside a 15-minute window.
* **CSV export** of the stock log with filters (date range, action, user, product, barcode).
* **Dashboard stats** and a low-stock product list.
* **Weekly stock report** — an at-a-glance page (out-of-stock, running low, total retail stock value) plus an optional weekly email, computed locally from your WooCommerce data.
* **Greek and English**: the screens are written in Greek, and a site in any other language gets the bundled English translation.
* **Skroutz XML feed** — the product file for Skroutz.gr, built from your WooCommerce catalog every 30 minutes and shortly after any stock or price change. Sizes become Skroutz variations, each colour becomes its own product, out-of-stock items stay with quantity 0, and a check page lists products that miss an image, price, category or EAN.
* **Skroutz Marketplace orders** — connect your Skroutz Smart Cart API token and new Skroutz orders hold WooCommerce stock as soon as they arrive. Orders cancelled before dispatch return exactly what was held. Returns after dispatch, unknown products and changed orders wait for you on the same page.

The camera scanner decodes barcodes locally in your browser (using the bundled open-source ZXing engine). No image or scan is ever uploaded anywhere.

The admin screens use the Manrope typeface, bundled with the plugin and served from your own site (SIL Open Font License 1.1, see `admin/fonts/OFL.txt`). No font is loaded from a third-party server.

**Grow with the Stockaro app (optional).** The scanner here lives inside WordPress. The Android [Stockaro app](https://stockaro.gr) works from your phone or tablet, with cloud sync so the same inventory is available on your devices. It is **free up to 100 products**, and the Pro plan adds two-way sync and order management. If you never need the app, ignore it. The scanner is fully free either way.

**Connect your shop to Stockaro (optional).** Turn on the built-in Stockaro bridge (a dedicated `stockaro/v1` REST namespace) to pair this shop with the Stockaro app, so your eshop and the app stay in sync even on hosts where the generic WooCommerce API is blocked. Pairing shows an endpoint and a one-time code as plain text; the code is never sent to any external service.

== External services ==

This plugin is fully functional on its own and does not send your data anywhere by default. Two optional integrations with **Stockaro** (a service operated by Nexus Digital Studio) are described below, so you know exactly what happens if you choose to use them.

**1. The optional "Connect with Stockaro" bridge (`stockaro/v1` REST API)**

If, and only if, you open **Stockaro → Σύνδεση με Stockaro**, turn the bridge on, and pair your shop, the plugin registers REST endpoints on your own site that the Stockaro app can call. When paired, the Stockaro app (running on your phone, tablet, or desktop) connects to your site to read and update stock data: product name, SKU, price, stock quantity, and stock status. If you also turn on the optional setting "Παραγγελίες στο Stockaro" (off by default), the Stockaro app can read your orders as well: order number, status, currency and totals, the products and quantities in each order, and the customer's first and last name. It never reads the customer's email address, phone number, addresses, payment details or order notes. Data is exchanged in response to authenticated requests from the Stockaro app you paired, using a token you generated. Since 3.2.0, a paired shop also sends a small "something changed" signal to Stockaro when stock, a product or an order changes, so the Stockaro app updates within seconds instead of minutes. The signal contains no shop data at all: only your connection's identifier and the current time, signed with your pairing key. It goes to the address Stockaro gave your site during an authenticated request, and it stops as soon as you unpair or turn the bridge off. The optional "Σύνδεση με ένα κλικ" button opens stockaro.gr with a one-time code (valid for 10 minutes, usable once) that Stockaro's server exchanges directly with your site for a pairing token; the token itself never appears in a browser or a URL. You can unpair or disable the bridge at any time from the same screen, which stops all access.

- Service: Stockaro app / cloud — https://stockaro.gr
- Terms of Service: https://stockaro.gr/terms
- Privacy Policy: https://stockaro.gr/privacy

If you never enable the bridge, no product or stock data leaves your site through it.

**2. Skroutz (optional, only if you turn it on)**

The Skroutz XML feed is a file written to your own `wp-content/uploads/stockaro/` folder under a random name. Skroutz downloads it from your site only after you give the address to Skroutz Merchants yourself. The plugin does not send it anywhere.

If you connect **Skroutz Marketplace orders** on the Skroutz page, the plugin:

* receives order notifications from Skroutz at `/wp-json/stockaro/v1/skroutz`, protected by a secret in the address that only you see once;
* asks the Skroutz Orders API (`https://api.skroutz.gr/merchants/ecommerce/orders/<code>`) for the order behind each notification, with the API token you entered. It stores only the order code, state, date and the products and quantities. It does not store the customer's name, address, phone, tax number or payment details. The token is stored encrypted in your database.

Disconnecting from the same page stops both.

- Service: Skroutz Marketplace (Smart Cart) — https://www.skroutz.gr
- Developer documentation: https://developer.skroutz.gr/smart_cart/
- Terms of use: https://www.skroutz.gr/terms
- Privacy policy: https://www.skroutz.gr/privacy

**3. Informational links to stockaro.gr**

The admin screens contain links to https://stockaro.gr that introduce the Stockaro app. These links carry basic campaign tags (utm_source, utm_medium, utm_campaign) so we can see that a visit came from the plugin. No request is made and no data is transmitted unless you actively click a link and open the page in your browser.

- Website: https://stockaro.gr
- Privacy Policy: https://stockaro.gr/privacy

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`, or install it from the Plugins screen.
2. Activate **Stockaro Connect — Barcode Scanner for WooCommerce**.
3. Open **Stockaro** in the admin menu and start scanning. No license or account needed.
4. (Optional) Open **Stockaro → Σύνδεση με Stockaro** to pair your shop with the Stockaro app.
5. (Optional) Open **Stockaro → Εργαλεία & εφαρμογή** to export the stock log as CSV or learn about the app.

== Frequently Asked Questions ==

= Do I need a license or an account? =

No. The plugin is completely free, and every feature is unlocked out of the box, including rapid mode and CSV export.

= Does it work with a Bluetooth or USB barcode scanner? =

Yes. Turn on hardware scanner mode and scans auto-submit as soon as the keystroke burst ends. The camera scanner also works on phones and tablets.

= Which barcodes does the camera read? =

Common 1D and 2D formats via the bundled ZXing engine (EAN, UPC, Code 128, QR, and more), depending on your device and browser. Decoding happens locally in the browser.

= What is the difference between this plugin and the Stockaro app? =

This plugin is a free scanner that runs inside WordPress. The Android Stockaro app adds mobile access and cloud sync so your stock is available on your devices, plus two-way sync and order management on the Pro plan. It is free up to 100 products at https://stockaro.gr.

= Is my data sent anywhere? =

No, not by default. The scanner and the camera decoding run entirely on your site and in your browser. The optional Stockaro Connect bridge only exchanges data with the Stockaro app after you turn it on and pair it, and the pairing code is shown as plain text and never sent to a third-party service. See the "External services" section for full details.

= How do I export my stock history? =

Open **Stockaro → Εργαλεία & εφαρμογή** and use the CSV export form, with optional filters for date range, action, user, product, and barcode.

== Screenshots ==

1. The scanner dashboard — scan a barcode or SKU and update stock in one tap, with live stats and a product list.
2. The scan result panel — add, remove, mark out-of-stock, or set in-stock, with an optional note.
3. Rapid mode — continuous hands-free counting with a live session list and per-item undo.
4. Audit log with per-row undo and history search.
5. The Tools & app page — free CSV export of the stock log plus a system-status panel.
6. Σύνδεση με Stockaro — turn on the optional bridge and pair your shop with the Stockaro app.

== Changelog ==

= 3.2.2 =
* Low stock now means stock below the threshold, not equal to it. A product with 1 in stock and a threshold of 1 is no longer counted as low. This applies to the dashboard count and filter, the row badge, the stock report and the count sent to Stockaro, so the plugin shows the same numbers as the Stockaro app. Out of stock (0 or less) is unchanged.
* Fix: the dashboard's low-stock filter showed every in-stock product. It now lists only the products below the threshold.

= 3.2.1 =
* English translation of every plugin screen, message, email and notice (444 strings). The plugin is written in Greek; a site or user profile in any language other than Greek now sees English, unless WordPress already has a language pack for that language. Greek sites see no change.
* No changes to scanning, sync, Skroutz or stock logic.

= 3.2.0 =
* Instant sync: when stock, a product or an order changes, a paired shop sends Stockaro a signed "something changed" signal (no shop data), so updates arrive in seconds instead of up to five minutes.
* One-click connection: «Σύνδεση με το Stockaro» opens stockaro.gr with a one-time code; Stockaro's server exchanges it with your site for the pairing token. No copying of codes.

= 3.1.0 =
* One polite request for a review, shown only on the plugin's own screens two weeks after installation. «Αργότερα» hides it for a month, «Όχι, ευχαριστώ» for good. Nothing is sent anywhere; the choice is stored per user on your site and removed on uninstall.

= 3.0.2 =
* Skroutz XML: every product now has a unique MPN, as the Skroutz validator requires. Colours of the same product without their own SKU get the parent SKU plus the colour; size variations show only their own SKU.

= 3.0.1 =
* Skroutz XML: size, colour and brand are now found automatically when their settings are left on "Αυτόματα" (Νούμερο / Μέγεθος / Size, Χρώμα / Color, Μάρκα / Brand), per product. Before, a variable product with "Νούμερο" came out as one Skroutz product per size with the size in the title. Choose "Κανένα" to keep the old behaviour.

= 3.0.0 =
* New Skroutz page (Stockaro → Skroutz XML), free for everyone:
  * Skroutz XML feed from your WooCommerce catalog, refreshed every 30 minutes and 2 minutes after stock or price changes. Sizes are Skroutz variations, each colour is a separate product, out-of-stock products stay with quantity 0. Per-product "Όχι στο Skroutz" and availability fields.
  * Skroutz Marketplace orders: new orders hold WooCommerce stock once, dispatch makes the sale final, cancellation before dispatch returns exactly what was held. Fulfilled by Skroutz orders never touch your stock. Unknown products, changed orders and returns after dispatch wait on the same page.
* When the shop is connected to Stockaro, a stock change from a Skroutz order shows in Stockaro as "Skroutz" instead of a generic eshop sync.
* Nothing changes until you turn the Skroutz feed or orders on.

= 2.9.1 =
* The optional setting "Δημιουργία προϊόντων από το Stockaro" now also says that, while it is on, Stockaro updates the prices of your products when "Ίδιες τιμές με το Stockaro" is turned on in Stockaro (for stores with more than one shop). Text only: nothing else changes.

= 2.9.0 =
* New optional Stockaro Connect setting "Παραγγελίες στο Stockaro" (off by default): when you turn it on, your shop's orders appear in Stockaro for packing and sales. Stockaro reads the order number, status, totals, the products in each order and the customer's first and last name. It never reads the customer's email, phone, addresses, payment details or order notes.
* Stock keeps syncing exactly as before, with or without the new setting. Orders never change stock in Stockaro a second time.
* The setting "Αλλαγή κατάστασης παραγγελιών από το Stockaro" now reminds you that orders appear in Stockaro only with "Παραγγελίες στο Stockaro" turned on.
* No scanner or report changes.

= 2.8.0 =
* Stockaro Connect now syncs stock for products with variations (for example size and colour). Each variation with its own stock becomes its own item in Stockaro: a sale in Stockaro updates only that variation in your shop, and orders in your shop reach Stockaro. Variations without stock tracking change only between in stock and out of stock. Variations that share the parent product's stock are left out.
* Deleting a variation, or moving a product with variations to the trash and back, now reaches Stockaro.
* Older Stockaro versions keep working exactly as before and never receive variations.
* No scanner or report changes.

= 2.7.0 =
* New optional Stockaro Connect setting "Δημιουργία προϊόντων από το Stockaro" (off by default): the Stockaro app and web console can send new products to your shop, including products with variations (for example size and colour), without WooCommerce REST API keys. New products are always saved as drafts for you to review and publish. Stockaro never publishes, hides or deletes products, and the changes run with the rights of the administrator who turned the setting on.
* New optional Stockaro Connect setting "Αλλαγή κατάστασης παραγγελιών από το Stockaro" (off by default): Stockaro can mark an order Processing or On hold, and Completed after it is packed. Cancellations and refunds are never possible from Stockaro, and every change is added as an order note. Completing an order sends WooCommerce's usual completion email to the customer.
* No scanner, report or stock sync behavior changes.

= 2.6.1 =
* Stock history on the Stockaro dashboard fits narrower admin screens: long product names and notes wrap to two lines (full text on hover) instead of pushing the table sideways, so the undo button stays visible. No scanner, report or connection behavior changes.

= 2.6.0 =
* New look for every plugin screen, matching the Stockaro app and web console: a dark frame with the Stockaro mark, a light canvas with rounded cards, pill buttons and the Manrope typeface (bundled with the plugin, no external font requests).
* Scanner: the scan bar stays on screen while you scroll, the camera button and the main stock action are highlighted, and the scan result shows the current stock in a compact dark card.
* Stock status in the product list, history and system status is always written in words next to the colour.
* New Stockaro mark in the WordPress menu, the dashboard widget and the plugin header. No scanner, report or connection behavior changes.

= 2.5.5 =
* Tested with WordPress 7.1.
* Privacy: the public pairing check used by the Stockaro app no longer reports the WordPress version.
* Code quality fixes from the WordPress.org Plugin Check (prepared table rename in the one-time data migration, prefixed template variables). No scanner, report or connection behavior changes.

= 2.5.4 =
* Refresh all plugin screens with shared navigation, responsive layouts and clearer Greek instructions: scanner, stock report/email, connection and tools.
* Improve scan results, duplicate-product selection, rapid mode, camera panel, dashboard widget and product barcode fields.
* Keep the latest search/filter response, retry failed pagination without skipping products, and report clipboard success or failure accurately.

= 2.5.3 =
* Correct the optional Stockaro app Free plan description to 100 products in the plugin screens and directory listing. No scanner, inventory or synchronization behavior changes.

= 2.5.2 =
* Καθαρό εικονίδιο κύβου στο πλαϊνό μενού του WordPress, συμβατό με τα χρώματα διαχείρισης. Η αρχική επιλογή ονομάζεται «Σαρωτής» αντί να επαναλαμβάνει το «Stockaro».
* Διόρθωση scanner: ασφαλής εφεδρική ανάγνωση barcode όταν ο browser υποστηρίζει μόνο QR ή ο αναγνώστης του αποτυγχάνει. Η κάμερα κλείνει σωστά, ακόμη και σε καθυστερημένη άδεια ή γρήγορο ξανάνοιγμα.
* Διόρθωση JavaScript σφάλματος στην εμφάνιση λίστας προϊόντων και ιστορικού κινήσεων. Σαφέστερα μηνύματα για HTTPS, έλλειψη κάμερας και δεσμευμένη κάμερα.
* Διόρθωση αναίρεσης: ίσες ποσότητες όπως 13 και 13.0 δεν θεωρούνται πλέον αλλαγμένο απόθεμα. Οι πραγματικές μεταβολές συνεχίζουν να μπλοκάρουν την αναίρεση.
* Οι αλλαγές καταλόγου διαβάζονται σε όλες τις σελίδες, ακόμη κι όταν πάνω από 500 προϊόντα αλλάζουν στο ίδιο δευτερόλεπτο.
* Σταθερό χρονικό όριο ανά ανάγνωση και δυνατότητα delta.cursor για ασφαλή συνέχεια σε μεγάλους καταλόγους.

= 2.5.1 =
* Διόρθωση: προϊόν χωρίς διαχείριση αποθέματος έβγαινε ΜΟΝΙΜΑ από το κατάστημα μόλις πουλιόταν από την εφαρμογή. Το plugin άναβε μόνο του τη διαχείριση αποθέματος —ρύθμιση που ο ιδιοκτήτης είχε αφήσει κλειστή επίτηδες, όπως συνηθίζεται σε μοναδικά κομμάτια (κοσμήματα, χειροποίητα)— και το προϊόν έμενε «εξαντλημένο» για πάντα, ακόμα κι όταν ξαναγέμιζε το απόθεμα. Πλέον το Stockaro στέλνει κατάσταση («υπάρχει / δεν υπάρχει») αντί για ποσότητα, και η ρύθμισή σου δεν αλλάζει.
* Διόρθωση: σε μαζική αλλαγή προϊόντων (bulk edit), όσα ξεπερνούσαν τα 500 της κάθε παρτίδας μπορούσαν να μη φτάσουν ΠΟΤΕ στην εφαρμογή. Οι αλλαγές στέλνονταν χωρίς σειρά· τώρα ταξινομούνται κατά χρόνο τροποποίησης, ώστε η επόμενη παρτίδα να συνεχίζει από εκεί που σταμάτησε η προηγούμενη.
* Διόρθωση: η επαναφορά προϊόντος από τον κάδο δεν έφτανε στην εφαρμογή. Η διαγραφή ταξίδευε κανονικά, η επαναφορά όχι — το προϊόν έμενε κρυμμένο στο Stockaro χωρίς καμία ένδειξη.
* Διόρθωση: οι δεκαδικές ποσότητες (2,5 κιλά, 0,750 λίτρα) στρογγυλοποιούνταν σε ακέραιο κατά τον συγχρονισμό, παρότι η υποστήριξη δεκαδικών ήταν ενεργή.

= 2.5.0 =
* Νέα εμφάνιση, ίδια σε κάθε συσκευή: ο πίνακας του σαρωτή, η σελίδα σύνδεσης και η εβδομαδιαία αναφορά περνούν στην ίδια παλέτα με την εφαρμογή Stockaro και το stockaro.gr. Το χρώμα σημαίνει πλέον ΜΟΝΟ κατάσταση αποθέματος — τίποτα άλλο δεν είναι χρωματιστό.
* Διόρθωση: το πεδίο σάρωσης έκοβε το κείμενό του («Σκάναρε barco» αντί για «Σκάναρε barcode ή SKU»). Ήταν κατάλοιπο παλιάς διάταξης — ο χώρος για το κείμενο σχεδόν τριπλασιάστηκε.
* Διόρθωση: η ώρα στο ιστορικό κινήσεων έσπαγε σε τέσσερις γραμμές και κάθε σειρά έπιανε τριπλό ύψος. Τώρα χωρούν έξι κινήσεις στην οθόνη αντί για δύο.
* Διόρθωση: η μπάρα του πίνακα καθόταν λάθος σε πλάτη 783–960px — το WordPress αλλάζει την μπάρα διαχείρισης στα 782px, το plugin το έκανε στα 960px.
* Διόρθωση: ο δείκτης ποσοστού ήταν κεχριμπαρένιος σε ΟΛΕΣ τις κάρτες, οπότε και οι ουδέτεροι μετρητές φορούσαν το σήμα «χαμηλό απόθεμα».
* Το κείμενο δεν διαφημίζει πια το «Business πλάνο», που έχει καταργηθεί. Το two-way sync και η διαχείριση παραγγελιών περιλαμβάνονται πλέον στο πλάνο Pro.

= 2.4.0 =
* Νέο (προαιρετικό): το Stockaro μπορεί να στέλνει προϊόντα στον ΚΑΔΟ αυτού του καταστήματος όταν τα διαγράφεις από την εφαρμογή — και να τα επαναφέρει. Ποτέ μόνιμη διαγραφή: το προϊόν κρατά τις αξιολογήσεις, τον σύνδεσμό του και τη σύνδεση με παλιές παραγγελίες.
* Κλειστό εξ ορισμού. Ενεργοποιείται από «Σύνδεση με Stockaro → Διαγραφή προϊόντων».
* Αν ο κάδος του WordPress είναι απενεργοποιημένος στο site, το αίτημα απορρίπτεται αντί να διαγράψει μόνιμα.
* Οι διαγραφές που κάνεις εσύ στο WordPress ταξιδεύουν πλέον και προς το Stockaro.

= 2.3.2 =
* Developer/internal: renamed all remaining short-prefix ("wbm_") functions, options, AJAX actions, nonces and script handles to the unique "stockaro_" prefix, per WordPress.org guidelines.
* One-time migration keeps existing data on update: barcodes (_wbm_barcode → _stockaro_barcode), the stock-log table and saved settings are carried over automatically.

= 2.3.1 =
* Enqueued the last two inline blocks (dashboard-widget CSS, promo-card dismiss script) instead of printing raw <style>/<script> tags, and moved the connect-page inline handlers into an enqueued script.
* Renamed the main plugin file to stockaro-barcode-scanner.php to match the slug.

= 2.3.0 =
* New **Weekly stock report** (absorbed the standalone "Stockaro Lite" concept): a Stockaro submenu page with at-a-glance stats — out-of-stock and running-low products, products under stock management, and total retail stock value — plus an optional weekly HTML email (pick recipient, weekday, and a custom low-stock threshold, or keep WooCommerce's own thresholds). Includes a "send test now" button. Everything is computed locally from your WooCommerce data; nothing is sent to any external service.

= 2.2.1 =
* Code housekeeping for the WordPress.org review, no functional changes: internal PHP functions, constants, and hooks now use the stockaro_ prefix, every AJAX handler verifies its nonce in place, the CSV export writes its BOM without direct file calls, and every database call either goes through $wpdb->prepare() or documents why it cannot. Data, settings, and pairing are untouched by the update.
* Developer note: public filter/action hooks were renamed from wbm_* to stockaro_* (for example stockaro_low_stock_threshold). Update any custom snippets that hook into them.

= 2.2.0 =
* Renamed to **Stockaro Connect — Barcode Scanner for WooCommerce**: one free plugin that is both the barcode scanner and the (optional) Stockaro bridge. No functional changes — the slug, text domain, settings, and pairing are untouched, so existing installs upgrade in place.

= 2.1.1 =
* Fixed the two-way sync so it holds up on real shops: (1) a reconnect or re-import no longer drops the first stock change from the app — the shop now re-anchors to the correct value instead of silently ignoring it; (2) online sales are once again pulled back into the app on shops outside UTC (e.g. Greece) — the "recent changes" feed was returning nothing due to a timezone bug.
* Dashboard product search now matches SKU and barcode too, not just the product title — typing a SKU used to return nothing unless it also appeared in the title.

= 2.1.0 =
* Two-way stock sync with the Stockaro app: in-app stock changes now push to the shop as atomic adjustments that compose safely with concurrent online sales (no overwrites), and online sales reconcile back into the app.

= 2.0.0 =
* **Now 100% free.** Every feature that used to require a Pro license — rapid (continuous) mode, CSV audit-log export, hardware mode, torch — is unlocked for everyone. No license key, no account, no gating.
* Removed the license activation/validation system and private update delivery entirely; the plugin loads and runs without contacting any license server.
* Renamed for the WordPress.org directory: **Stockaro Barcode Scanner for WooCommerce** (formerly "Woo Barcode Stock Manager Pro"). The public slug and text domain are now `stockaro-barcode-scanner`.
* New **Stockaro App** admin page: value-first intro to the Stockaro app (mobile + cloud sync), the free CSV export tool, and a System status panel.
* Dismissible in-dashboard card and header link pointing to the Stockaro app (free up to 50 products).
* Kept the full scanner (camera, hardware/rapid, lookup/stock update, audit log, CSV, torch) and the optional **Σύνδεση με Stockaro** bridge (`stockaro/v1`).

= 1.5.0 =
* Rebrand to Stockaro; basic scanning made free (Lite) while rapid mode and CSV export stayed behind a Pro license.
* Added the "Σύνδεση με Stockaro" bridge (namespace `stockaro/v1`).
* Security: pairing shows endpoint + code as text only; the code is never sent to any external service.

= 1.4.0 =
* Rapid mode: header toggle for continuous scanning with automatic ±1 per scan, a live session list, and per-item undo.

= 1.3.0 =
* Camera scanner flashlight/torch toggle and per-row undo in the audit log.

= 1.2.0 =
* Hardware scanner mode with auto-submit and an improved multi-match picker.

= 1.0.0 =
* Initial release with the bundled scanner workflow, audit log, and CSV export.

== Upgrade Notice ==

= 3.2.2 =
Low stock counts only products below the threshold, the same rule as the Stockaro app.

= 3.2.1 =
English translation for sites that are not in Greek. No behaviour changes.

= 3.2.0 =
Instant sync with Stockaro (a signed signal without shop data) and one-click connection.

= 3.1.0 =
A single, dismissible review request on the plugin's own screens after two weeks. No data leaves your site.

= 3.0.2 =
Skroutz XML: unique MPN for each colour of the same product (Skroutz validator warning).

= 3.0.1 =
Skroutz XML finds size, colour and brand automatically, so sizes become Skroutz variations without extra settings.

= 3.0.0 =
New, off by default: Skroutz XML feed and Skroutz Marketplace orders that hold WooCommerce stock. Existing settings and connections are kept.

= 2.9.1 =
Text only: the "Δημιουργία προϊόντων από το Stockaro" setting now says that it also carries price updates from Stockaro.

= 2.9.0 =
New optional setting, off by default: show your shop's orders in Stockaro (never the customer's email, phone or address).

= 2.8.0 =
Stock sync for products with variations (size, colour) through Stockaro Connect.

= 2.7.0 =
Two new optional Stockaro Connect settings, both off by default: send products from Stockaro as drafts, and update the order status after packing.

= 2.6.1 =
The stock history table fits narrower admin screens without sideways scrolling.

= 2.6.0 =
A visual refresh of all plugin screens in the Stockaro look. Existing settings and paired connections are preserved.

= 2.5.5 =
Compatibility with WordPress 7.1 and a small privacy hardening of the pairing check. Existing settings and paired connections are preserved.

= 2.5.4 =
Refreshed plugin screens and mobile layouts, safer search/pagination and clearer connection-code copying. Existing settings and paired connections are preserved.

= 2.5.3 =
Corrects the Stockaro app Free plan information to 100 products. Existing settings and paired connections are preserved.

= 2.0.0 =
The plugin is now completely free: all former Pro features are unlocked and the license system is gone. Your scanner settings and any Stockaro pairing are preserved.
