Product

PDF to Order roadmap

What we shipped, what we are building this quarter, and what we are still thinking about. Published so you can judge whether the thing you need is coming, and tell us if it is not.

How to read this page

Most public roadmaps are marketing documents with a Gantt chart attached. This one is a status list with four states and no dates, because dates on a roadmap are a promise we would break.

Shipped is in production and you can use it today. Building now has a settled specification and engineers on it. Up next is committed for the current quarter but has not started. Exploring means we believe the problem is real and we have not decided how or whether to solve it.

The detail thins out as you move down the page. That is deliberate. We know a great deal about what we are building this week and very little about what we will build in nine months, and writing the second one at the same level of confidence as the first would be dishonest.

This quarter, in detail

The work with a settled specification, and the work committed behind it. This is the part of the roadmap we would defend in a room.

Building nowIn progress

Specification settled, engineers assigned, code in review or in testing.

  • A rebuilt app interface

    An Inbox of processed orders you can search and filter, a guided onboarding for a new install, a settings screen that holds per-account behaviour, and a Raise an issue flow that opens a support ticket attached to the order that caused it, so you never have to describe the document from memory.

  • Order inbox search and filters

    Filter processed orders by customer, status and date, and jump from a processed order straight to the Shopify order it created. Today finding a specific past order means knowing roughly when it arrived.

  • Customization engine

    Per-account instructions written in plain language, so you can tell the extraction how your documents behave rather than waiting for us to code a rule for it. This is the single largest change to how the product is configured.

  • Extraction accuracy on awkward documents

    Three specific failure modes. Line item tables that break across a page boundary. Notes typed into the body of the email alongside the attachment, which currently get ignored. And a second parsing model being run head to head against the current one on real documents.

  • Availability and monitoring

    Read replicas for the database, tighter monitoring, and correct retry behaviour on the job queue so a failed job actually retries instead of being swallowed.

  • SOC 2 Type II attestationSecurity

    The audit work is under way. We will say it is done when the report is in hand and not before.

Up nextThis quarter

Committed for the quarter, not yet started. Ordered roughly by how often merchants ask.

  • Purchase orders, not just sales orders

    The same extraction pointed the other way, so an inbound supplier document becomes a purchase order rather than a sales draft order. It needs supplier records, payment terms, receiving location and a supplier import, which is why it is a quarter of work and not a switch.

  • Better customer matching

    More signal used to resolve which account sent a document when the sending address is not on file, and clearer behaviour when the match is uncertain rather than a silent best guess.

  • Update the quote instead of creating a new order

    When a document carries a quote or draft order number, find that draft and update it, rather than creating a second order that someone then has to reconcile.

  • Contract price lists

    Native support for the tiered and per-customer price lists that wholesale merchants keep in apps like Wholesale Gorilla and SparkLayer, so the price on the draft order comes from the contract rather than from the buyer's document.

  • Carrier and shipping instructions

    Populate the carrier on the order, and read carrier account numbers and shipping codes out of the document when the buyer includes them.

  • Packaging and pack size handling

    Case, pack and unit conversions handled as first class data rather than inferred per line, which is where multi pack catalogues currently go wrong.

An item can move from Building now back to Up next if testing turns up something we had not accounted for. When that happens the page changes rather than the date slipping quietly.

Beyond this quarter

The high level view. These are directions rather than specifications, and the detail is thin on purpose.

ExploringNot committed

Real problems we have seen more than once. No dates, no commitment, and some of these will not happen.

  • PDF to Order for QuickBooks Online

    The same product for merchants whose orders land in QuickBooks Online rather than Shopify.

  • Listing on the Odoo marketplace

    PDF to Order already writes into Odoo. Listing it on the Odoo marketplace would make it findable by merchants who never touch Shopify.

  • An order intelligence API

    Decoupling the extraction and matching engine from Shopify entirely and exposing it as an API and an MCP server, so it can sit in front of any order destination.

  • Microsoft Dynamics 365 Business Central

    Including on-premise deployments, which is the harder half and the one that keeps coming up.

  • SAP Business One and systems with no usable API

    Where there is no API to write to, the remaining option is desktop automation. We have run this and it works, but it is fragile enough that we will not productise it lightly.

  • Direct payment collection

    Taking payment on an approved order rather than handing off to an invoice.

Shipped recently

The last two quarters, so you can calibrate how fast the rest of this page is likely to move.

ShippedLast two quarters
  • Built for Shopify status

    Earned in August 2026. It is Shopify's own quality bar for apps, covering performance, Polaris design conformance, error handling and integration depth.

  • PDF to Order for Katana and for Odoo

    The same extraction and matching writing into Katana MRP and into Odoo, not only into Shopify.

  • Case to unit conversion

    Documents ordered in cases now resolve to the right unit quantity against the catalogue instead of ordering the case count as units.

  • The original document on the order timeline

    The source PDF or email is attached to the Shopify order timeline, so anyone auditing the order later can see what was actually sent.

  • Create the customer when the email is not on file

    A new buyer's first order no longer fails on a missing customer record. Behind an on and off switch, because plenty of merchants want the opposite.

  • Order approval hold when no customer is matched

    If the app cannot resolve the account with confidence, it stops rather than creating an order against the wrong one.

How we decide what to build

Four inputs, weighted in this order. The list is short because a longer one would not be true.

What breaks in production

A failure on a real merchant's real document outranks everything else on this page. Extraction and matching accuracy is the product, and a document type that fails is a bug before it is a feature.

What paying merchants ask for, repeatedly

One request is a data point. The same request from four unrelated merchants in a quarter is a roadmap item. We track which account asked, so we can tell the difference between a loud voice and a common need.

What blocks a deal we can name

If a specific missing capability is the reason a wholesaler cannot adopt the product, it gets weighted heavily, provided the same gap is plausible for others.

What we believe about where this goes

The smallest input, and the one behind most of the Exploring group. Decoupling from Shopify is not something a merchant has ever asked us for. It is a bet about where order intake ends up.

Missing something on this list?

The fastest way onto this page is a real document that the product handled badly, or a workflow it cannot express. Send it and we will tell you honestly whether it is coming.

Requests from merchants running the app carry more weight than requests from anyone else, including us.

FAQ

Questions teams ask first

How often is this roadmap updated?

At the end of each quarter, and whenever something moves between Building now and Shipped. It is written by hand from our engineering backlog rather than generated from it, because the backlog carries customer names and support detail that are not ours to publish.

Why are there no dates on this page?

Because we would miss them. Every item carries a status instead. Building now means work is underway and the specification is settled. Up next means it is committed for the quarter but not started. Exploring means we think it matters and have not committed to it. Only Shipped is a fact.

Is anything on this page a commitment?

Shipped is. Building now is close to it. Up next and Exploring are not commitments, and items in those groups do get dropped or reordered when what we learn changes the priority. Do not sign a purchase order on the strength of an Exploring item.

How do I get something added?

Tell us. Requests from paying merchants outrank ideas we invented internally, and a request that arrives with the actual document or workflow that broke outranks a feature name. Use the contact form or raise it in the app.

Can I see the underlying Jira board?

No, and not because it is secret. The board carries merchant names, support tickets and security findings that belong to other people. This page is the curated public view of the same work.

Does the roadmap cover the consulting side of LevelOps?

No. This page is only the PDF to Order product. ERP, MRP and Shopify implementation work is scoped per engagement, not on a product roadmap.

See it on your own orders

Book a short demo. Bring a real purchase order and we will run it live, so you judge the match and the pricing on your own data.