PHP Point Of Sale
E-commercePHP Point Of Sale is a retail and restaurant POS available hosted or self-hosted. Agents keep the register catalog in step with an online store, pull daily sales and closeout figures for bookkeeping, manage customers, suppliers and receivings, and run any of its canned reports.
What This Integration Enables
PHP Point Of Sale is the back office of a physical counter, and the counter is the point. It is not a storefront that grew a register. Its object model is a store that has locations, tills, employees who clock in on them, suppliers who invoice it, expenses that hit it, appointments booked against it, and a catalog that has to be right on the shelf before it can be right anywhere else. It is also sold to run on the merchant's own server, which is a genuine buying reason for retailers who will not put till data on somebody else's host, and it is why a connector for it has to treat the store address as configuration rather than as a constant.
What FlowRunner adds is the traffic between that counter and everything else. Agents keep the register catalog and the online catalog from disagreeing, move the day's sales and the supplier ledger into the books, top up store credit, and read the canned reports on demand. The write side is where judgment matters. Creating an employee mints a login that can sign in to a till, recording a sale moves real stock, and an invoice payment here cannot be edited or deleted once it exists. That is exactly the surface human-in-the-loop orchestration is for: the agent does the gathering and the routine writes, and the operations that reach a person, a payment or a permission stop and ask.
Without FlowRunner
With FlowRunner
Use Case Scenarios
-
The override queue a manager can actually answer
An employee tries to void a line, delete an item or discount past their limit, and PHP Point Of Sale raises a permission request instead of letting them through. On its own that queue is a list of module and action identifiers with no story attached. An agent sweeps it with List Permission Requests, then reconstructs each one: Get Employee for who asked, Get Sale for the transaction they were standing in, Get Location for which store, and Get Item where the request names one. It posts the assembled case to the manager in Slack with the question stated plainly. The manager reads a sentence instead of a code, and answers from wherever they are.
-
One catalog, two counters
A price revision, a new range or a stock correction lands in a supplier sheet in Google Sheets. The agent reads the changed rows, resolves each one against the register catalog with List Items, and sends the whole revision through Batch Items in a single request, where creates, updates and deletes travel together and a bad row reports itself without taking the rest down. The same revision goes out to the storefront through Shopify or WooCommerce. The shelf, the till and the web listing stop drifting apart, because nobody is applying the change three times by hand.
-
The close that does not need a keyboard
After hours, the agent calls List Sales for the day and Run Report for the closeout figures, then pulls List Receivings, List Expenses and List Supplier Invoices for the same window. It posts the sales and expense lines into QuickBooks Online, files the unpaid supplier invoices for approval, and drops a short summary into the manager's channel with anything that looks unusual called out: a register that came up short, an expense filed with no category, a receiving with no invoice against it. The bookkeeper reviews exceptions rather than transcribing a day.
Human-in-Loop Highlight
Approve Permission Request is the one operation on this connector that an agent must never call, and the reason is structural. PHP Point Of Sale already ships the pause. When an employee's permissions forbid an action at the till, the software stops and asks a manager, which means every request in that queue exists precisely because a human was supposed to look at it. An agent that approves them is a manager override with nobody in the manager's chair, and the store's whole permission model quietly stops meaning anything. There is also no decline route on this API, so the agent cannot take the other side either: approval is one way, and a refusal is expressed only as silence, leaving the request pending until someone acts. So the agent does the work that surrounds the decision and none of the decision itself. It sweeps the queue, resolves the employee, the module, the action and the sale into a readable case, flags the requests that match something the store has already ruled on, and puts each one in front of the manager: "Dana at the Northside till is asking to delete a line from sale 8842, a returned item rung up twice. Approve, or leave it pending?" The manager approves in PHP Point Of Sale, and the store's permission model still means what it says.
Agent Capabilities
140 actionsCatalog Items
6- List Items Searches the item catalog, optionally narrowed to one category or one searchable field. The read behind every catalog sync.
- Get Item Reads one item in full, including variations, tier pricing and per location quantities.
- Create Item Adds an item to the catalog, generating an item number when none is supplied.
- Update Item Changes an existing item, touching only the fields the workflow sends.
- Delete Item Removes an item from the catalog while leaving its sales history intact for reporting.
- Batch Items Creates, updates and deletes items in a single request, with per row results. The operation a real catalog sync is built on.
Item Kits
6- List Item Kits Searches the bundles that sell several items as one line.
- Get Item Kit Reads one kit with the items and nested kits it contains, its pricing and its per location setup.
- Create Item Kit Builds a kit from a list of items and, optionally, other kits, priced as a fixed amount or as the sum of its parts.
- Update Item Kit Changes a kit, replacing its contents when a new item list is sent.
- Delete Item Kit Removes the bundle and leaves the items inside it untouched.
- Batch Item Kits Creates, updates and deletes kits in one request.
Item Categories
6- List Categories Searches the item categories the register grid is built from.
- Get Category Reads one item category, including its parent and its register grid settings.
- Create Category Creates an item category, nested under an existing one when a parent is named.
- Update Category Changes an item category's name, parent or grid settings.
- Delete Category Removes an item category, leaving items filed under it holding the old reference.
- Batch Categories Loads or reshapes a whole category tree in a single call.
Manufacturers
6- List Manufacturers Searches the manufacturers items are attributed to.
- Get Manufacturer Reads one manufacturer by id.
- Create Manufacturer Adds a manufacturer so items can be attributed to it.
- Update Manufacturer Renames a manufacturer.
- Delete Manufacturer Removes a manufacturer, leaving items that referenced it holding the old reference.
- Batch Manufacturers Creates, updates and deletes manufacturers in one request.
Tags
6- List Tags Searches the free labels used to group items across categories.
- Get Tag Reads one tag by id.
- Create Tag Creates a tag ahead of time, though naming a new tag on an item creates it too.
- Update Tag Renames a tag everywhere it is applied.
- Delete Tag Deletes a tag and strips it from every item carrying it.
- Batch Tags Creates, updates and deletes tags in one request.
Item Attributes
6- List Item Attributes Searches the named option sets, such as size or color, that item variations are built from.
- Get Item Attribute Reads one attribute definition with its allowed values.
- Create Item Attribute Defines an attribute and the values its variations may take.
- Update Item Attribute Changes an attribute, replacing the whole value list when new values are sent.
- Delete Item Attribute Removes an attribute definition and its values.
- Batch Item Attributes Creates, updates and deletes attribute definitions in one request.
Modifiers
6- List Modifiers Lists the add on choices offered against an item at the register.
- Get Modifier Reads one modifier group with its choices and their price adjustments.
- Create Modifier Creates a modifier group where each choice carries its own price adjustment.
- Update Modifier Changes a modifier group, replacing its choices when a new list is sent.
- Delete Modifier Removes a modifier group and its choices.
- Batch Modifiers Creates, updates and deletes modifier groups in one request.
Price Rules
6- List Price Rules Searches the automatic discount rules, including their coupon code and active window.
- Get Price Rule Reads one rule with everything it applies to: items, kits, tags, categories, manufacturers, locations and price breaks.
- Create Price Rule Creates an automatic discount, with the rule type deciding which amounts apply.
- Update Price Rule Changes a rule, replacing each target list that is sent with it.
- Delete Price Rule Removes a rule going forward, leaving already discounted sales as they were.
- Batch Price Rules Loads or clears a whole promotion set in one request.
Sales
5- List Sales Lists sales across a required date range, optionally for one customer or one location.
- Get Sale Reads one sale with its lines, payments, customer snapshot, totals and a link to its printed receipt.
- Create Sale Records a completed sale, which moves stock and posts money the moment it succeeds.
- Update Sale Changes an existing sale, reposting inventory when the line items are replaced.
- Delete Sale Reverses a sale's totals and returns its stock, keeping the record and the responsible employee for reporting.
Deliveries
4- List Deliveries Searches the shipping and pickup records attached to sales.
- Get Delivery Reads one delivery with its status, recipient and parent sale.
- Update Delivery Writes a carrier status or tracking number back onto a delivery.
- Delete Delivery Removes a delivery record and leaves its sale in place.
Receivings
5- List Receivings Lists stock in transactions across a required date range.
- Get Receiving Reads one receiving with its lines, costs and supplier.
- Create Receiving Records stock arriving, or a purchase order, and recalculates item costs from it.
- Update Receiving Changes a receiving, reposting the stock movement when its lines are replaced.
- Delete Receiving Takes the stock back out again, without restoring the costs it recalculated.
Customers
6- List Customers Searches customers by name, contact details, account number or custom field.
- Get Customer Reads one customer with their store account balance, loyalty points and pricing tier.
- Create Customer Creates a customer, optionally placed on a pricing tier that prices every future sale to them.
- Update Customer Changes a customer, touching only the fields sent.
- Delete Customer Removes a customer while their past sales stay in the reports, so settle any account balance first.
- Batch Customers Syncs a mailing list or a CRM into the store in a single request.
Suppliers
6- List Suppliers Searches suppliers by contact details, company name, account number or custom field.
- Get Supplier Reads one supplier, including their store account balance.
- Create Supplier Adds a supplier that items and receivings can be attributed to.
- Update Supplier Changes a supplier's details.
- Delete Supplier Removes a supplier while the purchasing history keeps its references.
- Batch Suppliers Creates, updates and deletes suppliers in one request.
Employees
6- List Employees Searches staff accounts by name, username, employee number, manager or custom field.
- Get Employee Reads one employee with their username, pay settings and permitted locations.
- Create Employee Creates a login that can sign in to a till, which makes the credentials it carries a secret.
- Update Employee Changes an employee, including resetting the login password when one is sent.
- Delete Employee Removes a login, though marking a leaver inactive keeps their sales and time clock history reportable.
- Batch Employees Creates, updates and deletes staff accounts in one request, so the body is as sensitive as a credential file.
Customer Invoices
5- List Customer Invoices Searches invoices raised to customers with their status, due date and outstanding amount.
- Get Customer Invoice Reads one customer invoice by id.
- Create Customer Invoice Raises an invoice against a customer, optionally tied to the sale it covers.
- Update Customer Invoice Moves an invoice to paid, extends a due date or corrects its detail.
- Delete Customer Invoice Removes a customer invoice without reversing payments already recorded against it.
Supplier Invoices
5- List Supplier Invoices Searches invoices received from suppliers, the payable side of the ledger.
- Get Supplier Invoice Reads one supplier invoice by id.
- Create Supplier Invoice Records an invoice received from a supplier, optionally tied to the receiving it covers.
- Update Supplier Invoice Changes a supplier invoice, typically to mark it paid.
- Delete Supplier Invoice Removes a supplier invoice without reversing payments already recorded against it.
Invoice Payments
6- List Customer Invoice Payments Lists payments received against customer invoices, optionally for one invoice.
- Get Customer Invoice Payment Reads one customer invoice payment by id.
- Create Customer Invoice Payment Records money received against a customer invoice, with no way to edit or delete it afterward.
- List Supplier Invoice Payments Lists payments made against supplier invoices, optionally for one invoice.
- Get Supplier Invoice Payment Reads one supplier invoice payment by id.
- Create Supplier Invoice Payment Records money paid to a supplier, and like the customer side it cannot be edited or removed later.
Expenses
6- List Expenses Searches recorded store expenses, optionally narrowed to one location.
- Get Expense Reads one expense with its amount, tax, category and the employee who recorded it.
- Create Expense Records an expense against a location and an expense category.
- Update Expense Changes a recorded expense.
- Delete Expense Removes an expense from the expense reports.
- Batch Expenses Imports a month of bookkeeping in a single call.
Expense Categories
6- List Expense Categories Searches the expense category list, which is separate from the item catalog categories.
- Get Expense Category Reads one expense category, including its parent.
- Create Expense Category Creates an expense category, optionally nested under an existing one.
- Update Expense Category Renames or re-parents an expense category.
- Delete Expense Category Removes an expense category, leaving expenses filed under it holding the old reference.
- Batch Expense Categories Creates, updates and deletes expense categories in one request.
Gift Cards
6- List Gift Cards Searches issued cards with their remaining value and the customer they belong to.
- Get Gift Card Reads one card and its balance, keyed on the number printed on the card.
- Create Gift Card Issues a card with a starting value, optionally tied to a customer.
- Update Gift Card Changes a card's balance, owner or active state.
- Delete Gift Card Destroys a card and any balance left on it.
- Batch Gift Cards Loads a printed batch of cards in a single call.
Registers
6- List Registers Searches the tills sales are rung up on, optionally narrowed to one location.
- Get Register Reads one till with its location and card terminal identifiers.
- Create Register Adds a till at a location, with terminal identifiers where card payments are integrated.
- Update Register Renames a till, moves it to another location or re-pairs its terminal.
- Delete Register Removes a till, leaving sales already rung up on it pointing at the old id.
- Batch Registers Sets up a new location's tills in a single call.
Locations and Pricing Tiers
4- List Locations Lists the store locations that every sale, receiving, expense and report filter is keyed on.
- Get Location Reads one location with its address, contact details, timezone and receipt settings. Also the cheapest way to prove a connection works.
- List Pricing Tiers Lists the tiers a customer can be placed on, such as wholesale.
- Get Pricing Tier Reads one tier by id, noting that the per item prices behind it live on the items themselves.
Appointments
6- List Appointments Searches booked appointments, optionally windowed by start and end time.
- Get Appointment Reads one appointment with its customer, employee, service and times.
- Create Appointment Books an appointment, though the platform accepts a double booking without complaint.
- Update Appointment Reschedules or reassigns an appointment.
- Delete Appointment Cancels a booking, leaving the customer message to the workflow.
- Batch Appointments Imports a whole day's schedule in one call.
Appointment Types
6- List Appointment Types Searches the bookable services appointments are made against.
- Get Appointment Type Reads one bookable service by id.
- Create Appointment Type Adds a bookable service to the menu.
- Update Appointment Type Renames a bookable service.
- Delete Appointment Type Removes a service, leaving past bookings pointing at the old id.
- Batch Appointment Types Loads a whole service menu in one call.
Permission Requests
3- List Permission Requests Lists the requests waiting on the manager the API key belongs to, which is the queue this page's human gate is built around.
- Create Permission Request Asks a manager for permission to perform one action in one module, using the install's own module and action identifiers.
- Approve Permission Request Grants a pending request. There is no matching decline route, and no agent should ever call this one.
Reports
1- Run Report Runs any of the store's canned reports by name with the shared date, location and transaction filters applied.
Frequently Asked Questions
What can FlowRunner do with PHP Point Of Sale?
FlowRunner agents can run List Items, Get Item, and Create Item in PHP Point Of Sale, plus 137 more actions.
Does connecting PHP Point Of Sale to FlowRunner require OAuth?
No. PHP Point Of Sale connects to FlowRunner with an API key, no OAuth flow required.
Can PHP Point Of Sale trigger a FlowRunner workflow automatically?
PHP Point Of Sale doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with PHP Point Of Sale
Free plan, no card required. Connect in minutes.