Skip to main content

Per-Fulfillment Revenue Recognition for Shopify

Bookkeep now offers Per-Fulfillment Revenue Recognition for Shopify, giving merchants greater flexibility in how and when revenue is recognized.

This new feature allows revenue to be recognized as individual fulfillments are completed, rather than waiting for the entire order to reach a Fulfilled status.

How It Works

The Ecommerce Journal Entry Mapping

For entities that recognize revenue upon fulfillment, the Gross Sales, Discounts, Returns, Gift Cards Issued, and Shipping Income lines in this journal entry should be mapped to a deferred revenue account. This is because the Ecommerce journal entry works together with the Fulfillment Revenue Recognition entry (described below) to ensure revenue is recognized correctly.

Additionally, the same deferred revenue account used in the Fulfillment Revenue Recognition entry should also be used in the Ecommerce entry to maintain consistency.

Previous (Order-Based) Method

Under the traditional order-based model:

  • Revenue is not recognized until the entire order reaches a status of Fulfilled

  • Partial shipments do not trigger partial revenue recognition

  • All line items are recognized together once the order is fully fulfilled

This approach works well for businesses that only want revenue recognized once the full order lifecycle is complete.

New: Per-Fulfillment Revenue Recognition

With this new feature enabled:

  • Revenue is recognized each time a fulfillment is completed

  • Only the line items included in that specific fulfillment are recognized

  • Revenue is recorded incrementally as shipments occur

Example:

If an order contains 5 items and:

  • 2 items are fulfilled today

  • 3 items are fulfilled next week

Revenue will be recognized in two stages, aligned with the actual fulfillment timing.

Handling Cancellations and Returns

Under this new flow:

  • If a fulfillment that was previously recognized is cancelled

  • Or if fulfilled items are returned

The reversal occurs independently of the overall order’s fulfillment status.

This ensures revenue and reversals are accurately aligned with operational activity — not just order status.

Non-Physical Items

Items not tied to a specific fulfillment (such as digital goods or shipping income) will continue to be recognized when the order reaches Fulfilled status.

This maintains appropriate handling for products that do not follow a physical fulfillment workflow.

Gift Card Handling Across Templates

When a gift card is attached to an order, it’s captured on the Gift Cards Issued line within the eCommerce Sales Summary journal entry. If you’re also using the Fulfillment Revenue Recognition journal entry, the same gift card will be captured again when the order is fulfilled—just like any other line item.

This setup allows you to map the Gift Cards Issued line on the eCommerce journal entry to Deferred Revenue, since the liability is recognized upon fulfillment, when the gift card is actually delivered to the customer.

Important Note on Historical Data

Bookkeep does not advise or allow running historical data for the fulfillment-based revenue recognition journal entry.

This limitation is due to constraints in Shopify’s data model that make historical fulfillment recognition unreliable:

  • Shopify does not expose historical timestamps for when an order first reached a fulfilled status.

  • Shopify also does not provide timestamps or events indicating when fulfillment status reverts back to unfulfilled or partially fulfilled due to order edits or cancelled fulfillments.

Because fulfillment status can change retroactively — and Shopify does not provide a complete historical audit trail of those changes — attempting to backfill fulfillment-based revenue recognition can result in inaccurate or misleading accounting data.

For this reason, fulfillment-based revenue recognition in Bookkeep is designed to run prospectively only, beginning from the point it is enabled, ensuring accuracy and consistency going forward.

How to Enable Per-Fulfillment Recognition

This feature is managed from the My Apps tab on the Connections page.

  1. Locate the Shopify fulfillment revenue recognition journal entry.

  2. Click Map on the right. This will open a modal window.

  3. At the top of the modal, you’ll see Recognition Method with two options:

    • Order Level – Recognizes all revenue once the order reaches Fulfilled status.

    • Fulfillment Level – Recognizes revenue as each fulfillment is created. Any remaining items not tied to a fulfillment are recognized when the order reaches Fulfilled status.

Select the method that best aligns with your accounting preferences and save your changes.

Why Use Per-Fulfillment Recognition?

Per-fulfillment recognition may be beneficial if:

  • You ship orders in multiple batches

  • You operate across multiple warehouses

  • You want revenue timing aligned with shipment activity

  • You need more precise matching of revenue and cost of goods sold

  • You want operational and financial reporting aligned in real time

Flexible Revenue Recognition for Growing Shopify Businesses

Bookkeep’s new per-fulfillment recognition option gives Shopify merchants the flexibility to:

  • Recognize revenue as it is earned

  • Improve financial accuracy for partial shipments

  • Maintain proper handling of cancellations and returns

  • Adapt revenue workflows without requiring custom development

By choosing the recognition method that best fits your business, you can ensure your accounting reflects how your operations truly function.