> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Order browser reference

> The full lookup catalog behind the Aftersell Order Browser: CSV export columns, improvement-opportunity and ineligibility reasons, order-table filters, offer and funnel status definitions, and individual-order milestones.

This page is the complete lookup catalog behind the Aftersell [Order Browser](/aftersell/order_browser_overview): the CSV export columns, every improvement-opportunity and ineligibility reason, the order-table filters, all offer and funnel status definitions, and the individual-order milestones. For how to navigate and use the Order Browser, see the [Order Browser overview](/aftersell/order_browser_overview).

## CSV export columns

The Order Browser **Export** button downloads the current view as a CSV. The export respects any filters you have active, so filter first if you only want a subset of orders. The CSV includes the following columns, in this order: Order, Date, Eligibility, Sales channel, Total, Currency, PPU Funnels, PPU status, PPU offer 1, PPU offer 2, PPU offer 3, TYP Funnels, TYP status, Rokt Thanks status, Payment Gateway, and Payment Wallet. There is no column picker, so every export contains all sixteen. The Rokt Thanks status column shows the same values as the on-screen badge (`Accepted`, `Shown, not accepted`, `No offer shown`, `Not loaded`). If your store does not have Rokt Thanks enabled, the column is included but the cells are empty.

## Improvement opportunity reasons

The Improvement Opportunities panel highlights eligible orders where at least one offer didn't render because of funnel, offer, or product configuration gaps. It is split into two categories, each showing how many eligible orders were affected per reason. These aren't errors; they're flags that something can be fixed to improve coverage.

### Funnel & offer opportunities

<AccordionGroup>
  <Accordion title="No funnel triggered">
    **What it means:** An eligible order came through but no funnel matched its trigger conditions.

    **What to do:** Create a catch-all funnel using the **Show for All Customers** trigger and set it to the lowest priority so it fires whenever no other funnel matches.
  </Accordion>

  <Accordion title="Offer not set up">
    **What it means:** A funnel ran but one or more offer slots had no offer set up.

    **What to do:** Go to the funnel and add an offer to the empty slot.
  </Accordion>

  <Accordion title="Funnel not set up">
    **What it means:** A funnel matched the order but has no offers configured, so nothing could be shown.

    **What to do:** Open the funnel and add an offer to at least one slot.
  </Accordion>

  <Accordion title="No active funnels">
    **What it means:** Your store had no active funnel available to serve this order at all.

    **What to do:** Create a funnel and enable it.
  </Accordion>

  <Accordion title="All offers filtered out">
    **What it means:** A funnel was configured and matched the order, but every product across all offer slots was filtered out by your targeting or filter rules before anything could display.

    **What to do:** Review your funnel's product filters and targeting rules. Broaden the filter criteria or add fallback products to ensure at least one offer has something eligible to show.
  </Accordion>

  <Accordion title="All products filtered">
    **What it means:** An individual offer slot ran but every product in it was filtered out before the offer could display.

    **What to do:** Review the offer's filter settings and add more fallback products so there is always something eligible to show.
  </Accordion>

  <Accordion title="No product set">
    **What it means:** An offer slot exists but no product has been chosen for it.

    **What to do:** Open the funnel and pick a product for that slot.
  </Accordion>

  <Accordion title="No template set">
    **What it means:** An offer slot exists but no offer template has been chosen for it.

    **What to do:** Open the funnel and choose a template for that slot.
  </Accordion>

  <Accordion title="No recommendations">
    **What it means:** The offer uses automatic recommendations and the recommendation provider returned nothing for this order.

    **What to do:** Add a manually-selected fallback product to the offer so it always has something to show.
  </Accordion>

  <Accordion title="All out of stock">
    **What it means:** Every recommended product for the slot was out of stock at the time of the order.

    **What to do:** Restock, or add fallback products that are reliably in stock.
  </Accordion>

  <Accordion title="All rejected by location filter">
    **What it means:** Every candidate product was out of stock at the locations required by the offer's per-location inventory filter.

    **What to do:** Restock at those locations, or relax the inventory filter on the offer.
  </Accordion>

  <Accordion title="All in exclusion list">
    **What it means:** Every recommended product for the slot sits on your store's automatic-recommendation exclusion list.

    **What to do:** This list is not editable from the dashboard - contact support to have it reviewed.
  </Accordion>
</AccordionGroup>

<Note>
  Opportunities are tagged based on the customer's actual journey, not the funnel's configuration. For example, if a funnel has no offer set up in slot 3 but the customer declined slot 2 and never reached slot 3, it will not be flagged. The flag only appears if the customer's journey would have reached that step.

  You can click on any opportunity category to filter the order table to orders affected by that specific gap.
