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

> ## Agent Instructions
> Ready for Commerce is an ecosystem that currently contains two products, PIM and Repricer, standing on one shared foundation: one identity, one organization, one team, one bill. Do not call it a platform with features, and never hint at an unreleased product.
> PIM connects to Shopify, Amazon, Square, Google Merchant Center and BigCommerce. Repricer connects to Amazon, Walmart, Shopify, BigCommerce, eBay and Square. The two products do not share one list, and each integration is authorized separately inside each product. The roster grows on purpose, so describe what the product does and let a table carry which integrations do it today, instead of counting them or writing that only one does something.
> Integration is the word this product uses, and it is the default in the documentation: the connection, the account, the Integrations screen, the per-account settings and the sync state are all integrations. Channel is reserved for the narrow sense of a destination where a listing lives, as in a product being live on a channel or archived on the channel.
> Newegg is not a supported channel. Do not describe it.
> On Amazon, PIM manages the offer only: price, availability and condition. It does not publish listing content such as titles, descriptions, images or specifications.
> Sign-in is passwordless: a single-use code emailed to the user, or Google. There are no passwords anywhere, so never describe a password, a sign-up with a password, or an email confirmation link.
> There is no public API for customers and no customer-facing webhooks. There is no organization-wide activity feed and no audit export, but the PIM does keep version history on products, brands, categories, tags and specifications, with who changed what and a restore, so never write that changes are not recorded or that an edit cannot be undone. Do not describe capabilities that are not documented here.
> Never write that the products have no AI, and never write that anything is AI-powered. Both are wrong. The PIM's image Optimizer runs AI-backed transforms the seller starts on purpose: Upscale, Remove background, and the region selection behind Refine. The Repricer reads competitor prices off web pages on the server. No control, badge or tooltip in either product names AI, and the seller never writes a prompt, so describe what the buttons do in the app's own words instead of reaching for the word.
> A PIM product, brand, category or variant can be switched off per connected integration account. Hover the channel badge and the switch is beside the account name in the card that opens. It carries no visible caption, so never call it the Sync switch: Sync is only its accessible name. On a variant-grained provider, Amazon today, the switch moves into the variant editor. On a product it asks whether to delete it from the channel, archive it there, or leave it live. Disabling stops publishing, not reading. There is still no per-field sync toggle.
> The PIM's image Optimizer replaced a feature called Squarify, which no longer exists. It resizes to an aspect ratio or to exact dimensions, removes backgrounds, upscales, trims the transparent margin around a cutout and re-centers it, pads, fills and re-encodes, and it always publishes a new asset instead of changing the original. Nothing crops into the picture: the subject is always contained whole.
> The PIM has no repricing engine and never reacts to a competitor's price. It does build the price it publishes to each integration account from the seller's own fields, configured in that account's settings, so do not write that the PIM has no pricing rules.
> Neither product has an in-app notification center, bell or inbox. Notifications are delivered by email only.
> Billing is per organization and per product, and only the organization owner can see or change it. Team members are free and uncounted, so never describe seats or per-user pricing.
> The seller never picks a plan. Each product has twelve price tiers assigned automatically from usage: the PIM from catalog product count, which includes drafts and archived products, and the Repricer from trailing 30-day sales. Nothing is feature-gated by plan and exceeding a tier never blocks work, so never write that a feature requires a higher plan.
> A subscription that is past due or paused makes the product read-only, which stops repricing and blocks edits without deleting data. Only a canceled subscription locks the seller out. Nothing is ever charged without a payment method on file.
> Pages containing the text 'This page has not been written yet', or its Spanish equivalent 'Esta página todavía no está escrita', are placeholders. Do not treat their headings as documented behavior.

# Listing and repricing status

> A listing can be live on the channel and still not be repricing, and the status columns are how you tell which one is true and what is stopping it.

There are two different questions you can ask about a listing, and people merge them into one all the time. One is whether the channel is selling this item. The other is whether the Repricer is pricing it. The two answers are separate. An item that is live and for sale can stay at the same price for weeks, because the Repricer is waiting on a number you never filled in.

Three columns give you those answers. `Listing Status` is what the channel says about your item. `Repricing Status` is what the Repricer is doing with your listing. `Buy Box Status` says whether your offer has the featured position, on the channels that have one.

You get to all three from `Listings` in the sidebar down the left. They are in the middle of [the listings table](/repricer/listings), so scroll sideways if you cannot see them. The one worth learning is `Repricing Status`. Hover a cell that reads `Not working` and you get a panel listing everything between that listing and a new price.

