{"id":364804,"date":"2026-09-11T10:00:18","date_gmt":"2026-09-11T10:00:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vollstart-pos-desk\/"},"modified":"2026-09-11T10:00:00","modified_gmt":"2026-09-11T10:00:00","slug":"vollstart-pos-desk","status":"publish","type":"plugin","link":"https:\/\/pl.wordpress.org\/plugins\/vollstart-pos-desk\/","author":18077756,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"Vollstart POS Desk","header_author":"Vollstart","header_description":"A simple, WooCommerce-independent Point of Sale system for WordPress. Sell from a tablet, print receipts, close the day \u2014 no cloud, no monthly fees.","assets_banners_color":"2c292a","last_updated":"2026-09-11 10:00:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/vollstart.de\/wordpress-plugins\/pos-desk\/","header_author_uri":"https:\/\/vollstart.de\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":18,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"sasonikolov","date":"2026-09-11 10:00:00","revision":3691165}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3691165,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3691165,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3691165,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3691165,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3691165,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3691165,"resolution":"1","location":"assets","locale":"","width":1280,"height":900},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3691165,"resolution":"2","location":"assets","locale":"","width":1280,"height":900},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3691165,"resolution":"3","location":"assets","locale":"","width":1280,"height":900},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3691165,"resolution":"4","location":"assets","locale":"","width":1280,"height":900},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3691165,"resolution":"5","location":"assets","locale":"","width":1280,"height":900},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3691165,"resolution":"6","location":"assets","locale":"","width":1280,"height":900}},"screenshots":{"1":"POS Terminal \u2014 sell from any tablet with the touch-optimized dark theme","2":"Product management \u2014 add items in seconds with price, SKU, barcode, and image","3":"Daily close-out \u2014 reconcile cash, generate Z-report, email to accountant","4":"Dashboard \u2014 today's revenue at a glance, terminal status, recent sales","5":"Weigh ticket \u2014 scale products, print QR ticket, scan at checkout","6":"Receipt \u2014 professional receipt with business info, items, totals, QR code"}},"plugin_section":[],"plugin_tags":[273903,26270,10229,168310,277955],"plugin_category":[],"plugin_contributors":[225541],"plugin_business_model":[],"class_list":["post-364804","plugin","type-plugin","status-publish","hentry","plugin_tags-barcode-scanner","plugin_tags-point-of-sale","plugin_tags-pos","plugin_tags-pos-plugin","plugin_tags-receipt-printer","plugin_contributors-sasonikolov","plugin_committers-sasonikolov"],"banners":{"banner":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/banner-772x250.jpg?rev=3691165","banner_2x":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/banner-1544x500.jpg?rev=3691165","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/icon.svg?rev=3691165","icon":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/icon.svg?rev=3691165","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/screenshot-1.jpg?rev=3691165","caption":"POS Terminal \u2014 sell from any tablet with the touch-optimized dark theme"},{"src":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/screenshot-2.jpg?rev=3691165","caption":"Product management \u2014 add items in seconds with price, SKU, barcode, and image"},{"src":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/screenshot-3.jpg?rev=3691165","caption":"Daily close-out \u2014 reconcile cash, generate Z-report, email to accountant"},{"src":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/screenshot-4.jpg?rev=3691165","caption":"Dashboard \u2014 today's revenue at a glance, terminal status, recent sales"},{"src":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/screenshot-5.jpg?rev=3691165","caption":"Weigh ticket \u2014 scale products, print QR ticket, scan at checkout"},{"src":"https:\/\/ps.w.org\/vollstart-pos-desk\/assets\/screenshot-6.jpg?rev=3691165","caption":"Receipt \u2014 professional receipt with business info, items, totals, QR code"}],"raw_content":"<!--section=description-->\n<p>Turn any tablet or iPad into a cash register. Vollstart POS Desk is a free, self-hosted Point of Sale plugin for WordPress \u2014 no WooCommerce, no cloud subscription, no monthly fees. All your data stays in your WordPress database.<\/p>\n\n<h4>Selling<\/h4>\n\n<ul>\n<li><strong>iPad &amp; tablet POS terminal<\/strong> \u2014 touch-optimized interface, 3 themes (dark, light, high contrast)<\/li>\n<li><strong>Products &amp; categories<\/strong> \u2014 prices, SKU, EAN barcodes, images, flex pricing, unit-based (weight\/volume)<\/li>\n<li><strong>Action sheets<\/strong> \u2014 quick-access product lists for promotions, seasonal items, or inventory checks<\/li>\n<li><strong>Customer management<\/strong> \u2014 customer records with optional self-onboarding portal (\/join\/), purchase history and customer lists<\/li>\n<li><strong>Barcode scanning<\/strong> \u2014 camera-based and hardware wedge scanner, EAN-13\/EAN-8 with checksum<\/li>\n<li><strong>Weigh tickets<\/strong> \u2014 scale products with decimal amounts, printed ticket with QR code<\/li>\n<\/ul>\n\n<h4>Payments<\/h4>\n\n<ul>\n<li><strong>Cash<\/strong> \u2014 with change calculation and optional cash drawer (WebUSB)<\/li>\n<li><strong>Card<\/strong> \u2014 manual entry or Stripe\/SumUp card reader (Pro)<\/li>\n<li><strong>QR payment (SEPA\/EPC)<\/strong> \u2014 customer scans QR with banking app, zero transaction fees<\/li>\n<li><strong>Invoice<\/strong> \u2014 registered customers can buy on account (Pro)<\/li>\n<\/ul>\n\n<h4>Receipts &amp; Reports<\/h4>\n\n<ul>\n<li><strong>Receipt printing<\/strong> \u2014 thermal printer compatible, auto-print option, configurable header\/footer<\/li>\n<li><strong>X-Report &amp; Z-Report<\/strong> \u2014 daily close-out with cash count, opening float, cash difference<\/li>\n<li><strong>Report delivery<\/strong> \u2014 Z-reports via email and\/or webhook (JSON with HMAC) to accounting tools<\/li>\n<li><strong>Transaction history<\/strong> \u2014 filterable DataTable with CSV export<\/li>\n<li><strong>Dashboard<\/strong> \u2014 today's revenue, sales count, average ticket, terminal status<\/li>\n<\/ul>\n\n<h4>Setup &amp; Hardware<\/h4>\n\n<ul>\n<li><strong>Terminal management<\/strong> \u2014 auth token URLs, open\/close register, session tracking<\/li>\n<li><strong>Customer display<\/strong> \u2014 live cart view on second screen facing the customer<\/li>\n<li><strong>PWA \/ App<\/strong> \u2014 installable on tablet or phone, works like a native POS app<\/li>\n<li><strong>Multilingual<\/strong> \u2014 11 languages included (DE, EN, ES, FR, IT, NL, PT, HU, JA, ZH)<\/li>\n<\/ul>\n\n<h4>Why Vollstart POS Desk?<\/h4>\n\n<ul>\n<li><strong>No monthly SaaS fees<\/strong> \u2014 Cloud POS systems charge 30-100 EUR\/month. Vollstart is free, Pro is 49 EUR\/year.<\/li>\n<li><strong>No transaction fees<\/strong> \u2014 QR payment lets customers pay directly to your bank. Zero processing fees.<\/li>\n<li><strong>No vendor lock-in<\/strong> \u2014 your data lives in your WordPress database. Export anytime.<\/li>\n<li><strong>No WooCommerce required<\/strong> \u2014 no shop setup, no e-commerce overhead. Just install, add products, start selling.<\/li>\n<\/ul>\n\n<h4>Built for<\/h4>\n\n<ul>\n<li><strong>Small retail stores<\/strong> \u2014 ring up sales without a bulky POS system<\/li>\n<li><strong>Event box offices<\/strong> \u2014 sell tickets at the door, scan barcodes, close out the night<\/li>\n<li><strong>Repair shops<\/strong> \u2014 check out completed repairs and print receipts<\/li>\n<li><strong>Pop-up shops &amp; markets<\/strong> \u2014 set up in minutes on any tablet<\/li>\n<li><strong>Food trucks, cafes &amp; bakeries<\/strong> \u2014 fast checkout with favorites and quick numpad<\/li>\n<li><strong>Butcher shops &amp; delis<\/strong> \u2014 weigh products, print tickets, scan at checkout<\/li>\n<\/ul>\n\n<p>The free version is fully functional \u2014 unlimited terminals, unlimited products, and all core POS features listed above. The Pro add-on adds the features listed below for businesses that want more.<\/p>\n\n<h4>Pro Features (49 EUR\/year)<\/h4>\n\n<p><strong>Scale your business:<\/strong><\/p>\n\n<ul>\n<li>Staff PIN login (individual accountability per receipt)<\/li>\n<li>Customer purchase history in the customer portal<\/li>\n<li>Customer loyalty points<\/li>\n<\/ul>\n\n<p><strong>Sell smarter:<\/strong><\/p>\n\n<ul>\n<li>Discounts, coupons, and loyalty points<\/li>\n<li>Custom receipt templates (Twig editor with live preview)<\/li>\n<li>Monthly and yearly analytics with charts<\/li>\n<li>Receipt via email (with optional PDF attachment)<\/li>\n<\/ul>\n\n<p><strong>Accept more payments:<\/strong><\/p>\n\n<ul>\n<li>Stripe card reader (tap, chip, Apple Pay, Google Pay)<\/li>\n<li>SumUp card reader<\/li>\n<li>Invoice-on-account for registered customers<\/li>\n<\/ul>\n\n<p><strong>Advanced features:<\/strong><\/p>\n\n<ul>\n<li>Inventory scanner with stock management<\/li>\n<li>Price check kiosk<\/li>\n<li>Self-service kiosk (self-checkout terminal mode)<\/li>\n<li>Scan &amp; Go (customer scans products with phone, pays at register)<\/li>\n<li>Online orders with pickup &amp; delivery<\/li>\n<li>Product catalog with QR codes for online shopping<\/li>\n<li>Dynamic receipt ads (rule-based promotions on receipts)<\/li>\n<li>WooCommerce POS gateway (pay WooCommerce orders at the register)<\/li>\n<li>Vollstart Wallet integration (customers save receipts digitally)<\/li>\n<li>NFC tag support<\/li>\n<li>Cash drawer (WebUSB ESC\/POS)<\/li>\n<li>TSE\/KassenSichV compliance (Fiskaly cloud TSE, DSFinV-K export)<\/li>\n<li>DATEV accounting export<\/li>\n<\/ul>\n\n<p>That's less than 5 EUR\/month \u2014 a fraction of what cloud POS systems charge.<\/p>\n\n<p>Premium features require the separate <a href=\"https:\/\/vollstart.com\/shop\/vollstart-pos-desk-pro\/\">Pro add-on plugin<\/a>.<\/p>\n\n<h4>Third-Party Services<\/h4>\n\n<p>This plugin optionally connects to the following external services:<\/p>\n\n<h4>Open Food Facts (EAN product lookup)<\/h4>\n\n<p>When the \"EAN product lookup\" option is enabled in Settings, this plugin sends the scanned EAN barcode to the Open Food Facts API (openfoodfacts.org) to retrieve product name, ingredients, and image. No personal data is transmitted. This feature is <strong>disabled by default<\/strong> and must be explicitly enabled by the site administrator.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/world.openfoodfacts.org\/\">Open Food Facts<\/a><\/li>\n<li>Terms: <a href=\"https:\/\/world.openfoodfacts.org\/terms-of-use\">https:\/\/world.openfoodfacts.org\/terms-of-use<\/a><\/li>\n<li>Privacy: <a href=\"https:\/\/world.openfoodfacts.org\/privacy\">https:\/\/world.openfoodfacts.org\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>Stripe (Pro add-on only)<\/h4>\n\n<p>The Pro add-on plugin integrates Stripe for card-reader payments (tap, chip, Apple Pay, Google Pay). The Stripe.js SDK (js.stripe.com) is loaded by the Pro add-on when a Stripe card reader is connected at the terminal. The SDK collects payment data directly in the browser and submits it to Stripe \u2014 no payment data passes through your WordPress server. Stripe handles all payment data under their own terms.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/stripe.com\/\">Stripe<\/a><\/li>\n<li>Terms: <a href=\"https:\/\/stripe.com\/legal\">https:\/\/stripe.com\/legal<\/a><\/li>\n<li>Privacy: <a href=\"https:\/\/stripe.com\/privacy\">https:\/\/stripe.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>Stripe Terminal (Pro add-on only)<\/h4>\n\n<p>The Pro add-on uses Stripe Terminal's SDK (js.stripe.com\/terminal\/) to control physical Stripe card readers connected to the terminal computer (Wise Pad 3, etc.). The SDK runs locally in the browser and communicates directly with the card reader hardware. No card data is stored on your WordPress server.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/stripe.com\/docs\/terminal\">Stripe Terminal<\/a><\/li>\n<li>Terms: <a href=\"https:\/\/stripe.com\/legal\">https:\/\/stripe.com\/legal<\/a><\/li>\n<li>Privacy: <a href=\"https:\/\/stripe.com\/privacy\">https:\/\/stripe.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>SumUp (Pro add-on only)<\/h4>\n\n<p>The Pro add-on integrates SumUp for card-reader payments. The SumUp SDK (gateway.sumup.com) is loaded by the Pro add-on when a SumUp card reader is connected at the terminal. The SDK collects payment data directly in the browser and submits it to SumUp \u2014 no payment data passes through your WordPress server. SumUp handles all payment data under their own terms.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/sumup.com\/\">SumUp<\/a><\/li>\n<li>Terms: <a href=\"https:\/\/www.sumup.com\/en-us\/terms\/\">https:\/\/www.sumup.com\/en-us\/terms\/<\/a><\/li>\n<li>Privacy: <a href=\"https:\/\/www.sumup.com\/en-us\/privacy\/\">https:\/\/www.sumup.com\/en-us\/privacy\/<\/a><\/li>\n<\/ul>\n\n<h4>Vollstart Wallet (optional, free)<\/h4>\n\n<p>When the \"Vollstart Wallet\" option is enabled, receipts include a QR code that customers can scan with the Vollstart Wallet app. The receipt data is exposed via a public REST endpoint (only the data the merchant has chosen to publish \u2014 receipt number, items, total). The endpoint is open by design so the mobile app can read it without auth.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/wallet.vollstart.com\/\">Vollstart Wallet<\/a><\/li>\n<li>Privacy: <a href=\"https:\/\/wallet.vollstart.com\/privacy\">https:\/\/wallet.vollstart.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>Third-Party Libraries<\/h4>\n\n<p>This plugin bundles the following libraries:<\/p>\n\n<ul>\n<li><strong>DataTables 2.3.7<\/strong> \u2014 Table sorting, filtering, pagination (MIT, <a href=\"https:\/\/github.com\/DataTables\/DataTablesSrc\">github.com\/DataTables\/DataTablesSrc<\/a>)<\/li>\n<li><strong>DataTables Responsive 3.0.6<\/strong> \u2014 Responsive layout for DataTables (MIT, <a href=\"https:\/\/github.com\/DataTables\/Responsive\">github.com\/DataTables\/Responsive<\/a>)<\/li>\n<li><strong>JsBarcode 3.11.6<\/strong> \u2014 Barcode generation for product labels (MIT, <a href=\"https:\/\/github.com\/lindell\/JsBarcode\">github.com\/lindell\/JsBarcode<\/a>)<\/li>\n<li><strong>qrcode.js 1.0.0<\/strong> \u2014 QR code generation for labels (MIT, <a href=\"https:\/\/github.com\/davidshimjs\/qrcodejs\">github.com\/davidshimjs\/qrcodejs<\/a>)<\/li>\n<li><strong>qrcode-generator 1.4.4<\/strong> \u2014 QR code generation for EPC payment and weigh tickets (MIT, <a href=\"https:\/\/github.com\/kazuhikoarase\/qrcode-generator\">github.com\/kazuhikoarase\/qrcode-generator<\/a>)<\/li>\n<li><strong>html5-qrcode 2.3.8<\/strong> \u2014 Camera-based barcode and QR code scanning (Apache-2.0, <a href=\"https:\/\/github.com\/mebjas\/html5-qrcode\">github.com\/mebjas\/html5-qrcode<\/a>)<\/li>\n<li><strong>Twig 3.24.0<\/strong> \u2014 Template engine for receipt and label templates (BSD-3-Clause, <a href=\"https:\/\/github.com\/twigphp\/Twig\">github.com\/twigphp\/Twig<\/a>)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via the WordPress plugin search.<\/li>\n<li>Activate through the \"Plugins\" menu.<\/li>\n<li>Go to <strong>POS Desk &gt; Options<\/strong> and set your currency, tax rate, and business name.<\/li>\n<li>Add your products under <strong>POS Desk &gt; Products<\/strong>.<\/li>\n<li>Create a terminal under <strong>POS Desk &gt; Terminals<\/strong> and open the link on your tablet.<\/li>\n<\/ol>\n\n<p>That's it \u2014 you're ready to ring up your first sale.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>No. Vollstart POS Desk works completely independent of WooCommerce.<\/p><\/dd>\n<dt id=\"who%20can%20access%20the%20terminal%3F\"><h3>Who can access the terminal?<\/h3><\/dt>\n<dd><p>By default, WordPress users with the <code>manage_options<\/code> capability (administrators). The terminal URL uses an auth token \u2014 staff opens the link on a tablet and logs in with their WordPress account. With the Pro add-on, staff can log in with a personal PIN instead.<\/p><\/dd>\n<dt id=\"what%20printers%20are%20supported%3F\"><h3>What printers are supported?<\/h3><\/dt>\n<dd><p>Any printer your browser can print to. For thermal receipt printers, configure your OS default printer and enable \"Auto-print receipt\" in the options. Direct ESC\/POS printing is planned for Pro.<\/p><\/dd>\n<dt id=\"is%20my%20data%20stored%20externally%3F\"><h3>Is my data stored externally?<\/h3><\/dt>\n<dd><p>No. All data stays in your WordPress database. The only optional external call is the EAN product lookup (Open Food Facts API), which is disabled by default.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20on%20multiple%20devices%3F\"><h3>Can I use it on multiple devices?<\/h3><\/dt>\n<dd><p>Yes. Each terminal has its own URL. Open it on as many devices as you like \u2014 no terminal limit.<\/p><\/dd>\n<dt id=\"does%20it%20work%20offline%3F\"><h3>Does it work offline?<\/h3><\/dt>\n<dd><p>The terminal is installable as a PWA and caches its interface for fast loading. Cart data persists across page reloads. Full offline mode with transaction queuing and sync is a Pro feature.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20an%20ipad%20or%20android%20tablet%3F\"><h3>Does it work on an iPad or Android tablet?<\/h3><\/dt>\n<dd><p>Yes. Open the terminal URL in Chrome or Safari on any iPad or Android tablet. You can install it as a PWA for a native app experience \u2014 fullscreen, home screen icon, instant loading.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20thermal%20receipt%20printers%3F\"><h3>Does it work with thermal receipt printers?<\/h3><\/dt>\n<dd><p>Yes. Set your thermal receipt printer as the default printer in your operating system, then enable \"Auto-print receipt\" in POS Desk options. The receipt is formatted for 80mm thermal paper. For direct ESC\/POS printing without browser dialog: coming in a future update.<\/p><\/dd>\n<dt id=\"is%20this%20a%20free%20pos%20plugin%3F\"><h3>Is this a free POS plugin?<\/h3><\/dt>\n<dd><p>Yes. The full POS system \u2014 unlimited terminals and products, payments, receipt printing, barcode scanning, X\/Z reports \u2014 is completely free with no time limit. Optional Pro features (staff PINs, card readers, advanced reports, customer portal, TSE compliance, \u2026) require the separate Pro add-on starting at 49 EUR\/year.<\/p><\/dd>\n<dt id=\"is%20it%20gdpr%20compliant%3F\"><h3>Is it GDPR compliant?<\/h3><\/dt>\n<dd><p>Yes. All data is stored in your own WordPress database. Nothing is sent to external servers except the optional EAN product lookup, which transmits only the barcode number \u2014 no personal data.<\/p><\/dd>\n<dt id=\"who%20builds%20this%3F\"><h3>Who builds this?<\/h3><\/dt>\n<dd><p>Vollstart POS Desk is built by the team behind Event Tickets with Ticket Scanner and Vollstart Repair Desk \u2014 WordPress plugins trusted by thousands of users. We build tools we use ourselves, every day.<\/p><\/dd>\n<dt id=\"can%20i%20import%20existing%20products%3F\"><h3>Can I import existing products?<\/h3><\/dt>\n<dd><p>Yes. You can import products via CSV (semicolon-separated) with name, price, SKU, EAN, category, and more.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1 \u2014 2026-05-14<\/h4>\n\n<ul>\n<li>Wallet: the wallet receipt REST response (<code>\/wp-json\/vollstart-pos-desk\/v1\/wallet\/receipt\/{number}<\/code>) now includes the transaction id (<code>transaction_id<\/code>), so the Vollstart Wallet can render the merchant receipt QR (<code>TXR|&lt;id&gt;<\/code>) for returns\/lookup independent of the on-receipt QR print option.<\/li>\n<li>WP.org compliance: removed all hard caps. The free plugin no longer enforces terminal, product, action-sheet or photo-per-product limits \u2014 and the <code>freeLimits<\/code> \/ <code>currentCounts<\/code> boot-data exposed to JS is gone, along with every \"Upgrade to Premium\" CTA in the admin UI (terminal counter button, product counter badge, action-sheet cap tooltip, Staff and Analytics tab teaser cards).<\/li>\n<li>Migrated the License-Key field and the silent auto-upgrade-on-license-save logic to the separate Pro add-on. The free plugin no longer contains license code.<\/li>\n<li>Migrated the template-override mechanism (per-entity + global custom Twig templates), the three template-editor AJAX cases (<code>getTemplateSource<\/code>, <code>saveTemplate<\/code>, <code>resetTemplate<\/code>) and the CodeMirror enqueue from the free plugin to the Pro add-on. Free now exposes <code>vollstart_pos_template_render<\/code> filter and <code>vollstart_pos_admin_enqueue_extras<\/code> action \u2014 Pro hooks them.<\/li>\n<li>Security: new <code>VollstartPOS::sanitizePostArray()<\/code> helper sanitizes <code>$_POST<\/code> at every AJAX entry point (wp_unslash + sanitize_text_field, sanitize_textarea_field for declared textarea fields) before reaching manager methods. 25 callsites across 11 manager files now route through the helper.<\/li>\n<li>Security: schema-installation queries in <code>db.php<\/code> (CREATE TABLE, ALTER TABLE ADD COLUMN, ALTER TABLE DROP INDEX) use <code>%i<\/code> identifier placeholders in <code>$wpdb-&gt;prepare()<\/code> (WordPress 6.2+). Internal identifier-validator + column-def-validator regex helpers gate every iteration.<\/li>\n<li>PIN-login error message in the terminal collapsed to a single line \u2014 no more advertising \"PIN login coming\" in the free build.<\/li>\n<li>README: dropped the \"1 terminal, 50 products\" trialware-doc lines from Description and FAQ; reframed the Pro Features list and Pro upgrade copy accordingly.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 POS terminal, product management, receipt printing, barcode scanning, daily reports, customer display, weigh tickets, promotions, loyalty points, and more.<\/li>\n<\/ul>","raw_excerpt":"Turn any tablet into a cash register \u2014 no WooCommerce needed, no cloud, no monthly fees. Scan barcodes, print receipts, close the day.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/364804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=364804"}],"author":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sasonikolov"}],"wp:attachment":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=364804"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=364804"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=364804"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=364804"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=364804"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=364804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}