</Note>

### Product opportunities

<AccordionGroup>
  <Accordion title="Replacement failsafe triggered">
    **What it means:** The replacement upsell failsafe was triggered because the shop hit its replacement-failure threshold within the past 7 days. Replacement upsells are paused shop-wide until the rolling 7-day error count drops below the threshold or you reset the failsafe. Orders attributed to this reason never attempted a replacement.

    **What to do:** Go to **Settings → Replacement Upsells** to see the failsafe status card and your current rolling error count. Once you've resolved the underlying issue, click **Reset failsafe** to resume. If errors have stopped, the failsafe also clears automatically once the 7-day window passes. If you're unsure of the root cause, contact support before resetting.
  </Accordion>

  <Accordion title="No matching line item">
    **What it means:** No line item in the order matched the replacement target's variant ID, so the replacement was skipped.

    **What to do:** Review the replacement upsell configuration and confirm the target variant is present in the orders you expect it to match.
  </Accordion>

  <Accordion title="Multi-match line items">
    **What it means:** More than one line item matched the replacement target, so Aftersell could not tell which one to replace.

    **What to do:** Narrow the replacement target to a variant that appears at most once per order.
  </Accordion>

  <Accordion title="Line item discounted">
    **What it means:** The line item the replacement would have targeted already had a discount applied, and the offer's **Allow replacement if product has discount applied** toggle is off.

    **What to do:** Nothing, if you meant to protect discounted lines. If you do want these orders to convert, turn that toggle on in the offer's settings.
  </Accordion>

  <Accordion title="Subscription only">
    **What it means:** A recommended product is sold as a subscription only, but the customer's checkout already included a subscription, so it couldn't be added as a post-purchase upsell.

    **What to do:** Consider replacing subscription-only products in this offer with non-subscription alternatives, or move subscription offers to the Thank You Page where this restriction doesn't apply.
  </Accordion>

  <Accordion title="Out of stock">
    **What it means:** The offer product was out of stock when the order came through.

    **What to do:** Restock it, or add fallback products to the offer.
  </Accordion>

  <Accordion title="Product inactive">
    **What it means:** The offer product was unpublished or set to inactive in Shopify.

    **What to do:** Republish the product, or swap it for an active one.
  </Accordion>

  <Accordion title="Rejected by location filter">
    **What it means:** The product was out of stock at the locations required by the offer's per-location inventory filter.

    **What to do:** Restock at those locations, or relax the inventory filter on the offer.
  </Accordion>

  <Accordion title="Excluded by tag filter, metafield filter, product filter, or collection filter">
    **What it means:** The product was removed by one of the offer's exclusion filters - by product tag, by metafield, by product, or by collection.

    **What to do:** Open the offer's filter settings and check whether the rule is broader than you intended.
  </Accordion>

  <Accordion title="Excluded by collection / Most/least expensive excluded">
    **What it means:** The candidate product was removed by your store-level collection exclusion rules - the first when an automatic recommendation was excluded, the second when the most/least expensive placeholder picked an excluded product.

    **What to do:** These come from **Settings → Automatic upsells**, not from the funnel. Review the excluded collections there if the pool is coming out empty.
  </Accordion>
</AccordionGroup>

## Ineligibility reasons

The Ineligible Post-Purchase Orders panel shows orders that couldn't receive a post-purchase offer, broken down by the specific reason, with exact counts per reason.

<Note>
  Shopify does not tell Aftersell exactly why an order was skipped for post-purchase. The system identifies likely reasons based on Shopify's documented limitations. Because a single order can match multiple reasons, the individual reason counts do not add up to the total ineligible number. No percentages are shown for this section for that reason.

  You can click on any ineligibility reason to filter the order table to just those orders.
</Note>

