PHPackages                             mage2kishan/module-mage-pos - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. mage2kishan/module-mage-pos

ActiveMagento2-module[Admin Panels](/categories/admin)

mage2kishan/module-mage-pos
===========================

Panth MagePos — a full point of sale (POS) for Magento 2. Standalone touch-friendly terminal with cashier authentication and PIN lock, register sessions with cash management and X/Z reports, barcode scanning, quick keys, multi-cart hold/retrieve, discounts with per-role caps, custom sale lines, split payments (cash, offline and online methods), 80mm receipts, refunds, offline mode with order sync, and a drag-and-drop layout editor.

1.0.1(1mo ago)23↓50%1MITPHPPHP ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Since Jun 12Pushed 3w agoCompare

[ Source](https://github.com/mage2sk/module-mage-pos)[ Packagist](https://packagist.org/packages/mage2kishan/module-mage-pos)[ Docs](https://kishansavaliya.com)[ RSS](/packages/mage2kishan-module-mage-pos/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (18)Versions (3)Used By (0)

Magento 2 POS Extension: Free Open-Source Point of Sale Terminal (Hyva + Luma)
==============================================================================

[](#magento-2-pos-extension-free-open-source-point-of-sale-terminal-hyva--luma)

[![Magento 2.4.x](https://camo.githubusercontent.com/079c832211eed4f9451ebe264e3865f825b0f9f31b041cbf03676c6e254535d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342e342532302d2d253230322e342e382d6f72616e67653f6c6f676f3d6d6167656e746f266c6f676f436f6c6f723d7768697465)](https://magento.com)[![PHP 8.1 - 8.4](https://camo.githubusercontent.com/56b3cce18841623e2cbed2ebf09b06be1be8807e99e6e054a89d304ab4790b8e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532302d2d253230382e342d626c75653f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://php.net)[![Hyva + Luma](https://camo.githubusercontent.com/d4d6a05401973034a5aae392f030440eefa40afc9191ffb06ed897af5d25adb1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5468656d65732d487976612532302532422532304c756d612d313462386136)](https://www.hyva.io)[![Live Demo & Details](https://camo.githubusercontent.com/cdf811c686d1169089cf8b2709eb27a4c77b7eb4b2973ab1b57e5d00d822ac3e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c69766525323044656d6f25323025323625323044657461696c732d6d6167656e746f2d2d322d2d706f732d3044393438383f7374796c653d666c6174)](https://kishansavaliya.com/magento-2-pos.html)[![Packagist](https://camo.githubusercontent.com/d7754d2ce37568d1ee10c6fe66183a4283d27ed553c2cc36ba71179810c74e1d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061636b61676973742d6d616765326b697368616e2532466d6f64756c652d2d6d6167652d2d706f732d6f72616e67653f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)](https://packagist.org/packages/mage2kishan/module-mage-pos)[![License MIT](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e)](LICENSE)[![Upwork Top Rated Plus](https://camo.githubusercontent.com/6f72584179420c41ed90432fd2579a4ed36199d4229e8181d20f353c1c4ee4eb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5570776f726b2d546f702532305261746564253230506c75732d3134613830303f6c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)[![Website](https://camo.githubusercontent.com/f1ae86d28e2b505aee60f240d3e5508e390b0a8dc7a9b7ecf1b450fad862053f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576562736974652d6b697368616e736176616c6979612e636f6d2d304439343838)](https://kishansavaliya.com)

> **Turn any Magento 2 store into a retail counter for free.** Panth MagePos adds a standalone, touch-friendly POS terminal at `/pos` that is completely theme-independent and sells your real Magento catalog at your real Magento prices. Every sale lands as a normal Magento order with invoices, tax, stock deduction, and native reporting.

[![Panth MagePos main POS workspace — Magento 2 point of sale terminal in the light Paper theme with catalog, quick keys, cart and customer panels](./docs/screenshots/02-workspace-light.png)](./docs/screenshots/02-workspace-light.png)

**Product page:** [kishansavaliya.com/magento-2-pos.html](https://kishansavaliya.com/magento-2-pos.html)

---

Quick Answer
------------

[](#quick-answer)

**What is Panth MagePos?** It is a free, open-source (MIT) Magento 2 POS extension that adds a standalone point of sale terminal to your store at `/pos`. Cashiers log in, open a register session, and ring up sales from your live Magento catalog. Every sale is a real Magento order.

**What does it add to my store?**

- A **standalone POS terminal** at `/pos`, built with Alpine.js, that works on any theme without modification.
- **Cashier authentication** with PIN unlock, idle auto-lock, and server-persisted lock state.
- **Register sessions** with opening float, cash in/out, X reports, and Z reports with over/short.
- **Barcode scanning**, quick keys, all product types, split payments, 80 mm thermal receipts, and refunds.
- **Full offline mode** that caches the catalog locally and queues orders to sync when the connection returns.
- A **drag-and-drop layout editor** so each cashier can arrange the terminal panels the way they want.

**Which themes are supported?** The terminal renders outside the theme layout, so it is pixel-identical on **Hyva, Luma, and any custom theme**.

**Is it really free?** Yes. Panth MagePos is MIT-licensed. There are no paid tiers, no per-register fees, and no locked features.

**What does it need?** Magento 2.4.4 to 2.4.8, PHP 8.1 to 8.4, and the free `mage2kishan/module-core` package.

---

Need Custom Magento 2 Development?
----------------------------------

[](#need-custom-magento-2-development)

> **Get a free quote for your project in 24 hours** for custom modules, Hyva themes, performance work, M1 to M2 migrations, and Adobe Commerce Cloud.

 [ ![Get a Free Quote](https://camo.githubusercontent.com/eac8c45d21cff8b139ddc392325f3bd6c8266a6f3d7b23f15131c958f3d3c8d0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476574253230612532304672656525323051756f74652532302545322538362539322d5265706c7925323077697468696e2532303234253230686f7572732d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

### Kishan Savaliya

[](#kishan-savaliya)

**Top Rated Plus on Upwork**

[![Hire on Upwork](https://camo.githubusercontent.com/b69353d3c6e192f4d03cc36bb8883612004e32f54dd2dbcc1e700dd791acd875/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486972652532306f6e2532305570776f726b2d546f702532305261746564253230506c75732d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)

100% Job Success - 10+ Years Magento Experience Adobe Certified - Hyva Specialist

### Panth Infotech Agency

[](#panth-infotech-agency)

**Magento Development Team**

[![Visit Agency](https://camo.githubusercontent.com/bbf04bdd2aff502082508568ec42ace3a7475c98756f596e2013056c89726ed6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56697369742532304167656e63792d50616e7468253230496e666f746563682d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/agencies/1881421506131960778/)

Custom Modules - Theme Design - Migrations Performance - SEO - Adobe Commerce Cloud

**Visit our website:** [kishansavaliya.com](https://kishansavaliya.com) | **Get a quote:** [kishansavaliya.com/get-quote](https://kishansavaliya.com/get-quote)

---

Table of Contents
-----------------

[](#table-of-contents)

- [Who Is It For](#who-is-it-for)
- [Screenshots](#screenshots)
- [Key Features](#key-features)
- [Compatibility](#compatibility)
- [Installation](#installation)
- [Configuration](#configuration)
- [How It Works](#how-it-works)
- [Roles and Permissions](#roles-and-permissions)
- [Extending Payments (Developers)](#extending-payments-developers)
- [FAQ](#faq)
- [Support](#support)
- [About Panth Infotech](#about-panth-infotech)
- [Quick Links](#quick-links)

---

Who Is It For
-------------

[](#who-is-it-for)

- **Brick-and-mortar retailers using Magento** who need a cash register connected directly to their online catalog, without a separate POS database or monthly SaaS fee.
- **Stores with multiple tills** that want per-register sessions, cashier roles, and sales reports all inside Magento admin.
- **Hyva storefronts** that need a POS terminal that does not pull in jQuery, Knockout, or RequireJS.
- **Merchants who want real accounting** where every POS sale creates a native Magento order, invoice, credit memo, and stock deduction.
- **Developers** building custom POS hardware integrations or payment gateway processors on top of a solid open-source base.

---

Screenshots
-----------

[](#screenshots)

[![Cashier login screen of the Magento 2 POS terminal with username, password and register selection](./docs/screenshots/01-login.png)](./docs/screenshots/01-login.png) Cashier login[![Magento 2 POS workspace in the light Paper theme with product catalog, Top Sellers, quick keys and cart](./docs/screenshots/02-workspace-light.png)](./docs/screenshots/02-workspace-light.png) Workspace - light "Paper" theme[![Magento 2 POS workspace in the dark Ink Console theme](./docs/screenshots/03-workspace-dark.png)](./docs/screenshots/03-workspace-dark.png) Workspace - dark "Ink Console" theme[![Configurable product option selection modal in the Magento 2 POS](./docs/screenshots/04-product-options.png)](./docs/screenshots/04-product-options.png) Configurable product options[![Magento 2 POS cart with line items, discounts and totals](./docs/screenshots/05-cart.png)](./docs/screenshots/05-cart.png) Cart with line items and totals[![Quick keys panel in the Magento 2 POS](./docs/screenshots/06-quick-keys.png)](./docs/screenshots/06-quick-keys.png) Quick keys[![Drag-and-drop layout editor of the Magento 2 POS terminal](./docs/screenshots/07-layout-edit.png)](./docs/screenshots/07-layout-edit.png) Drag-and-drop layout editor[![Panth MagePos running on Luma theme](./docs/screenshots/08-luma-workspace.png)](./docs/screenshots/08-luma-workspace.png) Same terminal on Luma---

Key Features
------------

[](#key-features)

### Standalone Theme-Independent POS Terminal

[](#standalone-theme-independent-pos-terminal)

- **Touch-first SPA at `/pos`** with large targets (44 px+), numeric keypads, and a tablet-landscape layout that stays responsive on phones.
- **Rendered outside the theme layout** so Hyva, Luma, and any custom theme all look identical at the terminal.
- **Alpine.js + hand-written CSS** - no jQuery, no `mage/*`, no Tailwind, no build step needed.
- **The screen never scrolls** as a whole; each panel scrolls internally so the workspace always fits the screen.

### Cashier Authentication and PIN Lock

[](#cashier-authentication-and-pin-lock)

- **Dedicated POS users** (separate from admin users and customers) with username/password login.
- **Fast PIN unlock** after idle auto-lock so full credentials are only needed once per browser session.
- **Server-persisted lock** so a hard refresh still lands on the PIN screen and all data endpoints refuse to act while locked.
- **Roles with granular permissions**: maximum discount percentage, refund, price override, cash in/out, custom products, layout editing, and reports.
- **Passwords and PINs hashed with `password_hash()`** - never stored in plain text.

### Register Sessions and Cash Management

[](#register-sessions-and-cash-management)

- **Open a session with a float**; record cash in/out movements with reasons at any time.
- **X report** (mid-day snapshot) whenever needed; **Z report** on close with counted cash and automatic over/short reconciliation.
- **Every cash sale, refund, float, and movement is tracked per session** for accurate end-of-day reports.
- **Admin can view any session's Z data** with paginated cash-drawer movements, or force-close abandoned sessions.

### Catalog, Barcode Scanning, and Quick Keys

[](#catalog-barcode-scanning-and-quick-keys)

- **Instant live search** by name, SKU, or description; category browsing with infinite scroll.
- **Top Sellers shown on login** so the catalog panel is never empty.
- **Barcode scanning**: keyboard-wedge USB/Bluetooth scanners work out of the box; camera scanning via the browser `BarcodeDetector` API where available; barcode attribute is configurable (default SKU).
- **Quick keys**: favorite product tiles with custom labels, colors, and pages - managed in admin or pinned straight from the terminal.
- **Product quick-view**: tap any card to see images, description, salable quantity, and key attributes before adding.

### All Product Types with Server-Accurate Pricing

[](#all-product-types-with-server-accurate-pricing)

Panth MagePos sells every Magento product type, not just simples:

- **Simple** products - one tap to add.
- **Configurable** products - a variant picker for size, color, and any super attributes.
- **Grouped** products - choose quantities per associated product.
- **Bundle** products - full option selection with live price recalculation.
- **Custom options** - text, dropdown, checkbox, and other option types on any product.

Pricing is **server-accurate**: every cart is a real Magento quote, so catalog price rules, cart price rules, coupon codes, tier prices, customer group prices, special prices, and tax are all honored exactly as on your storefront.

### Cart: Multi-Cart, Hold and Retrieve, Discounts, Custom Lines

[](#cart-multi-cart-hold-and-retrieve-discounts-custom-lines)

- **Multi-cart tabs** so cashiers can serve several customers in parallel; **hold** a cart with a label and retrieve it later.
- **Discounts**: cart-level percent or fixed, line-level percent or fixed, price override, and native Magento coupon codes. Every path is capped by the cashier's role discount limit and enforced server-side.
- **Custom sale lines**: sell anything not in the catalog - name, price, quantity, and optional tax class - backed by a hidden placeholder product so totals and tax stay correct.
- **Customer attach** with search/create/guest - customer group pricing is honored instantly.

### Payments: Cash, Offline, Online, and Split

[](#payments-cash-offline-online-and-split)

- **Cash**: tendered-amount keypad, denomination shortcuts, and automatic change due.
- **Offline custom methods**: define any number in admin (card terminal, cheque, bank transfer) with an optional mandatory reference field and on-screen instructions.
- **Online methods**: a payment link rendered as a scannable QR code at checkout; the order is placed pending-payment and a `PaymentProcessorInterface` extension point lets developers wire real gateways.
- **Split payments**: combine any number of methods on one sale - half cash, half card, rest by payment link.
- **Fully paid cash/offline orders are auto-invoiced** (configurable).

### Receipts: 80 mm Print, Email, Reprint

[](#receipts-80-mm-print-email-reprint)

- **80 mm thermal-friendly print CSS** - prints through the normal browser dialog, so any printer works.
- **Store logo, configurable header/footer** (global and per-register overrides), tax breakdown, payment rows including change, and selected product options on every line.
- **Email receipts** (manual button or automatic) and **reprint** any past receipt.
- **Receipt numbers** in the format `{register_code}-{session_id}-{seq}`.

### Refunds and Returns

[](#refunds-and-returns)

- **Search past orders** by increment ID or email, or browse recent POS orders on the register.
- **Refund total is server-computed** with the same credit memo math as Magento, so discounted and taxed orders show the exact amount.
- **Choose the refund payment split**, optional restock toggle (MSI-aware), and a mandatory reason.
- **Creates a real Magento credit memo** and records the matching cash-drawer movement.

### Offline Mode

[](#offline-mode)

- **Catalog cached locally in IndexedDB** (configurable item limit).
- **On connectivity loss** the terminal switches to local search automatically and keeps selling for cash and offline methods.
- **Completed sales queue locally and sync automatically** when the connection returns - deduplicated by a client UUID so no order is ever created twice.

### Fully Customizable Drag-and-Drop UI

[](#fully-customizable-drag-and-drop-ui)

- **Every panel is freely movable and resizable** - catalog, search, quick keys, cart items, cart totals, cart actions, customer, holds, session, toolbar - by dragging the handle and resizing from the corner.
- **Layout presets**: `classic`, `mirrored`, `catalog-max`, `compact` - plus Reset to defaults.
- **Two named themes**: light "Paper" and dark "Ink Console", plus accent color picker, density, button scaling, and font scaling.
- **Everything persisted per POS user** so every cashier keeps their own layout on any device.

### Full Admin Backend

[](#full-admin-backend)

- **Dedicated admin menu**: Launch Terminal, Registers, Sessions, POS Users, Roles, Payment Methods, Quick Keys, Reports, Configuration.
- **Sales reports**: orders, gross, by payment method, by cashier, by hour - filterable by register and date range.
- **Sales Order grid integration**: the native order grid gains `POS Register` and `POS Cashier` columns.
- **Every admin surface ACL-protected** under `Panth_MagePos::manage`.

### Engineering Quality

[](#engineering-quality)

- **Strict types, constructor DI only** - no ObjectManager anywhere in the codebase.
- **MSI (Multi-Source Inventory) aware**: salability and salable quantities resolved per stock; restock on refund returns quantity to the correct source; graceful fallback when MSI is disabled.
- **All write endpoints are POST with form-key validation**; every permission enforced server-side.
- **Repository interfaces** (`Panth\MagePos\Api\*RepositoryInterface`) for every POS entity.
- **Unit-tested service layer**: discount caps, payment sum and change validation, session cash math, sync deduplication, and more.

---

Compatibility
-------------

[](#compatibility)

RequirementVersions SupportedMagento Open Source2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8Adobe Commerce2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8Adobe Commerce Cloud2.4.4 to 2.4.8PHP8.1.x, 8.2.x, 8.3.x, 8.4.xHyva ThemeAll versions (terminal renders outside the theme layout)Luma ThemeNative supportAny custom themeYes - the terminal does not depend on the storefront themeMSI (Multi-Source Inventory)Fully supported, with non-MSI fallbackRequired Dependency`mage2kishan/module-core` (free, installed automatically by Composer)**Recommended hardware:** any tablet or desktop with a modern browser (Chrome, Edge, Safari), an optional USB/Bluetooth keyboard-wedge barcode scanner, and any browser-printable receipt printer. No proprietary hardware required.

---

Installation
------------

[](#installation)

### Composer Installation (Recommended)

[](#composer-installation-recommended)

```
composer require mage2kishan/module-mage-pos
bin/magento module:enable Panth_Core Panth_MagePos
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush
```

The required dependency `mage2kishan/module-core` is installed automatically by Composer.

### Manual Installation via ZIP

[](#manual-installation-via-zip)

1. Download the latest release from [Packagist](https://packagist.org/packages/mage2kishan/module-mage-pos) or from the [product page](https://kishansavaliya.com/magento-2-pos.html).
2. Extract it to `app/code/Panth/MagePos/` in your Magento install.
3. Make sure `Panth_Core` is installed too (required dependency).
4. Run the commands above starting from `bin/magento module:enable`.

### Verify Installation

[](#verify-installation)

```
bin/magento module:status Panth_MagePos
# Expected: Module is enabled
```

After install, open the terminal at `https://your-store.com/pos` and the admin backend at:

```
Admin → Point of Sale (MagePos)

```

---

Configuration
-------------

[](#configuration)

Go to **Stores → Configuration → Panth → Point of Sale (MagePos)**.

SettingGroupDefaultDescriptionEnable ModuleGeneralYesMaster switch for the POS terminal and all MagePos features.Idle Auto-Lock (minutes)General5Minutes of inactivity before the screen locks and asks for the cashier PIN. Set 0 to disable.Default Register IDGeneral(empty)Register preselected on the login screen. Leave empty to let the cashier choose.Barcode Attribute CodeCatalog &amp; BarcodeskuProduct attribute matched when a barcode is scanned.Search Page SizeCatalog &amp; Barcode-Number of products returned per page in terminal search and category browse.Show Out of Stock ProductsCatalog &amp; BarcodeNoWhen enabled, out-of-stock products appear in search and category results.Offline Catalog Cache LimitCatalog &amp; Barcode2000Maximum products included in the offline IndexedDB catalog snapshot.Guest Checkout EmailCustomers-Email used for POS orders placed without selecting a customer.Default Customer GroupCustomers-Customer group assigned to customers created from the terminal.Placeholder Product SKUCustom Productspos-custom-saleSKU of the placeholder product used for ad-hoc custom line items.Default Tax ClassCustom Products-Tax class applied to custom line items when no tax class is chosen.Order Note PrefixCheckout-Prefix added to order comments from the POS terminal.Auto-Invoice Offline PaymentsCheckoutYesAutomatically create an invoice when an order is fully paid with cash or offline methods.Require Open Register SessionCheckoutYesBlock sales unless the cashier has an open register session.Receipt Logo URLReceipt(empty)URL or media path of the logo at the top of receipts. Leave empty to print the store name only.Receipt Header TextReceipt-Text shown below the logo on every receipt. Per-register overrides are set in the Registers grid.Receipt Footer TextReceipt-Text at the bottom of every receipt. Per-register overrides are set in the Registers grid.Show Tax BreakdownReceiptYesPrint the per-rate tax breakdown in the receipt totals.Auto-Email ReceiptReceiptNoAutomatically email the receipt when a customer email address is on the order.Enable Offline ModeOffline ModeYesCache the catalog in the browser and queue orders while the connection is down.Auto-Close Sessions After (hours)Register Sessions24Sessions left open longer than this are closed automatically by cron. Set 0 to disable.Registers, POS users, roles, payment methods, and quick keys are managed in their own admin grids under the **Point of Sale (MagePos)** menu, not in system configuration.

---

How It Works
------------

[](#how-it-works)

1. A cashier opens `https://your-store.com/pos`, logs in with username and password, picks a register, and opens a session with an opening float.
2. Products are found by barcode scan, search, category browse, or quick key. Configurable, grouped, and bundle products open an option picker.
3. Discounts, coupon codes, and customer group pricing are applied on the real Magento quote, so all price rules and tax are exact.
4. At checkout, the cashier selects one or more payment methods. Cash rows calculate change automatically. Split payments let any combination of methods cover the total.
5. The order is placed through Magento's native quote-to-order pipeline. A receipt number is assigned, a credit memo is available for refunds, and the sale appears immediately in `Admin → Sales → Orders`.
6. At end of day, the cashier closes the session with counted cash. The Z report shows expected vs counted cash and the over/short amount.

---

Roles and Permissions
---------------------

[](#roles-and-permissions)

Each POS role carries these settings, all enforced server-side:

PermissionWhat It Controls`max_discount_percent`Ceiling for all discount and price-override paths (0-100)`can_price_override`Direct line-price editing`can_refund`Order search and credit memo refunds`can_open_close`Opening and closing register sessions`can_cash_inout`Cash in/out movements`can_custom_product`Ad-hoc custom sale lines`can_edit_layout`Layout editor access`can_view_reports`X report and session reports in the terminalTwo seeded roles are included: **Administrator** (full access, 100% discount cap) and **Cashier** (10% discount cap, no refunds, no overrides). Duplicate and adjust to fit your team. If a cashier with a 10% cap tries a 15% discount, the server rejects it regardless of what the UI sends.

---

Extending Payments (Developers)
-------------------------------

[](#extending-payments-developers)

Wire a real gateway behind any online payment method by implementing `Panth\MagePos\Api\PaymentProcessorInterface`:

```
declare(strict_types=1);

namespace Acme\PosStripe\Model;

use Magento\Sales\Api\Data\OrderInterface;
use Panth\MagePos\Api\PaymentProcessorInterface;

class StripeProcessor implements PaymentProcessorInterface
{
    public function supports(string $methodCode): bool
    {
        return $methodCode === 'stripe_link';
    }

    public function process(OrderInterface $order, array $paymentRow): array
    {
        // Create a payment intent / checkout link for $paymentRow['amount'] ...
        return [
            'status' => 'pending',                       // 'paid' or 'pending'
            'reference' => 'pi_123',                     // gateway reference
            'redirect_url' => 'https://example.com/pay', // shown as link + QR at the terminal
        ];
    }
}
```

Register it in your module's `etc/di.xml`:

```

            Acme\PosStripe\Model\StripeProcessor

```

Repository interfaces (`Panth\MagePos\Api\*RepositoryInterface`) are available for every POS entity for programmatic access.

---

FAQ
---

[](#faq)

### Is Panth MagePos free?

[](#is-panth-magepos-free)

Yes. It is completely free and open-source under the MIT license. There are no paid tiers, no per-register fees, no license keys, and no locked features. You can use, modify, and redistribute it, including commercially.

### Does it work on Hyva?

[](#does-it-work-on-hyva)

Yes, and also on Luma and any custom theme. The terminal is a standalone SPA rendered outside the theme layout, so it looks identical on every theme. No jQuery, no `mage/*`, no Tailwind dependency.

### Is every POS sale a real Magento order?

[](#is-every-pos-sale-a-real-magento-order)

Yes. Sales go through Magento's native quote to order pipeline, so invoices, credit memos, tax calculation, stock deduction, and all reporting work unchanged. The native Sales Order grid gains POS register and cashier columns.

### Does it support configurable, bundle, and grouped products?

[](#does-it-support-configurable-bundle-and-grouped-products)

Yes. All Magento product types are supported: simple, configurable (variant picker), grouped (per-product quantities), bundle (full option selection with live price recalculation), and products with custom options. Selected options appear in the cart and on the receipt.

### How are discounts and price rules calculated?

[](#how-are-discounts-and-price-rules-calculated)

Server-side, by Magento itself. Every POS cart is a real Magento quote, so catalog price rules, cart price rules, coupon codes, tier prices, customer group prices, special prices, and tax are all honored exactly as on your storefront. POS-specific discounts are applied on top and capped by the cashier's role limit.

### Can it keep selling when the internet goes down?

[](#can-it-keep-selling-when-the-internet-goes-down)

Yes. With offline mode enabled, the terminal caches a catalog snapshot in IndexedDB and keeps searching and selling (cash and offline payment methods) when the network drops. Completed sales queue locally and sync automatically on reconnect, deduplicated by a client UUID so no order is ever created twice.

### Does it handle split payments?

[](#does-it-handle-split-payments)

Yes. Any number of payment methods can be combined on one sale, for example half cash and half card. Cash rows may exceed the remaining balance (the difference becomes change given back). Every payment row is stored per order and printed on the receipt.

### Does it support barcode scanning?

[](#does-it-support-barcode-scanning)

Yes, two ways. Keyboard-wedge USB and Bluetooth scanners work with zero setup. Camera scanning is available where the browser supports the `BarcodeDetector` API. The barcode attribute is configurable (default SKU).

### Can cashiers have different permissions?

[](#can-cashiers-have-different-permissions)

Yes, that is exactly what roles are for. Each role carries a maximum discount percentage plus yes/no flags for refunds, price overrides, session open/close, cash in/out, custom products, layout editing, and reports. All checks are enforced server-side.

### How do refunds work?

[](#how-do-refunds-work)

Search the order by increment ID or email (or browse recent POS orders), select items and quantities, and the refund total is computed server-side with the same math as a Magento credit memo. Choose the refund payment split, optionally restock (MSI-aware), give a reason, and a real credit memo is created along with the matching cash-drawer movement.

### Are there default login credentials?

[](#are-there-default-login-credentials)

No, by design. The seeded `admin` POS user is created disabled with random, unrecoverable password and PIN hashes. A fresh install cannot be logged into by anyone. You set your own password and PIN and enable the account in admin before first use.

### Does it work with Multi-Source Inventory (MSI)?

[](#does-it-work-with-multi-source-inventory-msi)

Yes. Product salability and salable quantities are resolved per stock via MSI. Refund restock returns quantity to the correct source. When MSI is disabled, the module falls back to legacy stock handling automatically.

### Can I run multiple registers?

[](#can-i-run-multiple-registers)

Yes. Create one register per till, each bound to a store view. Quick keys can be global or per register, receipt header and footer can be overridden per register, and sessions, cash, and reports are tracked per register.

---

Support
-------

[](#support)

ChannelContactProduct Page[kishansavaliya.com/magento-2-pos.html](https://kishansavaliya.com/magento-2-pos.html)EmailWebsite[kishansavaliya.com](https://kishansavaliya.com)WhatsApp+91 84012 70422GitHub Issues[github.com/mage2sk/module-mage-pos/issues](https://github.com/mage2sk/module-mage-pos/issues)Upwork (Top Rated Plus)[Hire Kishan Savaliya](https://www.upwork.com/freelancers/~016dd1767321100e21)Upwork Agency[Panth Infotech](https://www.upwork.com/agencies/1881421506131960778/)Response time: 1-2 business days.

### Need Custom Magento Development?

[](#need-custom-magento-development)

Looking for **custom Magento module development**, **Hyva theme work**, **store migrations**, or **performance tuning**? Get a free quote in 24 hours:

 [ ![Get a Free Quote](https://camo.githubusercontent.com/0d9512dc4f89ef40179e9f650fd0786b6bc846d289ab2cb04a223a43f2833eeb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f254630253946253932254143253230476574253230612532304672656525323051756f74652d6b697368616e736176616c6979612e636f6d2532466765742d2d71756f74652d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

 [ ![Hire on Upwork](https://camo.githubusercontent.com/fad56e8be7896e39593f090cd2ed32e6bf86b4b6e75974cf292aee99d45f5077/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486972652532304b697368616e2d546f702532305261746564253230506c75732d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465) ](https://www.upwork.com/freelancers/~016dd1767321100e21) [ ![Visit Agency](https://camo.githubusercontent.com/fdf45a9d937d72b896f5e2557337d47efebc0e06b7ad4d4c162c0a64375a62fa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56697369742d50616e7468253230496e666f746563682532304167656e63792d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465) ](https://www.upwork.com/agencies/1881421506131960778/) [ ![View Product Page](https://camo.githubusercontent.com/2c9083f5d96956a4be895d7d947d46303c04a55c3962743e8430f875f3a2b2cc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5669657725323050726f64756374253230506167652d6d6167656e746f2d2d322d2d706f732d3044393438383f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/magento-2-pos.html)

---

About Panth Infotech
--------------------

[](#about-panth-infotech)

Built and maintained by **Kishan Savaliya** ([kishansavaliya.com](https://kishansavaliya.com)), a **Top Rated Plus** Magento developer on Upwork with 10+ years of eCommerce experience.

**Panth Infotech** is a Magento 2 development agency that builds high quality, security focused extensions and themes for both Hyva and Luma storefronts. The extension suite covers SEO, performance, checkout, product presentation, customer engagement, and store management, with each module built to MEQP standards and tested across Magento 2.4.4 to 2.4.8.

Browse the full extension catalog on our [Magento extensions page](https://kishansavaliya.com/magento-extensions.html) or on [Packagist](https://packagist.org/packages/mage2kishan/).

---

Quick Links
-----------

[](#quick-links)

ResourceLink**Product Page**[magento-2-pos.html](https://kishansavaliya.com/magento-2-pos.html)**Packagist**[mage2kishan/module-mage-pos](https://packagist.org/packages/mage2kishan/module-mage-pos)**GitHub**[mage2sk/module-mage-pos](https://github.com/mage2sk/module-mage-pos)**Website**[kishansavaliya.com](https://kishansavaliya.com)**Free Quote**[kishansavaliya.com/get-quote](https://kishansavaliya.com/get-quote)**Upwork (Top Rated Plus)**[Hire Kishan Savaliya](https://www.upwork.com/freelancers/~016dd1767321100e21)**Upwork Agency**[Panth Infotech](https://www.upwork.com/agencies/1881421506131960778/)**Email****WhatsApp**+91 84012 70422---

 **Ready to add a real POS to your Magento store for free?**
 [ ![See Panth MagePos](https://camo.githubusercontent.com/673af15a8d48e5eade910df2e6ce377ecab65139b3b90a5dad0866c141d6faac/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f25463025394625394125383025323053656525323050616e74682532304d616765506f732532302545322538362539322d50726f647563742532305061676525323025323625323044657461696c732d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/magento-2-pos.html)

---

**SEO Keywords:** magento 2 pos, magento 2 point of sale, free magento 2 pos, magento 2 pos extension, magento pos open source, magento 2 pos system, panth magepos, magento 2 cash register, magento 2 retail pos, magento 2 pos terminal, magento 2 in-store sales, magento 2 barcode pos, magento 2 barcode scanner, magento 2 quick keys pos, magento 2 register session, magento 2 x report, magento 2 z report, magento 2 cash management, magento 2 cash drawer, magento 2 pos discount, magento 2 price override, magento 2 split payment, magento 2 split tender, magento 2 pos cash payment, magento 2 pos card payment, magento 2 payment link qr, magento 2 custom sale line, magento 2 pos refund, magento 2 pos credit memo, magento 2 pos receipt, magento 2 80mm receipt, magento 2 thermal printer receipt, magento 2 email receipt, magento 2 offline pos, magento 2 pos offline mode, magento 2 indexeddb pos, magento 2 pos order sync, magento 2 pos hold cart, magento 2 multi cart pos, magento 2 pos pin lock, magento 2 cashier roles, magento 2 pos permissions, magento 2 pos reports, magento 2 pos layout editor, magento 2 touch pos, magento 2 tablet pos, magento 2 configurable product pos, magento 2 bundle product pos, magento 2 msi pos, hyva pos, hyva point of sale, luma pos, magento 2.4.8 pos, php 8.4 pos, mage2kishan, mage2sk, kishan savaliya pos, panth infotech extension, magento 2 omnichannel, magento 2 brick and mortar, adobe commerce pos, free pos for magento, mit license magento pos

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance94

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

2

Last Release

40d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/343e344aa298f189db888b32d62f9202d31ced1a5ea23411850a63dc4a30299c?d=identicon)[kishansavaliya](/maintainers/kishansavaliya)

---

Top Contributors

[![KishanSavaliya](https://avatars.githubusercontent.com/u/16853223?v=4)](https://github.com/KishanSavaliya "KishanSavaliya (3 commits)")

---

Tags

barcodeposreceiptretailpoint-of-salemagento2magento2 modulehyvalumahyva-compatibletillomnichannelpos systemepospanthcash-registermagento-posoffline-pos

### Embed Badge

![Health badge](/badges/mage2kishan-module-mage-pos/health.svg)

```
[![Health](https://phpackages.com/badges/mage2kishan-module-mage-pos/health.svg)](https://phpackages.com/packages/mage2kishan-module-mage-pos)
```

###  Alternatives

[mollie/magento2

Mollie Payment Module for Magento 2

1131.9M16](/packages/mollie-magento2)[buckaroo/magento2

Buckaroo Magento 2 extension

32420.3k8](/packages/buckaroo-magento2)[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68357.9k](/packages/run-as-root-magento2-prometheus-exporter)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1011.8k26](/packages/loki-magento2-components)[opengento/module-category-import-export

This module add the capability to import and export the categories from the back-office.

1310.9k2](/packages/opengento-module-category-import-export)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
