Omnifill documentation
Use these notes to bring orders in, clean up product mapping, and prepare fulfillment exports or partner handoffs.
Track source, customer, address, quantity, amount, product, status, and the Omnifill order ID in one place.
Use live payment connections where available and CSV imports when a campaign platform or partner gives you files.
Problem orders can stay out of exports, routed orders remain visible, and likely accidental duplicates can be reviewed before fulfillment.
How It Works
A typical setup has four steps. Bring orders in, map product names to the right SKUs, then send clean shipping data out.
Bring your orders in
Connect a live source like Stripe, PayPal, Shopify, or WooCommerce, or upload a CSV from Kickstarter, Indiegogo, Gamefound, or another export.
See everything in one format
Omnifill normalizes the important parts: customer info, address, quantity, amount, currency, source, and a stable Omnifill order ID.
Match messy product names to real products
If one source says "Deluxe box pledge" and another says "Deluxe edition," you can map both to the same product and SKU your warehouse recognizes.
Export or route orders
When the order data looks right, export a clean CSV or send the orders to a supported partner. Orders can be marked as routed once they are handed off.
Connections
Start by adding the channels you use. Omnifill gathers them into the same order table.
Useful for direct payments, checkout flows, and creator stores that sell outside a classic storefront.
Bring in PayPal transactions so those orders sit beside everything else.
Import paid store orders into the same shared order table used for your other channels.
Keep WordPress store orders alongside the rest of your fulfillment work.
Upload exports from Kickstarter, Indiegogo, Gamefound, and similar tools when a CSV is the easiest path.
Live sources can be synced again later, so your order table stays current as new paid orders arrive.
Products And SKUs
The most important setup step is telling Omnifill what your real shippable products are.
A product is the version of an item your warehouse needs to recognize. It can have a name, SKU, image, stock count, and a flag for whether it should ship at all.
Aliases let different raw names point to the same product. Once you map a name once, future imports can match it automatically.
A source item can be defined as a bundle, so one imported reward or store line expands into multiple warehouse products with their own SKUs and quantities.
If you track stock, Omnifill can compare available units to assigned order quantity so you can spot shortages early.
Digital rewards, tips, or items that do not physically ship can be excluded so they do not clutter exports.
Duplicate Order Review
Omnifill uses two layers to keep repeated orders from reaching fulfillment by accident.
If the same source order ID arrives again from the same platform, Omnifill updates the existing record instead of creating a second row.
When a new paid order is imported, Omnifill compares buyer details, shipping destination, item set, amount, and order date against recent active orders.
A likely accidental duplicate is marked as Problem with a duplicate reason, so normal paid-only exports and auto-send rules hold it back.
Open the order in the dashboard. Set it to Paid if it is legitimate, or Ignored if it should not be fulfilled.
Exports And Routing
Use export rules to decide which paid orders should go to a warehouse or partner. The handoff can be a CSV file, a hosted pull link, an SFTP push, a supported API route, or a partner-managed workflow.
- CSV is the dependable default. If your warehouse works from files, Omnifill helps you produce a cleaner one with less manual cleanup.
- Direct routing is partner-specific. Some workflows can send data straight to a partner API, SFTP folder, or WMS route, depending on the fulfillment setup.
- Problem orders can be held back. If an order has a bad address or another issue, you can keep it from being treated as fulfillment-ready.
- Routed orders stay visible. Omnifill keeps the order in your table and marks it as routed so you still have a clear history.
Partner Portal
The partner portal at partner.omnifill.net gives warehouses, 3PLs, and fulfillment partners their own Omnifill workspace for connecting client accounts and following the orders they are responsible for shipping.
Warehouse and 3PL teams can create an Omnifill login for partner access, then use the portal once their partner workspace is active.
Partners add client email addresses to link existing Omnifill accounts or reserve access for clients who still need to sign up.
Linked client orders appear in a partner view with filters for client, status, source, customer, destination, and order ID.
Partners can mark client orders as ready, routed, problem, or ignored and leave short notes so merchants keep a clear handoff history.
Dashboard Basics
The dashboard at dashboard.omnifill.net is where you manage sources, orders, products, exports, and account settings.
See a quick summary of activity and the overall shape of your account.
Connect sales channels, check connection status, and run syncs when you want fresh data.
Review imported orders, filter by source or status, and assign products where names still need cleanup.
Get a simple picture of order volume, revenue, fulfillment progress, and source mix over time.
Prepare fulfillment-ready files once the order table and product mapping look right.
Manage account details, subscription state, and account security settings like authenticator app 2FA.
API Quick Start
The dashboard covers most use cases. Use the API when you need to automate a step or connect Omnifill to another internal tool.
Most useful endpoints
| Path | What it does |
|---|---|
POST /api/auth/login | Starts a session, or returns mfaRequired when authenticator app 2FA is enabled. |
POST /api/auth/2fa/verify | Completes a 2FA login challenge and sets the p2s_token cookie. |
GET /api/orders | Returns your current normalized order list. |
POST /api/orders/import | Imports an array of orders from your own script or CSV workflow. |
GET /api/products | Returns products, aliases, and stock-related fields. |
POST /api/order-items/:id/bundle | Defines a source item as a bundle of multiple products. |
GET /api/analytics | Returns summary metrics and simple breakdowns. |
Simple login and fetch example
curl -X POST https://dashboard.omnifill.net/api/auth/login \
-H "Content-Type: application/json" \
-c cookies.txt \
-d '{ "identifier": "[email protected]", "password": "yourpassword" }'
# If login returns mfaRequired, verify the temporary challenge:
curl -X POST https://dashboard.omnifill.net/api/auth/2fa/verify \
-H "Content-Type: application/json" \
-c cookies.txt \
-d '{ "mfaToken": "challenge-token", "code": "123456" }'
curl https://dashboard.omnifill.net/api/orders -b cookies.txt
For imports, products, analytics, and status changes, the dashboard uses the same API underneath.
Import shape in plain language
When importing orders, the most important fields are source, source_id, product, qty, amount, and customer shipping details when you have them.
{
"orders": [
{
"source": "kickstarter",
"source_id": "backer-1001",
"date": "2026-05-02",
"firstName": "Mira",
"lastName": "Stone",
"email": "[email protected]",
"country": "US",
"product": "Deluxe board game",
"qty": 2,
"amount": "120.00",
"currency": "usd"
}
]
}
Use a stable source_id whenever possible. That is what lets Omnifill recognize the same order on future imports.
Status
The public status page lives at omnifill.net/status. It checks the main website, dashboard, API, and core third-party reachability on a regular schedule.
Public status endpoints
| Path | Purpose |
|---|---|
GET /api/status/current | Returns the latest recorded check for each monitored component. |
GET /api/status/history | Returns a simple day-by-day history view. |
GET /api/health | Lightweight health check for the API itself. |
FAQ
What is Omnifill, in plain terms?
It is a cleanup and handoff layer for order data. Omnifill gathers orders from different places, turns them into one consistent table, and helps you prepare them for shipping.
Who is it for?
It is built for indie creators, growing merchants, and small fulfillment teams that need one place to prepare orders for fulfillment without building custom internal tools.
Does Omnifill replace my store or payment processor?
No. Your store and payment tools still do their jobs. Omnifill sits in the middle and makes the order data easier to work with.
Can my warehouse or 3PL use Omnifill directly?
Yes. Warehouses and 3PLs can use the partner portal to register for partner access, connect client accounts, review linked client orders, and update fulfillment status.
Can I still use it if my warehouse only wants CSV files?
Yes. That is one of the main use cases. CSV export is the straightforward fallback when a direct integration is not the right fit.
What keeps duplicate orders from piling up?
Omnifill tracks the order source and source order ID together for exact repeats. It also checks new paid orders for likely accidental duplicates, then marks suspicious ones as Problem so they can be reviewed before export or auto-send.
What if some items should not ship?
You can mark products as not needing fulfillment. That keeps digital goods, tips, and similar items out of shipping exports.
Can I use Google Authenticator for 2FA?
Yes. Omnifill supports authenticator app 2FA with standard 6-digit TOTP codes. You can scan a QR code during setup, or use the manual setup key if you prefer to enter it yourself. You can use Google Authenticator, 1Password, Authy, Microsoft Authenticator, or another compatible app. Enabling 2FA on one account protects that account across the client dashboard, partner portal, and admin portal.
How much does it cost?
Omnifill Pro is $29/month or $290/year with a 14 day free trial for imports, syncs, routing tools, analytics, exports, and support. Enterprise is custom for teams that want help coordinating with their warehouse or 3PL.
How do I get support?
Email [email protected]. If the issue is about a specific order, include the Omnifill order ID if you have it.