Skip to content
oozmi

Stop running retail using five tools

Storefront in one tool, OMS in another, finance reconciles after the weekend — every drift is a chargeback, a wrong discount, or a campaign that needs a developer to ship. oozmi puts cart, shipment, and invoice on the same row. Laguna runs ~60 stores on it with 0 in-house developers.

  1. 01 Campaign

    Marketing ships the storefront, not a ticket.

    A merchandiser opens CMS. Campaign landing page, discount rule, and segment all reference the same records storefront prices against. Merchandiser drafts the page, sets discount range, ratifies. Storefront serves the new page on the next request; discount applies on cart load; finance posts resulting orders against the same SKU rows warehouse stocks. At Laguna, a single discount toggle used to be a two-to-three-day developer ticket; marketing now ships it in minutes.

  2. CMS + discount on the row

    Landing pages and discount rules edit the same product and Account rows storefront reads. No second pricing system.

    Five-minute time-to-market

    A discount toggle that used to take 2–3 developer days now ships in minutes. Configuration replaces customization.

    Segment is a live query

    A campaign segment queries the same Account table CRM and storefront read — no nightly export to a marketing tool.

    Marketing self-serves

    Brief is no longer a developer ticket. Merchandiser builds the page, sets discount, ratifies campaign.

    Audit on every publish

    Each page publish, discount edit, and segment refresh writes a row — actor, target, before, after.

    Lighthouse 96 desktop

    Production score on laguna.rs. Mobile 84 as-is — with heavy data, complex pages, multiple third-party analytics, and a tailored experience per user segment.

  3. 02 Order

    From checkout to e‑Faktura without a sync.

    A shopper checks out on storefront. Order writes directly to the row OMS will route, warehouse will pick, and finance will invoice against — no order-to-OMS export, no warehouse-to-finance sync. Inventory reservation happens on the same stock count receiving team writes. e‑Faktura submits from source invoice. AI Builder proposes carrier routes from the same OMS tables operations team edits; ops lead ratifies.

  4. One row, four teams

    Storefront, OMS, warehouse, and finance all read and write the same order row. No webhook chain, no nightly reconciliation.

    Reservation on the count

    Cart reserves against the same stock row warehouse received. No cached availability, no oversell.

    OMS routes on the row

    OMS allocates to the bin warehouse wrote. Pick task is a column on the order line.

    Invoice from the order

    Finance posts invoice against the same order row. SEF e‑Faktura submits from source.

    Returns on the row

    Refund posts to the same order row, reverses stock reservation, writes one audit trail.

  5. 03 Segment

    Segment to revenue, same number.

    A marketer builds a segment — Tier 2 customers who bought a backlist title in the last 90 days. Segment query runs against the same Account table CRM uses; a discount writes a row on those Accounts; storefront prices against it on the next request; resulting orders post to finance against the same SKU rows. The number CMO reports is the row CFO closed the books on. No CSV export, no monthly true-up, no attribution model that disagrees with GL.

  6. Live query, not exported

    Segments query the same Account table CRM owns and storefront prices against. No reverse-ETL window of staleness.

    Discount writes the Account

    Promo is a row on the Account. Storefront, finance, and rep all read the same discount on the next request.

    Orders post against the segment

    Attribution is a join between campaign row and order row. Same row, same number for CMO + CFO.

    AI proposes the segment

    AI Builder proposes look-alikes from past campaign performance. Marketer reviews diff and ratifies.

In-store POS Planned

Same order row online or in-store. POS is now underway.

A retailer who needs POS replacement on day one is a conversation, not a same-week pilot. Run-Cleaner promise is end-to-end inside ecommerce, OMS, warehouse, and finance today.

Production vs Pilot

Production today
  • Ecommerce — storefront writes the order row finance reads (Laguna: 1–5 days → 5 min TTM)
  • CMS — landing pages built by marketing, no developer ticket
  • Sales & Marketing — discounts and segments on the same Account table
  • OMS — order routing, fulfilment, carrier integration on the order row
  • Warehouse — receiving, picking, packing, returns on the stock row
  • CRM — segments, loyalty, purchase history (one Account)
  • Financial Management — GL, AP/AR, SEF e‑Faktura on source invoice
  • audit_events on every product, order, campaign, refund write
In pilot
  • In-store POS replacement (ERP migration underway at Laguna)
  • Multi-entity consolidation across Laguna + Delfi (~80 + ~400 stores)
  • AI-proposed merchandising, segment look-alikes, carrier routes
  • Multi-country statutory reporting at NetSuite depth

Where it fits

Retail teams share records with Ecommerce , OMS , CMS , CRM , ERP , and Channels — the same row across every module that wrote it. No second copy, no reconciliation step.

Often read alongside: Operations , Front Office , and B2B .

Next step — 25 minutes

Bring one campaign you ran last quarter — we'll ship the same one in five minutes.

Brief, build, deploy, reconcile — and the timeline it took. Twenty-five minutes. We open admin, build the same campaign against a sandbox of your catalog + Account data, and show what changes when CMS, OMS, warehouse, and finance read the same row. One record, one platform, one number for CMO and CFO.