## Before you start

### What your role lets you do

Reading these columns is open to everybody. What changes with your role is whether you can act on what they tell you.

| What you want to do | The lowest role that can |
| --- | --- |
| Read all three columns, and the panel behind `Not working` | `Analyst` |
| Fill in a cost or a price limit that your listing is waiting on | `Editor` |
| Pause repricing, resume it, or change the strategy | `Manager` |

Nothing is hidden below your role. A number you cannot change is still there and still readable. Roles are set in [team, roles and permissions](/team#what-each-repricer-role-can-do).

## How to find out why a listing is not repricing

<Steps>
  <Step title="Open the listings table">
    Click `Listings` in the sidebar down the left. The table opens on a saved view called `Active Connections`, so you are looking at listings on accounts that are still connected.
  </Step>

  <Step title="Find your listing">
    Click `Search` in the toolbar directly above the rows and type a SKU or part of the product title.
  </Step>

  <Step title="Read the two status columns together">
    `Listing Status` and `Repricing Status` are next to each other, about halfway across the table. Read the first one first, because a listing the channel is not selling is never repriced whatever the second one says.
  </Step>

  <Step title="Hover the Repricing Status cell">
    A panel headed `Repricing Issues` opens over your row, with a line for each thing the Repricer is waiting on. On a touch screen your first tap opens the panel and does not open the listing.
  </Step>

  <Step title="Fix the first line on the list">
    Each line names what is missing and where you put it. The list is in order, with the ones that stop repricing before the ones that only change the result.
  </Step>
</Steps>

That is the whole check. Fill in the cost, the price limit or the strategy that panel named. Your listing goes back in line to be priced right away, so you see the status correct itself with no reload.

Everything below goes through the three columns one at a time, then through every line that panel can show you. You do not need any of it to read one listing.

## Every status in detail

The three columns answer three separate questions, and none of them follows from another. Your listing can be `Active` and `Not working`. It can be `Winning` the Buy Box and `Paused`. Read them as three, and read `Listing Status` first.

### The Listing Status column

`Listing Status` is one of the columns in your listings table, and it is the channel's own answer, copied across each time the Repricer syncs with your account. You cannot set it here. Change the item on the channel and the next sync brings the new value over.

| Status | What it means |
| --- | --- |
| `Active` | The channel is selling your item |
| `Inactive` | The channel is not selling it right now |
| `Error` | The channel reports a problem with your listing that needs attention |

Hover a cell and `Inactive` and `Error` each give you one line of explanation. `Active` gives you nothing.

**Only an `Active` listing is ever repriced.** The Repricer skips the other two completely. It does not read your price, it does not read your competitors, and it does not calculate a new price. So an item you pulled off sale for a week is not a repricing problem. For both of the other two, your fix is on the channel and not here.

An `Error` comes from the channel too, so there is nothing for you to correct on this side. Open the item with the `Product ID` link on your row and fix what the channel is complaining about. The next sync clears it.

<Accordion title="What makes a listing inactive on each integration">
  Each channel has its own words for this, and the Repricer sorts them into the three values above.

  | Integration | What comes across as `Inactive` |
  | --- | --- |
  | Amazon | An offer Amazon lists as inactive, and one it lists as incomplete because required data is missing |
  | Walmart | Anything that is not both published and in its active lifecycle, so a retired or archived item too |
  | Shopify | A product saved as a draft, and an archived product |
  | BigCommerce | A disabled product. Available and preorder products are both `Active` |
  | eBay | An offer in any state except active |
  | Square | Nothing. Square items come across as `Active` |
</Accordion>

### The Repricing Status column

`Repricing Status` is the column right next to `Listing Status` in your listings table. It is the Repricer's own answer about the same listing, and it is the one that moves. It has four values.

| Status | What it means |
| --- | --- |
| `Working` | The Repricer has everything it needs and prices your listing |
| `Manual` | You put a number in `Manual Price` on the `Pricing` tab, so the Repricer publishes that and skips your strategy |
| `Paused` | You turned repricing off for this listing |
| `Not working` | The Repricer cannot price it, and hovering the cell says why |

Hover a cell and `Manual` and `Paused` each give you one line. `Working` gives you nothing. `Not working` gives you the whole `Repricing Issues` panel.

**Two of the four are yours and two are the Repricer's.** You set `Manual` by typing into `Manual Price` on the `Pricing` tab of your listing. You set `Paused` with the `Pause Repricing` switch on that same tab, or with `Pause Repricing` in the bulk bar. Both change the moment you act, with no run to wait for. Clear your `Manual Price` field and the status goes back to `Working` the same way.

`Working` and `Not working` are the other side. The Repricer writes one of those two every time it looks at your listing, and it never writes over a `Manual` or a `Paused` you set. That is why your paused listing with no cost still reads `Paused`. Your choice is the answer, so the Repricer leaves it alone.

**`Working` means the Repricer has what it needs, not that your price moved.** A listing already at the price its strategy wants reads `Working` for weeks. To see whether a new price is waiting to go out, read `Target` on your row, which is empty when the channel price is already right.

<Note>
  `Repricing Status` can read `Working` on a listing nothing is happening to. Once `Listing Status` leaves `Active`, the Repricer stops reading it, so the column keeps the last value it had.
</Note>

### The Buy Box Status column

`Buy Box Status` is further right in your listings table, past the price columns. On a marketplace, several sellers offer the same item as you, and the channel picks one offer to feature. This column is where you find out whether that offer is yours.

| Status | What it means |
| --- | --- |
| `Winning` | Your offer has the Buy Box |
| `Not Winning` | Somebody else's offer has it |
| `Suppressed` | Nobody has it. The channel took the Buy Box off your item |
| Empty | Nothing has been read about the Buy Box for your listing |

`Suppressed` is about the item and not about your price. Competing offers are still there, and the channel has decided none of them gets the featured position. There is nothing on your listing to fix, so what happens next comes from your strategy instead.

An empty cell is normal on a store of your own. A store you run has one seller, which is you, so there is no featured offer to win and this column has nothing to report. On a marketplace an empty cell means the Repricer has not read the market for your item yet.

<Accordion title="Which integrations report a Buy Box, and what you get on the ones that do not">
  | Integration | `Buy Box Status` |
  | --- | --- |
  | Amazon | Filled in, and `Buy Box Price` beside it |
  | Walmart | Filled in, and `Buy Box Price` beside it |
  | Shopify, BigCommerce, eBay and Square | Empty on every row |

  On a store of your own, the question that replaces it is how your price compares with the competitors you track. You read that on the `Competitors` tab of your listing, and [competitors](/repricer/listings/competitors#the-columns-in-the-offers-table) covers what goes on it.
</Accordion>

### Reading the list of repricing issues

Hover a `Repricing Status` cell in your listings table and a panel headed `Repricing Issues` opens over the row. You get it on any cell reading `Not working`, and on any listing whose `Listing Status` is not `Active`, whatever the label on the cell happens to say. The same panel is on the `Repricing` badge at the top of the listing dialog, which opens over the table, so it follows you into the listing.

Each line has a short label and a sentence telling you what to do about it. When you get more than one line they are numbered, and the numbers run in order of how much they matter. The ones that stop repricing come first. The ones that only change what your strategy does come after.

The panel goes through the whole listing and not only the first thing that went wrong. The Repricer stops as soon as it hits something it cannot get past, and the panel keeps going and shows you everything. So a listing with no strategy and no cost tells you both, and you fix both in one visit.

### Every repricing issue, and what it needs from you

Below is every line the `Repricing Issues` panel can show you, with the place you go to clear it.

| Line | What it means | What to do |
| --- | --- | --- |
| `Listing is inactive` | The channel is not selling your item, so the Repricer skips it | Put the item back on sale on the channel |
| `No strategy assigned` | Your listing has no strategy to price it | Pick one in the `Strategy` column, or on the `Pricing` tab of your listing |
| `Missing cost price` | Your strategy builds its floor out of your cost, and the cost is empty | Type it into the `Cost` column, or `Unit Cost` on the `Pricing` tab |
| `Missing min price` | Your strategy takes its floor from you, and there is no minimum on your listing | Type it into the `Min` column, or `Minimum Price` on the `Pricing` tab |
| `Missing max price` | Your strategy falls back to your highest price when it has nothing to price against, and there is no highest price | Type it into the `Max` column, or give your strategy a default maximum |
| `Buy Box suppressed` | The channel took the Buy Box off your item, so there is no Buy Box price to work from | Nothing on the listing. Change what your strategy does instead |
| `No market data` | Nothing has been read yet about what anyone else is charging | Wait. This one usually clears itself |
| `Channel region disabled` | The switch on that account's region is off, so nothing on it is priced | Turn it back on under `Integrations` in the sidebar |
| `Account error` | Your account needs connecting again before anything on it can be priced | Click `Reconnect` on that account under `Integrations` in the sidebar |
| `Pending evaluation` | The Repricer has not looked at your listing yet | Wait for the first run to get to it |

**Three of them only appear when your strategy asks for that number.** `Missing cost price`, `Missing min price` and `Missing max price` each come from a strategy setting. So the same empty `Min` column is a problem on one of your listings and no problem at all on the next. A strategy that builds the floor out of your cost wants the cost and never wants a minimum. One that takes the floor from you does the opposite. [Price floor](/repricer/strategies/price-floor) covers which kind yours is.

**Two of them are usually a note and not a blocker.** `Buy Box suppressed` and `No market data` both say the same thing in different words: the Repricer has nothing to price against. What happens then is a strategy setting called `Fallback behavior`, on the `Safety Nets` step of the strategy. Told to hold the current price, your listing goes to `Not working` and waits. Told to use your minimum or your maximum price instead, it keeps repricing and the line is only there for information. [Safety nets](/repricer/strategies/safety-nets) is where you choose.

`Pending evaluation` is what a brand new listing shows. Every listing arrives reading `Not working` before the Repricer has seen it once, so an account you connected this morning has a whole column of them. Nothing is wrong and there is nothing for you to do.

`Channel region disabled` and `Account error` are the two that are never about one listing. Both come from the account behind it, so you get them on every row on that account at once. The [connected accounts](/repricer/integrations/accounts) page covers the switch and the reconnect.

### What the status columns cannot tell you

| You cannot | Do this instead |
| --- | --- |
| Find out why the channel marked your item `Inactive` or `Error` | Open the item with the `Product ID` link on your row |
| Set `Listing Status` from here | Change the item on the channel |
| See when a status last changed | Read `Last Repriced` on your row for the last price decision |
| Get an email when a listing stops repricing | Read the `Not Working` card on your [dashboard](/repricer/dashboard) |
| Fix anything from the `Repricing Issues` panel itself | Go to the column or the tab that line names |
| See every listing that is not repricing | Pick the ready-made `Repricing Not Working` view from the control in the header bar |

## When a status changes

### What each column is updated by

`Listing Status` changes when the Repricer syncs with your account and the channel has something new to say. `Buy Box Status` changes when new market data comes in for your item. You set neither of them.

`Repricing Status` is the one that answers to you. It changes the instant you set or clear a manual price, the instant you pause or resume, and every time the Repricer looks at your listing after that.

### Putting a listing back in line

The Repricer works through your listings on a schedule of its own. Four things send one straight back to be looked at, instead of leaving it until the next run:

- You change its cost, its minimum, its maximum, its MAP, its MSRP or its manual price.
- You give it a different strategy.
- Somebody changes a setting on the strategy it is already on.
- New competitor or Buy Box data comes in for your item.

So a status you just fixed corrects itself while you are looking at it, and your row updates with no reload. If you changed something else, such as turning a region back on, the status waits for the next run.

## When something goes wrong

### A listing reads Working and the price never moves

| Why | What to do |
| --- | --- |
| The channel price is already the price your strategy wants | Read `Target` on your row. An empty `Target` means there is nothing to send |
| `Listing Status` is `Inactive` or `Error`, so nothing about your listing is being read | Hover `Repricing Status` and read the first line of the panel |
| Your strategy only prices at certain times, and now is not one of them | Open your strategy and check its schedule |

### A status is not the one you set

| What you see | Why |
| --- | --- |
| You resumed repricing and it went back to `Not working` | Resuming clears the status and fixes nothing else. The next run finds the same missing number and sets it again, so fix what the panel names |
| You cleared `Manual Price` and it read `Working`, then changed | Clearing that field sets `Working` at once. The next run is what decides for real |
| Every listing on one account turned `Not working` together | Hover any one of them. `Channel region disabled` and `Account error` cover a whole account |
| A paused listing shows nothing wrong with it | The Repricer never looks at a paused listing, so it has nothing new to report. Resume it and the next run gives you a real status |

## Where to go next

<Columns cols={2}>
  <Card title="Pricing on a listing" icon="tag" href="/repricer/listings/pricing">
    Where you fill in the cost and the price limits most of these lines are asking for.
  </Card>

  <Card title="Safety nets" icon="shield" href="/repricer/strategies/safety-nets">
    The `Fallback behavior` setting that decides what a suppressed Buy Box does to your listing.
  </Card>

  <Card title="Bulk actions" icon="list-checks" href="/repricer/bulk-actions">
    Pausing and resuming repricing across many listings at once.
  </Card>

  <Card title="Your dashboard" icon="gauge" href="/repricer/dashboard">
    The same statuses counted across every listing you have, with a way into each list.
  </Card>
</Columns>