<AccordionGroup>
  <Accordion title="Below minimum order price">
    **What it means:** Order value was under \$0.50 (e.g., fully discounted orders).

    **What to do:** Shopify restriction - no fix. Set up Thank You Page upsells to capture these orders.
  </Accordion>

  <Accordion title="Duties">
    **What it means:** Order included duties or landed costs.

    **What to do:** Shopify restriction - no fix. TYP upsells are not affected.
  </Accordion>

  <Accordion title="Gift card payment">
    **What it means:** Order was paid entirely with a gift card.

    **What to do:** Shopify restriction - no fix. TYP upsells are not affected.
  </Accordion>

  <Accordion title="Installment payment">
    **What it means:** Order used a BNPL method (Klarna, Afterpay, Shop Pay Installments).

    **What to do:** Shopify restriction - no fix. TYP upsells are not affected.
  </Accordion>

  <Accordion title="Local delivery">
    **What it means:** Order used a local delivery method not supported for post-purchase.

    **What to do:** Shopify restriction - no fix. TYP upsells are not affected.
  </Accordion>

  <Accordion title="Multiple currencies">
    **What it means:** Order was placed in a currency other than the store's default.

    **What to do:** Shopify restriction - no fix. TYP upsells support multi-currency and will show to these customers.
  </Accordion>

  <Accordion title="No destination country code">
    **What it means:** Shipping address was missing a country code.

    **What to do:** Typically a data issue on the order. No fix available for past orders.
  </Accordion>

  <Accordion title="Non credit card payment">
    **What it means:** Order used a non-credit-card payment method not supported by Shopify.

    **What to do:** Shopify restriction - no fix. TYP upsells are not affected.
  </Accordion>

  <Accordion title="Payment gateway">
    **What it means:** Order used a third-party payment gateway that doesn't support post-purchase.

    **What to do:** Check if your gateway supports Shopify's post-purchase API. See Payment Methods for the full supported gateway list.
  </Accordion>

  <Accordion title="Payment wallet">
    **What it means:** Order used a digital wallet (Apple Pay, Google Pay, PayPal).

    **What to do:** Shopify restriction - no fix. Set up Thank You Page upsells to capture wallet orders - TYP is not affected.
  </Accordion>

  <Accordion title="Shopify skipped">
    **What it means:** Shopify bypassed post-purchase for this order. Aftersell has no visibility into why - the error code shown in the order detail is `no_activity`.

    **What to do:** Contact Shopify support directly. Aftersell cannot investigate or resolve this - it is entirely within Shopify's platform.
  </Accordion>

  <Accordion title="Unsupported sales channel">
    **What it means:** Order came through a channel that doesn't support post-purchase (e.g., POS or a third-party marketplace). Post-purchase offers are supported on orders placed through the Online Store, a supported headless or custom sales channel, or a draft-order payment link.

    **What to do:** No fix available. These orders bypass Shopify's standard checkout entirely, so neither post-purchase nor Thank You Page upsells can reach them.
  </Accordion>
</AccordionGroup>

Payment wallet and Unsupported sales channel tend to be the largest contributors for most stores. For payment method restrictions, [Thank You Page upsells](/aftersell/how_can_i_set_up_and_customize_thank_you_page_upsells_in_aftersell) are the best way to recover that traffic since TYP is not subject to Shopify's post-purchase restrictions. For a full breakdown of supported and unsupported payment methods, see [Payment Methods](/aftersell/payment_methods).

## Order table filters

Click **Add filter +** to filter the order table. Multiple filters can be combined; click **Clear all** to remove active filters.

| Filter | What it does |
| - | - |
| Post-purchase status | Filter by the overall post-purchase outcome, grouped into four buckets: **Not eligible**, **No offer shown**, **Shown, not accepted**, and **Accepted**. Use this as a quick top-level filter to find all orders where a customer accepted, declined, or never saw an offer. |
| Post-purchase eligibility | Filter by whether an order was eligible or ineligible |
| PPU Funnel | Filter by which post-purchase upsell funnel was shown |
| Post-purchase offer 1 / 2 / 3 | Filter by the status of each offer slot |
| TYP Funnel | Filter by which Thank You Page funnel was shown |
| Thank You page status | Filter by the outcome on the Thank You Page |
| Payment status | Filter by payment method or status |
| Post-purchase shown | Filter by whether the post-purchase page was shown |
| Thank You page shown | Filter by whether the Thank You Page was shown |
| Funnel opportunities | Filter by orders with funnel-level improvement opportunities |
| Product opportunities | Filter by orders with product-level improvement opportunities |
| Offer opportunities | Filter by orders with offer-level improvement opportunities |
| Ineligibility reason | Filter by the specific reason an order was ineligible |

## Offer status definitions

### PPU offer statuses

Columns PPU offer 1, 2, 3.

