Back to Next Restaurant changelogs
Next Restaurant
v6.1.0
stable
Released
73 changes
Joomla 4
Joomla 5
Joomla 6
New Features
42
- Stripe: card, wallet and local payment methods through Stripe Checkout, on the storefront and on QR tables. A webhook settles the order even when the guest never returns to your site.
- Stripe refunds, in part or in full, from the payments ledger or the POS. Refunds made in the Stripe dashboard are recorded too, and no refund is ever recorded twice.
- A Stripe gateway refuses to charge when its keys do not match its mode (test keys on a live gateway, or the reverse).
- Pay links at the POS: choose Stripe or PayPal and a QR code appears; the guest pays on their own phone and the screen updates by itself. "Check now", "Copy link" and "Open here" included.
- Payroll (Monitoring → Payroll): hours per employee and pay period, with daily and weekly overtime, an overtime multiplier and weekly, two-weekly, twice-monthly or monthly pay periods.
- Payroll downloads: a summary CSV, a daily timesheet CSV, and Toast Payroll's import files for hours and for hours with tips.
- Shifts with no clock-out are listed with a warning and left out of payroll until fixed.
- Import data (Configuration → Import data): bring your menu, staff, customers and sales history over from Toast, Square, Clover, Lightspeed, another Next Restaurant site or any CSV or Excel file.
- A preview of every record (new, update, skip or problem, with the reason) before anything is written, and a choice of what to do with records that already exist.
- Import history, with Roll back for any import. Records used since the import are kept and listed.
- Imported sales history is a record only: no kitchen tickets, stock movements, webhooks or emails. Importing the same days twice skips what is already there.
- Your own column matching for any spreadsheet can be saved and reused.
- Export data (Configuration → Export data): menu, staff, customers or sales history to Excel or CSV, in Next Restaurant's own layout or a vendor's.
- Choose, rename and reorder the exported columns, and save the choice as a template.
- A file exported with the Next Restaurant layout imports straight back, on this site or another, keeping order numbers and customer codes.
- Three new apps on the Apps page: Import, Export and Online Payments. Switching Online Payments off stops checkout, QR and POS online payments while cash and card terminals keep working.
- Arabic, laid out right to left on every screen: admin, storefront, staff terminals and receipts.
- German, French, Spanish and Italian.
- Setting "Arabic-Indic digits" (Settings → Numbers), off by default.
- Terminology changes can apply to all languages or to one language only.
- After an update, the previous version's application files are removed from media/com_nextrestaurant/js (about 20 MB per update before).
- API keys (Configuration → REST API): give each integration its own key with only the permissions it needs, from twelve (read and change for menu, stock, orders and reservations; read for customers, payments, sales reports and timesheets). A key is shown once, can be revoked on its own, and shows when it was last used.
- Each API key belongs to the person who created it and never does more than their role allows, checked on every request. A key stops working when its owner's account is blocked. Super Users see every key and whose it is; everyone else sees only their own.
- API keys can have an expiry date, be switched off and on, and be edited (name, permissions, expiry) without changing the key itself.
- New REST endpoints for orders: list orders for syncing (by location, status, channel and last change) and read one order with its lines and payments.
- New REST endpoints for reservations: bookable slots for a day, book a table, list and read bookings, and change a booking or its status (confirm, seat, cancel, no-show) with the same rules as the host stand.
- New REST endpoints for menu and stock: change an item's base price or publish it, 86 an item or override its price at one location, read stock on hand, and set a count, par or reorder point or 86 an ingredient.
- New REST endpoints for reporting: customers, payments, refunds, the sales summary and timesheets, with the same numbers as the admin screens.
- Lists page with a cursor and an "updated since" filter, so another system can keep in sync without missing or repeating records.
- Rate limits per API key (300 reads and 60 changes a minute by default, adjustable), with RateLimit headers on every response. An address that sends 20 wrong keys in 5 minutes is refused for 5 minutes.
- Idempotency-Key on every POST and PATCH: a retried request replays the first answer instead of placing a second order or booking.
- If-Match with ETags on every PATCH, so an integration cannot overwrite a change staff made a moment earlier.
- Every API response has a request id, and errors name the field, the missing permission or the switched-off app.
- Webhooks are queued and retried: a delivery that fails is tried again after 1 minute, 5 minutes, 30 minutes, 2, 6, 12 and 24 hours, then marked failed. Answering 410 stops it. A new scheduled task, "Next Restaurant: Send webhook retries", sends the retries.
- 19 webhook events: orders (placed, updated, status changed, cancelled, completed, refunded), payments (captured, failed, refunded), reservations (created, updated, status changed, cancelled, seated, no-show), menu item availability, low stock, and customers (created, updated). Each carries the full record as the REST API returns it.
- The webhook delivery log shows each delivery's status and attempts, can be filtered and paged, and has Resend. A warning appears when retries are overdue, with Retry due now.
- Several webhooks, each with its own name, URL, events, on/off switch and signing secret. A secret can be shown again and copied at any time, or replaced; the screen shows which receivers have not been given theirs yet.
- A test button on each webhook sends it a signed ping and shows what it answered.
- Each webhook shows how many deliveries it has, how many are waiting and how many failed, and opens its own delivery log.
- Choose how long the delivery log is kept (1 to 365 days), and clear it. Deliveries still waiting are always kept.
- Webhooks only go to public addresses: the server itself, private networks and cloud metadata addresses are refused, when saving and on every send. A Super User can allow private networks for an internal receiver.
- Health tabs on the REST API and Webhooks screens switch on a plugin the API needs with one click, for users Joomla allows to change plugins. The API card under Apps shows the same problem, with Repair.
Changes
18
- Month and day names, "3 minutes ago" and the date pickers follow the language of the page.
- Guest and staff emails are written in the site's default language, not the language of whoever triggered them.
- The labour report and payroll count hours the same way, so they always agree.
- App names on the Apps page are translated.
- The payment return page and its messages are translated and no longer name one provider.
- The location picker in the top bar keeps its full name when longer menu labels fill the bar.
- The admin application runs on current versions of its libraries.
- The REST API and webhooks each have their own screen: Configuration → REST API and Configuration → Webhooks (was Integrations). Old links to Integrations open the REST API screen.
- Both screens are laid out in tabs: REST API has Keys, Settings, Health and Usage; Webhooks has Endpoints, Deliveries, Health and Usage. Health lists the setup steps in order, and Usage has examples to copy.
- Each webhook now chooses its own events, instead of one list for all of them.
- Changes made through the API are recorded in the audit log under the key's owner, with the key's name.
- POST /orders answers with the full order, including payments and the time it was last changed. Everything it returned before is still there.
- Webhook payloads carry the full order instead of a few identifiers. The fields they carried before are still there.
- A webhook no longer delays the request that caused it on PHP-FPM servers; it is sent after the response.
- QR table orders now send order.placed, like every other channel.
- An update no longer switches the REST API plugin back on when an administrator had switched it off.
- A stock count made on the stock screen is recorded in the stock movements, like every other change to stock.
- The token from before 6.1 keeps working for what it could do in 6.0 (read the menu, place orders) until you revoke it. It gains none of the new permissions.
Bug Fixes
5
- In the labour report, a break still open at clock-out was not subtracted.
- In the labour report, a shift crossing the edge of the date range was cut in half.
- In the labour report, a clock-in without a clock-out was silently dropped.
- Some receipt and email labels could not be translated.
- The webservices plugin's description printed "Joomla%s".
Language
2
- Every string in six languages: English, Arabic, German, French, Spanish and Italian, including the plugins.
- The import screens' vendor instructions and notes are translated.
Notes
6
- Updating adds tables for imports, saved import matchings and export templates. No extra steps are needed.
- The Import, Export and Online Payments apps are on after the update.
- To use German, French, Spanish, Italian or Arabic, also install Joomla's own language pack for it (System → Install → Languages).
- Stripe needs a webhook endpoint for full reliability. See the Stripe page in the documentation.
- Updating turns each 6.0 webhook URL into its own webhook with the same secret and events, so receiving systems keep working without a change.
- Updating adds tables for API keys, webhooks, the webhook queue and Idempotency-Key records, and creates the "Next Restaurant: Send webhook retries" scheduled task. On a site where scheduled tasks only run when someone visits (Joomla's default), retries can be late; a cron job keeps them on time.
Explore Next Restaurant
Product details, the full release history and documentation.