Retail
Retail software, and AI agents that never see a card number.
When orders still get re-keyed and nobody on your roadmap is free to fix it, our senior engineers join your team, wire the store, the warehouse and the ERP together, and build agents on that data with PCI scope and shopper consent designed in through to production.
Databricks partner
Microsoft Solutions Partner
The problems
What we're brought in for
Orders re-keyed by hand
An online order gets typed into the ERP by hand before the warehouse can even see it.
Stock counts that disagree
The website, the replenishment report and the pick list each show a different count for the same shelf.
Demand outrunning the process
Orders climb faster than a process on paper and spreadsheets can follow, which is where AmTab was when it called us.
A checkout nobody has audited
Scripts pile up on the payment page over the years, and PCI DSS v4 now asks who authorised each one.
What we build
What we build in retail
Software and commerce4
Built for AmTab
Store wired into the ERP
AmTab's online store and CRM now feed Business Central, so an order placed online reaches the ERP that invoices it untouched.
- No re-keying between store and ERP
- Shorter order turnaround
nopCommercePower AutomateDynamics 365Built for A California wine retailer
Commerce engine and ERP, end to end
For a California wine retailer we built the commerce engine and the ERP behind it as one piece of work.
- One team for the store and the ERP
How we'd build it
B2B pricing and quote-to-order
Customer-specific prices and entitlements, with quotes that become orders, on Shopify where it fits and custom where it strains.
- Each buyer sees its own prices
- Quotes become orders without a re-key
ShopifyHeadless commerceBusiness CentralHow we'd build it
Payment page script inventory
We'd list every script on the checkout, move card fields into the provider's hosted form and alert when the page changes.
- Evidence for PCI DSS 6.4.3 and 11.6.1
- Less of the site in card-data scope
Hosted payment fieldsChange monitoring
ERP and Dynamics3
Built for Funko
Warehouse system on Business Central
Our engineers sat with Funko's warehouse and operations teams on site and extended the Business Central module they already had.
- 2× operational efficiency
- Built on the existing module
Business CentralInsight WorksAzure Data FactoryBuilt for AmTab
Paper order steps automated
We worked through AmTab's manual order steps with its own people first, then automated them in Dynamics 365 and Power Automate.
- Orders off paper and spreadsheets
- Each step understood before it was automated
Dynamics 365Power AutomateAzure SQLHow we'd build it
Business Central reporting
Built-in reports, Power BI or a lakehouse, chosen by where the data each question needs actually lives.
- Reports that match the ERP
- No lakehouse until a question needs one
Business CentralPower BI
Data and AI on Databricks5
How we'd build it
One stock number per location
We'd land store, marketplace and ERP orders under Unity Catalog with one definition of available stock.
- Website promise and pick list agree
- Replenishment reads the same number
DatabricksUnity CatalogLakeflowHow we'd build it
Order promise dates you can defend
One promise date per order line across channels, with every change logged with who moved it and why.
- Records for the FTC order rule
- Late lines found before the customer calls
LakeflowDelta tablesHow we'd build it
Consent that reaches every export
Consent stored on the customer record with its time and source, read by every pipeline that feeds marketing.
- A GPC opt-out stops the next export
- Ad pixels and loyalty exports included
Unity CatalogDelta tablesHow we'd build it
Demand forecasts on order history
Once order history is governed, we'd build forecasts on it with no second copy of the data to drift.
- Forecasts read the governed tables
- Model runs tracked in MLflow
DatabricksMLflowHow we'd build it
A where's-my-order assistant
An assistant for the service team that answers order status from the same tables, within each person's access.
- Answers from live order data
- Respects who is asking
Databricks AppsUnity Catalog
Reference architecture
How the data fits together in retail
Store, marketplace, ERP and warehouse data land once, consent travels with the customer, and every app and report reads the same stock.
Step 1: Land each channel once
The store platform, marketplaces, Business Central, the warehouse system and the marketing tools arrive as governed tables.
Step 2: One definition of stock and of a sale
Available stock per location and a sale per channel are defined once, so the website and the warehouse agree.
Step 3: Consent on the customer record
Each customer row carries when and where consent was given, and every export to marketing reads it.
Step 4: Apps, AI and reports on top
Order promises, replenishment dashboards, forecasts and the service assistant read the same tables.
Proof
Work we've shipped in retail
Warehouse management
Funko doubles operational efficiency across the warehouse
- Operational efficiency
- 2×
- Operational efficiency
B2B ecommerceAmTab cuts order turnaround with a store wired into the ERP
nopCommerce · Dynamics 365 · Power Automate · Azure SQL
Read the case study
Blog
From our engineers
All 5 retail posts- Oct 27, 2026 · Preetham Reddy
Search that keeps up with a live game and an open loan
We indexed a wine catalog and refinance queues at iLending and Auto Approve. Search can now read a streaming table or a materialized view.
Read the article - Oct 9, 2026 · TechFabric
Business Central BC29: turning indexes on and off from AL
Each Business Central index slows every write to its table, in every company. BC29 lets AL code switch indexes per company. How we would use it, and where not.
Read the article - Oct 10, 2026 · TechFabric
BC29: multiple excise duties per item in Business Central
BC29 lets one Business Central item carry several excise duties. What it changes for the item records, period close and reporting in the systems we build.
Read the article - Oct 26, 2026 · Preetham Reddy
Databricks CustomerLake: a customer data platform inside the lakehouse
CustomerLake builds Customer 360 profiles and audiences on data already in Databricks. What's in Beta, and the workloads we'd move to it first.
Read the article - Sep 10, 2026 · TechFabric
Dynamics NAV support ends in January 2028
Microsoft's extended support for Dynamics NAV 2018 ends on 12 January 2028. What moving to Business Central involves, and why the warehouse floor sets the size.
Read the article
Compliance and governance
The rules we build around
PCI DSS v4 payment-page scripts
Requirements 6.4.3 and 11.6.1 took effect on 31 March 2025, so each script on a payment page is authorised and watched for change.
Source: PCI Security Standards Council
SAQ A merchants
Merchants who qualify for SAQ A can rely on their payment provider's confirmation for those two requirements instead.
Source: PCI Security Standards Council
CCPA and the Global Privacy Control
Shoppers can opt out of the sale or sharing of their data, and California treats a GPC browser signal as a valid request.
Source: California Attorney General
FTC Mail, Internet or Telephone Order Rule
Ship within the time you state, or 30 days if you state none, and offer a delay or a refund when you can't.
Source: 16 CFR 435.2
How we engage
Ways to start
Two weeks, fixed fee
AI Readiness Assessment
Names the use case worth building first, the data and permissions it needs, and what it would cost to run for a month.
Two weeks, fixed fee
Databricks Health Check
Reads cost, job reliability and Unity Catalog coverage on the platform you already run, and ends in a ranked scorecard.
Six weeks, after discovery
Lakehouse Launchpad
A governed lakehouse from a standing start, with Unity Catalog in place before the first pipeline and dashboards for the people who asked for them.
For the length of the engagement
Forward-deployed engineers
Senior engineers in your workspace and your repository, as a team with a lead or as individuals under yours.
In depth
Retail in depth, with sources
Retail software is judged on throughput. An order arrives, and everything between it and a doorstep either runs itself or costs somebody an afternoon. Funko's warehouse system was built to cut operating expense, and AmTab came to us when pandemic demand outgrew an order process run on paper and spreadsheets.
AmTab's online orders now reach Business Central without anyone re-keying them. On your order path, the engineer who traces it with your warehouse lead is the one who'd write the fix.
Databricks for retail data
A retailer's stock, orders and customers usually live in three systems that each think they're the record: the store platform, the ERP and the marketing tools.
On Databricks we'd land all three under Unity Catalog and keep one definition of available stock per location, so the promise date on the website, the replenishment report and the warehouse's pick list read the same number.
A consent field on the customer record, saying when and where consent was given, belongs in the same model, so every export to marketing reads it. And once the order history is governed, a demand forecast or an assistant that answers "where's my order" for the service team can be built on it without a second copy of the data.
PCI DSS v4 and the payment page
PCI DSS v4 brought 64 new requirements, and 51 of them were future-dated until 31 March 2025, when they took effect. Two of those, 6.4.3 and 11.6.1, are aimed at e-commerce and at making sure the scripts running on a payment page are properly authorised.
The PCI Security Standards Council added them because card data was being stolen during online checkout. A checkout page tends to collect a tag manager and an analytics script over the years, each added by someone with a good reason.
We'd start with an inventory of every script that loads on the payment page and who asked for it, move the card fields into the payment provider's hosted form where the provider supports it, and alert when anything on the page changes.
Sources: PCI SSC on the requirements effective after 31 March 2025
Order promises across stores and marketplaces
Orders from the website, the stores and the marketplaces all draw on the same stock. The FTC's Mail, Internet, or Telephone Order Merchandise Rule expects a seller to ship within the time it states, or within 30 days if it states none, and to offer the buyer a choice between a delay and a refund when it can't.
A seller without records showing its systems ship on time is presumed to have had no reasonable basis for the promise. We'd hold one promise date per order line, computed from stock across every channel, and log each change to it with who moved it and why.
Sources: 16 CFR 435.2, the FTC order rule
State privacy laws and shopper data
California's CCPA lets a shopper opt out of the sale or sharing of their personal information, and the state Attorney General says a browser signal such as the Global Privacy Control must be honored by covered businesses as a valid request to stop.
Other states have since passed privacy laws of their own, each with its own thresholds. For a retailer the opt-out has to reach every system that shares customer data, the ad pixels and the loyalty export as much as the email list.
We'd model consent as a field on the customer record with a timestamp and a source, read it in every pipeline that feeds marketing, and test that a GPC signal on the website stops the next export.
FAQ
Retail: questions we get asked
How would you govern an AI agent that works on orders and customers?
We'd design the rules in before the agent is built. An assistant that answers "where's my order" or proposes a refund works under its own identity and Unity Catalog permissions, never sees a card number, reads the consent field before anything goes to marketing, and has every action it proposes checked against policy and recorded, in testing as in production.
How a refund check works is in the Field Guide's chapter on governed actions, and it's the pattern our AI agent services build on.
Does this connect to our ERP?
Yes, and often we are the ones implementing it. The warehouse work at /case-studies/funko was built on Dynamics 365 Business Central with Azure Data Factory moving data around it, and the AmTab modernisation at /case-studies/amtab sat on Dynamics 365 and Power Automate.
Where the ERP already exists, integration with the system of record is the first design constraint rather than a later phase.
Do retailers need Databricks, or is the ERP enough?
If every question is answered by the ERP and the store platform, reports on those are enough. Once stock, orders and customers have to be joined across channels, or a forecast needs years of history, we'd put them on Databricks under one definition each.
Funko's warehouse system and AmTab's store-to-ERP integration both run on Business Central, so we know the records that would feed it.
Our growth is breaking the systems we have. Where do you start?
With what is actually running rather than what the documentation claims: which processes are manual, where throughput is lost, and which integrations are load bearing. AmTab came to us when pandemic demand outgrew an order process run on paper and spreadsheets, and the sequencing mattered more than the rewrite.
Does PCI DSS still apply to a retail site if the payment provider takes the card?
Yes, though the scope shrinks. A hosted payment form keeps the card number off your servers, and for merchants who qualify for SAQ A, the PCI Security Standards Council took requirements 6.4.3 and 11.6.1 on payment-page scripts out of scope; those merchants can rely on their payment provider's confirmation that the scripts are protected instead.
The rest of the standard still applies to a retail site, and the page that loads the form is still yours. We'd list the scripts that load next to the payment form and who added each, and ask marketing what each is for before removing any, since some of them carry order tracking.
Shopify, or custom commerce?
Shopify where the catalogue and the pricing fit it, because paying to rebuild what it already does well is money spent twice.
B2B is where it strains, once each customer has its own prices and entitlements and a quote has to turn into an order. We'd tell you which side of that line you're on before you commit, and the longer answer is at /software/ecommerce.
What does the FTC order rule mean for an online store's systems?
Ship within the time you state, or within 30 days if you state none, and when you can't, offer the buyer a choice between the delay and a refund.
A seller without records showing its systems ship on time is presumed to have had no reasonable basis for the promise. We'd hold one promise date per order line, computed from stock across every channel, and log each change to it, so the records exist before anyone asks for them.
Can you build demand forecasting for a retailer?
Yes, once the order history is governed. We'd land orders from every channel under one definition of a sale, build the forecast on those tables with the model and its runs tracked in MLflow, and feed it into the replenishment report the buyers already read, so the forecast and the ERP never argue about what was sold.
Talk to someone who has built this.
A technical conversation with a senior engineer who has shipped in retail, about what you're trying to build.