| Status | What it means |
| - | - |
| **Accepted** | The customer accepted the offer. The item was added to their order. |
| **Declined** | The customer actively declined the offer by clicking the decline button. |
| **No interaction** | The offer was shown, but the customer closed the tab or navigated away without clicking Accept or Decline. The offer was seen, just not acted on. |
| **Customer skipped** | The customer skipped the post-purchase page entirely, or closed their browser before the offer loaded. The offer never had a chance to display. |
| **Timer expired** | The post-purchase session timer ran out before the customer interacted with the offer. |
| **No funnel triggered** | No funnel's trigger conditions matched this order, so no offer was selected for this slot. |
| **No active funnels** | There were no active (enabled) funnels available to serve an offer for this order. |
| **Not configured** | An offer slot exists in the funnel but no offer has been set up in that slot yet. |
| **All offers filtered out** | A funnel was configured and matched the order, but every product across all offer slots was filtered out by your targeting or filter rules before anything could display. |
| **Offer type not supported** | The offer slot's configured offer type isn't supported for this order or context. |
| **Unsupported shipping country** | The order's shipping country is not on your store's allowed post-purchase countries list. This is a store-level setting, not funnel targeting. |
| **Products excluded** | The offer has products configured, but all of them are being excluded by your offer settings (e.g., hide if already purchased, out of stock, unpublished). Nothing was available to show. |
| **Products unavailable** | None of the funnel's configured products were available to recommend for this order. |
| **No products recommended** | The offer's recommendation strategy returned no eligible products to show. |
| **Recommendations out of stock** | Every product returned by the offer's recommendation strategy was out of stock. |
| **No stock at location** | Every candidate product for this offer was out of stock at the locations required by the offer's per-location inventory filter. Restock at those locations, or adjust the inventory filter on the offer strategy. |
| **Technical issue** | An unexpected error prevented the offer from loading correctly (for example, a funnel or customer data lookup failed). |
| **Ineligible** | Shopify skipped the post-purchase page for this order due to a platform-level eligibility rule. This is a Shopify restriction, not an Aftersell configuration issue. |
| **Subscription upgrade issue** | The customer accepted the offer and the item was added to their order, but the downstream subscription upgrade at your subscription provider (Recharge, Loop, or Skio) failed. Open the order to see the specific cause and what to do to fix it. |

### TYP widget statuses

The TYP widget column. The Post Purchase funnel and Thank You Page funnel for an order can be the **same or different.**

