Back to work

    4x4AT / Custom PHP POS / Call-centre sales

    A custom ecommerce POS for phone, trade and B2C orders.

    First implemented around Magento for 4x4AT, this portable PHP sales platform supports custom quotes, customer-group pricing, credit accounts and Stripe deposit payments—and can connect to other API-enabled ecommerce platforms.

    One staff workflow / several systems of record

    Sales staffSearch / quote / sell
    4x4AT POSTransaction intent
    MagentoCommerce record
    StripePayment authority
    01Phone + tradeStaff-assisted selling
    02Customer groupsCustom pricing and terms
    03Credit + depositsFlexible payment flows
    04PHP applicationMagento-first, adaptable
    Client
    4x4AT
    Sector
    Automotive accessories
    Platform
    PHP application + Magento 2
    Payments
    Stripe deposits + trade credit
    Role
    POS architecture and development
    Scope
    Call centre, trade and B2C
    01

    The problem

    A normal ecommerce checkout could not support the way the sales team actually sold.

    Sales staff needed to serve both trade and B2C customers during a phone call, applying the right prices and credit terms while preserving quotes, deposits and Magento order integrity.

    Catalogue search

    Fast product and customer search across a large Magento catalogue.

    Custom quoting

    Save, reopen, revise and complete negotiated customer quotes later.

    Customer-group pricing

    Apply the correct trade or B2C price and commercial terms.

    Trade credit accounts

    Create orders against agreed credit and track the outstanding balance.

    Stripe deposits

    Take full or deposit payments securely during a telephone order.

    Store-aware selling

    Respect storefront, currency, customer-group and VAT rules.

    Competing sources of truth

    The staff-facing total had to survive Magento collectors, third-party extensions, Stripe and final order creation.

    02 / The solution

    A Magento-native POS with a portable PHP application layer

    The delivered integration uses Magento catalogue, customer, quote, tax, inventory and order services. Its staff workflow is separated in PHP so another ecommerce platform could replace that commerce boundary through equivalent APIs.

    01

    Customer

    Load the correct B2C or trade account and pricing group.

    02

    Search

    Resolve store-aware products, options and services.

    03

    Quote

    Build a restorable transaction with negotiated pricing.

    04

    Pay

    Authorise Stripe deposits, account credit or other tenders.

    05

    Order

    Create Magento order, invoice and transaction records.

    06

    Trace

    Link the quote, customer, payment and final order.

    Staff experience

    A fast browser cart for call-centre and account sales

    The frontend gives staff specialised catalogue and customer search, reusable custom quotes, customer-group pricing, shipping calculation and complete transaction restoration.

    That simple surface hides a much more involved order pipeline responsible for translating staff intent into Magento-native commercial records.

    Store-aware product and customer data
    Trade and B2C customer-group pricing
    Configurable, bundle, service and option products
    Custom quotes that can be saved, revised and restored
    Stripe PaymentIntent processing for phone and deposit sales
    Trade credit accounts, balances and purchase orders
    Invoice, transaction and traceability records
    Temporary stock bypass with configuration restoration
    Detailed payment and operational logging

    Standalone platform architecture

    The sales workflow is the product. Magento is one commerce adapter.

    The 4x4AT implementation proves the workflow against a complex Magento estate. The PHP application can be adapted to another ecommerce platform when catalogue, customer, pricing, inventory and order APIs are available.

    Reusable staff experience

    Customer search, quotes, pricing, deposits and credit workflows stay consistent for the sales team.

    Replaceable commerce boundary

    Platform-specific services translate products, customers, inventory and completed orders.

    Business-specific configuration

    Pricing rules, payment options and approval flows can be adapted to each business rather than forcing a generic POS model.

    03 / The hardest engineering challenge

    Financial reconciliation was the product.

    Magento, the POS, shipping collectors, payment providers and store-credit extensions can all calculate the same transaction differently.

    Repeated quote collection can change shipping, tax, credit allocation or grand totals after a salesperson has already agreed a price. The system therefore treats reconciliation as an explicit stage, not an incidental side effect of saving the order.

    Agreed total
    =
    Recorded total
    Across POS / Magento / Stripe
    01

    POS-displayed versus Magento-calculated totals

    02

    VAT-inclusive and VAT-exclusive shipping

    03

    Penny rounding across tax and line items

    04

    Partial payments, deposits and overpayments

    05

    Store-credit allocation and outstanding balances

    06

    Order, invoice, amount-paid and amount-due state

    07

    Duplicate Stripe confirmations and interrupted flows

    Payment safety

    Idempotency reduces the risk that a repeated Stripe confirmation becomes a duplicate Magento order.

    ++

    Correct totals matter more than clean demos.

    See the operational outcome
    04

    The outcome

    One operational layer for staff-led sales across multiple stores

    No unverified revenue or efficiency figures have been added. The defensible result is a unified workflow with Magento retained as the commerce record and Stripe as payment authority.

    AreaOperational complexityDelivered state
    Phone salesSeparate catalogue, quote and payment stepsOne call-centre transaction flow
    Customer pricingTrade and B2C terms interpreted manuallyCustomer-group prices and terms applied in context
    Payment stateMultiple tender paths to coordinateStripe deposits, trade credit and mixed payment methods
    Order integrityRisk of drift between systemsExplicit total reconciliation before order creation
    TraceabilityQuotes, payments and orders difficult to followLinked quote-to-order and payment records
    4x4AT Magento multi-store ecommerce website

    Separate website project

    The Magento 1 to Magento 2 migration is its own case study

    4x4AT's customer-facing website is a separate project: a performance-led Magento 2 multi-store migration with a custom theme, predominantly bespoke modules and WMS plugins. The POS connects to that estate, but it is a distinct staff-sales product with potential beyond Magento.

    Read the website migration case study

    05 / Honest retrospective

    Trade-offs worth being explicit about

    The system grew around consequential business rules. Its next phase should preserve that correctness while reducing coupling and increasing testability.

    01

    Direct Magento integration

    Bootstrapping Magento unlocked its existing catalogue and commerce logic quickly, but tightly coupled the POS to the Magento environment.

    02

    Responsive browser state

    A browser-based cart kept the staff workflow fast, while also placing important in-progress state on the client.

    03

    Correctness before elegance

    As business rules expanded, large PHP and JavaScript modules accumulated. Payment and total integrity took priority over ideal modularity.

    Future direction

    Make the payment boundary easier to change, test and observe

    Centralised server-side authentication and CSRF protection

    Clearer services for checkout, quoting, payments and reporting

    Server-side validation for every submitted price and permission

    Contract tests around Magento quote-to-order conversion

    Automated deposit, credit, shipping VAT and rounding scenarios

    Webhook-based Stripe recovery for interrupted checkouts

    Environment-based Magento bootstrap configuration

    Stronger payment-to-order observability and alerting

    Have a commerce workflow that standard software cannot handle?

    Let’s map the operational rules, payment state and platform boundaries before choosing what to build.

    Start a conversation
    ++
    Start a conversation