Skip to content
An anonymized four-step Magento in-store order workflow displayed on a retail counter laptop
Four guided steps
UK retail merchant · Custom Magento 2 solution

Building a Guided In-Store Order Workflow for Magento 2

A UK retail merchant needed a focused way for staff to record physical shop sales in Magento 2, including items that were not already available in the online catalogue. We designed and developed a custom Admin extension that guides the complete order process while keeping Magento responsible for customers, pricing, tax, inventory, invoices, and emails.

  • Magento 2
  • PHP 8
  • Quote and Order APIs
  • Customer APIs
  • RequireJS
  • ACL

Case note

What changed and why it mattered

The useful part of a case study is the reasoning: what was risky, what was shipped, and what proof the team had after release.

The problem at the counter

Magento’s standard administrator order workflow was too broad for quick physical-shop sales, especially when an item did not exist in the online catalogue. Staff needed a direct path that still produced real Magento customers, orders, invoices, tax records, inventory movements, and transactional emails.

  • Find enabled catalogue products quickly by product name or SKU.
  • Add manual in-store items with a validated title, unit price, and quantity.
  • Reuse an existing customer account or create a new account with minimal information.
  • Capture the order address and apply an agreed final total without bypassing Magento tax calculations.

A focused four-step Admin workflow

The custom extension replaces a long general-purpose process with four clear stages. Staff can move backward to make corrections without losing selected products or customer information.

  • Products: select a store view, search the catalogue, or enter a manual item.
  • Customer information: capture identity, contact details, and the required order address.
  • Invoice and emails: choose the order email, paid offline invoice, and invoice email options.
  • Review and submit: check every decision, edit the relevant step, and create the Magento order once.

Catalogue products and manual items

Existing simple and virtual products can be found by name or SKU, while an intentionally separate manual-item path covers products sold in the shop but not listed online. Before order creation, the server reloads catalogue products from Magento instead of trusting prices, status, or availability submitted by the browser.

  • Selected items remain visible in a dedicated Order Items panel.
  • Quantities and manual-item details can be corrected before submission.
  • Manual prices and quantities are validated on the server.
  • Magento remains authoritative for catalogue pricing and product state.

Customer identity, address, and website scope

The extension checks the supplied email against the selected Magento website. Existing accounts are reused without reading or changing their password, while a new customer is created only after valid account information is supplied.

  • Customer lookup respects Magento website scope.
  • First name, last name, email, telephone, street, city, region, postcode, and country are validated.
  • Address fields can be prefilled from Magento’s configured store information.
  • Customer passwords are never exposed by the workflow.

Invoices, emails, and exact final totals

Staff can optionally send Magento’s order email, generate a paid invoice immediately, and send the native invoice email. The invoice uses Magento’s offline capture process rather than pretending that an online gateway payment occurred.

  • The invoice email uses Magento’s native sender and does not attach an invented PDF.
  • An agreed final amount is converted into a quote discount through Magento’s pricing and tax pipeline.
  • The resulting discount remains consistent across the order, invoice, invoice PDF, credit memos, and tax calculations.

Reliability, security, and configuration

The implementation uses Magento dependency injection, quote and order APIs, customer services, catalogue and inventory services, native email senders, ACL-protected controllers, RequireJS, declarative schema, and data patches. Configuration stays limited to the choices the workflow actually owns.

  • Administrator permissions and duplicate-submission protection guard order creation.
  • Product, customer, price, quantity, store, and website inputs are checked on the server.
  • Recovery handling separates a placed order from later invoice, email, or shipment failures.
  • Configuration covers module enablement, the manual-item tax class, and the default order, invoice, and invoice-email selections.
  • Currency, tax, inventory, customer groups, sender identities, templates, and numbering continue to use Magento configuration.
  • No direct SQL is used to create customers, quotes, orders, or invoices.

Outcome

The merchant now has a purpose-built interface for recording physical retail sales while Magento remains the central source of truth. The project shows how a focused Admin experience can simplify staff work without replacing the platform services that keep commerce data consistent.

Build a similar workflow

Does your Magento team work around an Admin process that does not fit the business?

Share the current workflow, where staff lose time, the Magento services that must remain authoritative, and the result the team needs. We will recommend a focused first phase for a reliable custom Admin solution.

Contact Haroone