| Status | What it means |
| - | - |
| **Accepted** | The customer accepted the offer on the Thank You Page. |
| **Declined** | The customer declined the offer. |
| **No interaction** | The offer was shown but the customer didn't interact with it, and the timer (if one exists) didn't trigger. |
| **Timer expired** | The offer timer expired before the customer interacted. |
| **Pending conversion** | The customer accepted the offer but the conversion is still being processed. |
| **No activity** | The customer did not visit the Thank You Page. |
| **No products found** | No products matched the offer's placement configuration, so nothing could be shown. |
| **Products filtered out** | The offer's configuration filtered out all of its products, so nothing was displayed. |
| **Already in order** | The widget is in "Modify original order" mode and every configured variant is already in the customer's order. Shopify does not allow duplicate variants in an order edit, so the upsell was hidden. Switch order handling to **Create new draft order** in the widget's [order handling settings](/aftersell/thank_you_page_extensions_overview#order-handling) to re-offer products regardless of what's already in the original order. |
| **Order can't be modified** | The widget is in "Modify original order" mode and this order could not be edited - for example it was archived, partially paid, past the window during which Shopify allows an order edit, or its shipping cannot accept the offered products. Switch order handling to **Create new draft order** to keep offering products on these orders. |
| **Wrong page** | The offer is configured to show on a different page. |
| **Already shown** | The offer had already been shown to this customer. |
| **Technical issue** | A technical error occurred while loading the offer, often due to server or fetch errors outside Aftersell's control. If this happens frequently, contact support. |

### Rokt Thanks statuses

The Rokt Thanks column, only visible if your store has Rokt Thanks enabled.

| Status | What it means |
| - | - |
| **Accepted** | The customer engaged with the Rokt Thanks offer (positive engagement recorded). |
| **Shown, not accepted** | The Rokt Thanks placement loaded and was shown to the customer, but they did not engage with it. |
| **No offer shown** | No Rokt Thanks offer was served for this order. |
| **Not loaded** | The Rokt Thanks placement did not load for this order. |

### Funnel column statuses

The PPU Funnel and TYP Funnel columns.

| Status | What it means |
| - | - |
| **No funnel triggered** | No funnel matched this order's trigger conditions. The order was eligible but no funnel fired. |
| **Funnel** | A funnel matched the order but showed no offer - either no offers were configured, every configured offer was skipped, or the order had no line items with product IDs. Open the funnel and add an offer to at least one slot. |
| **All offers filtered out** | A funnel was configured and matched the order, but all products across every offer slot were filtered out by your targeting or filter rules. Review your funnel's product filters and targeting to ensure at least one offer has eligible products. |
| **No active funnels** | Your store had no active funnel available to serve this order. |
| **Ineligible** | Shopify skipped the post-purchase page for this order under a platform-level eligibility rule. |
| **Unsupported shipping country** | The order's shipping country is not on your store's allowed post-purchase countries list - a store-level setting, not funnel targeting. |
| **Technical issue** | An error prevented the funnel from being resolved for this order. |

<Note>
  The badge in the Funnel column reads simply **Funnel**. The longer wording, *Funnel not set up*, is what the same underlying reason is called in the Improvement Opportunities panel.
</Note>

<Tip>
  Statuses that are frequently confused:

  * **Customer skipped** = the offer never loaded (the customer left before the page could show)
  * **No interaction** = the offer loaded and was visible, but the customer didn't click anything
  * **Timer expired** = the session timed out while the offer was on screen
  * **Ineligible** = Shopify blocked post-purchase from running at all for this order
  * **No funnel triggered** = the order was eligible but no funnel matched its trigger rules
  * **Funnel** (Funnel column) / **Funnel not set up** (Improvement Opportunities) = a funnel matched but showed no offer
  * **All offers filtered out** = a funnel matched and had offers configured, but every product was filtered out by targeting or filter rules
  * **Subscription upgrade issue** = the offer was accepted and the item added to the order, but the subscription upgrade at your provider failed - open the order for the specific cause and fix
</Tip>

## Individual order milestones

### Post Purchase milestones

The Post Purchase (PPU) tab shows a step-by-step milestone timeline of the post-purchase experience for an order.

| Milestone | What it means |
| - | - |
| **Funnel triggered** | The funnel fired for this order. Shows the funnel name (click to edit triggers) and the trigger rule that selected it. |
| **Offer shown** | An offer was displayed. Shows the products that were presented, with thumbnails. |
| **Offer accepted** | The customer accepted the offer, including revenue amount. If the offer included a subscription upgrade and the upgrade failed at your subscription provider, a red banner appears beneath this milestone showing the specific cause and what to do to fix it. |
| **Offer declined** | The customer declined the offer. |
| **Ineligible** | Shopify blocked the post-purchase page for this order. Shows the specific Shopify eligibility reason. |
| **Technical issue** | The post-purchase experience failed to load - usually a server or fetch error outside Aftersell's control. (PPU never shows a *Not loaded* status; that label belongs to Rokt Thanks.) |
| **Subscription upgrade failed** | The subscription upgrade at your provider failed after the offer was accepted. This row shows the specific failure cause and remediation steps. |

If products were excluded from an offer, a **Products excluded** warning appears beneath the milestone with the specific reason:

<AccordionGroup>
  <Accordion title="Ineligible">
    **What caused it:** Shopify blocked the order at a platform level.
  </Accordion>

  <Accordion title="No funnel triggered">
    **What caused it:** No funnel matched this order's trigger conditions.
  </Accordion>

  <Accordion title="All products filtered">
    **What caused it:** Every product in the offer was filtered out by your settings.
  </Accordion>

  <Accordion title="Placement not configured">
    **What caused it:** The offer slot exists but no offer has been set up.
  </Accordion>

  <Accordion title="Product already in order">
    **What caused it:** The offer product was already in the customer's original order.
  </Accordion>

  <Accordion title="Product OOS">
    **What caused it:** The offer product was out of stock at the time of the order.
  </Accordion>

  <Accordion title="Product Inactive">
    **What caused it:** The offer product was unpublished or inactive in Shopify.
  </Accordion>

  <Accordion title="Out of stock at required locations">
    **What caused it:** The offer product was out of stock at the locations required by the offer's per-location inventory filter. Restock at those locations, or adjust the filter on the offer strategy.
  </Accordion>

  <Accordion title="Excluded by tag filter">
    **What caused it:** The offer product was excluded by a product-tag filter on the offer strategy. Review the filter or widen the product pool in your offer strategy.
  </Accordion>

  <Accordion title="Excluded by metafield filter">
    **What caused it:** The offer product was excluded by a product-metafield filter on the offer strategy. Review the filter or widen the product pool in your offer strategy.
  </Accordion>

  <Accordion title="Excluded by product filter">
    **What caused it:** The offer product was excluded by a product filter on the offer strategy. Review the filter or widen the product pool in your offer strategy.
  </Accordion>

  <Accordion title="Timer expired">
    **What caused it:** The post-purchase session timer ran out before the offer had a chance to load.
  </Accordion>
</AccordionGroup>

<Note>
  If you placed a test order and the PPU timeline shows no events or incomplete data, it may be because the order ID wasn't available when the earliest events fired. This resolves automatically as the order completes.
</Note>

### Thank You Page milestones

The Thank You Page (TYP) tab shows the same milestone structure as the PPU tab, filtered to Thank You Page events. A **Technical issue** badge means there was a problem loading the TYP experience for this order.
