> ## 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.

# Search

> Search is one box in the Repricer header that finds a listing, a strategy or a connected account and takes you to the screen that thing is on.

Search is one box that looks through three things at once and takes you to the one you name. You type a few letters, and a grouped list comes back: your listings first, then your strategies, then the accounts you have connected. Click a row and it opens.

Most people use search when they know what a listing is called, or know its `SKU`, and scrolling the listings table would take longer than typing. It is also the quickest way to get to another part of the Repricer, because the same list gives you a set of screens to jump to alongside your own records. Nothing you do here changes a price, a strategy or a connection, so there is nothing to break by typing into it.

You open search from `Search`, the button in the header to the right of the page title, and that button is on every screen. Search then fills the page: a box replaces the page title, and your results fill everything under it.

## Before you start

Everyone in your organization searches the same listings, strategies and accounts. Your role does not hide any of them from you, and it does not change what matches. What it changes is where a result can take you next.

Two destinations are for the `Admin` role only. `Integrations` and `Billing` are in an Admin's list of places to jump to, and in nobody else's.

A result for one of your connected accounts works differently. Every role gets those rows, and clicking one opens your integrations screen for an Admin and `Home`, the Repricer's front page, for everybody else. The Repricer has four roles, and [team, roles and permissions](/team#what-each-repricer-role-can-do) is where they are set.

## How to search

<Steps>
  <Step title="Open search">
    Click `Search` in the header, to the right of the page title, from whatever screen you are on. `Ctrl+K` does the same from anywhere in the Repricer, or `⌘K` on a Mac.
  </Step>

  <Step title="Type what you are looking for">
    A box has replaced the page title at the top left, with your cursor already in it. Type at least 2 characters, because nothing is searched below that.
  </Step>

  <Step title="Read the list">
    Your results arrive together, in groups. Your own records come first, one group per kind, and the screens you can jump to come after them.
  </Step>

  <Step title="Open the one you want">
    Click any row. The top row is already highlighted, so pressing `Enter` opens the closest match without touching your mouse.
  </Step>
</Steps>

That is the whole flow. Opening a result closes search and takes you to the screen that thing is on. Your search is added to a short list you see next time your box is empty.

Everything below explains what search reads, what each row is telling you, and where it stops. You do not need any of it to find a listing by its `SKU`.

## Every option in detail

### Opening and closing search

`Search` is in the header, to the right of the page title and of whatever control that screen puts beside it, and it is there on every screen. Next to the word is a small key badge reading `Ctrl+K`, or `⌘K` on a Mac. That badge is hidden in a narrow window and on a phone, and the button itself is not.

Pressing that shortcut anywhere in the Repricer opens search, and pressing it again closes it. So does `Esc`, and so does `Close`, the button to the right of the search box while search is open. All three put you back on the page you came from, and none of them keeps what you typed, so your box is empty the next time you open it.

What you type goes into the address bar as you type it. So a search is something you can bookmark or send to a teammate, and opening that address runs it again.

### What search looks through

Search reads three kinds of record at the same time. Each kind gets its own group in the list, under a header naming it, and the groups always come back in this order.

| Group | What a match reads | The second line under the row |
| --- | --- | --- |
| `Listings` | The `SKU`, the `Product ID`, the `FNSKU`, the product title and the brand | The `SKU` and the `Product ID`, with a dot between them |
| `Strategies` | The strategy name and its description | The account the strategy is set for |
| `Integrations` | The `Label` you gave the account, and the ID the integration knows it by | That ID, and the marketplaces the account covers |

Those three cover every integration you have connected and every marketplace inside it, so one search gets you a listing wherever you sell it. Nothing narrows the list to one integration or one account.

A strategy that is not set for one account has no second line, so the word `Strategy` is under it instead.

### What finds a listing

**Your `SKU` and your `Product ID` find their listing.** Both are on the second line of every listing row. Both match on a part of themselves, so half a `SKU` is enough, and Amazon listings also answer to their `FNSKU`.

**The product title and the brand find it too.** Type what the product is called and its listings come back. Type a brand and every listing under that brand comes back.

**A near miss still finds it.** Accents are ignored, so `cafe` finds `Café`. One wrong letter is forgiven, so `shrit` finds a shirt. Two wrong letters in the same word is usually too far, and you get nothing.

**Part of a word is enough.** `pho` finds `iPhone`, wherever those letters are inside the name.

<Accordion title="Everything a listing search reads, and what it puts on top">
  A listing matches on its `SKU`, its `Product ID`, its `FNSKU`, its product title and its brand. Those count in that order, so a listing whose `SKU` you typed comes above one that only has your word somewhere in its title.

  The same listing on two marketplaces is two listings, and both come back. Each row shows the logo of the integration it is on, which is how you tell the two apart.
</Accordion>

### Jumping to another screen

Alongside your records, search gives you a fixed set of places in the Repricer. They come back in three groups, and they always come below your own records.

| Group | The destinations in it |
| --- | --- |
| `Pages` | `Home`, `Listings`, `Strategies`, `Pricing Activity`, `Reports`, `Imports`, `Exports`, and `Integrations` for an Admin |
| `Reports` | One row for each of the six reports |
| `Settings` | `Notifications`, `Appearance`, `Profile`, `Security`, `General`, `Team`, and `Billing` for an Admin |

**A destination answers to what it is about, not only to its name.** Each one has a few extra words that also match it. So `csv` and `spreadsheet` find `Imports` and `Exports`, `dark mode` and `theme` find `Appearance`, `margin` finds the `Profitability Report`, and `rules` finds `Strategies`. Those extra words follow the language you use the Repricer in, and one wrong letter is forgiven here too.

**Five of the `Settings` destinations take you out of the Repricer.** `Profile`, `Security`, `General`, `Team` and `Billing` all open the account app. That is where your name, your organization, your team and your plan are kept. `Notifications` and `Appearance` are the Repricer's own two, and they open in a dialog over the page you are on.

<Accordion title="The six reports you can open from search">
  `Sales Report`, `Buy Box Ownership Report`, `Price Changes Report`, `Profitability Report`, `Repricing Health Report` and `Units Sold Report`.

  Each one opens the report itself. `Reports`, in the `Pages` group above, opens the screen that lists all six instead.
</Accordion>

### Where each row takes you

| The row you click | Where you end up |
| --- | --- |
| A listing | Your listings screen, with that listing's dialog open over it |
| A strategy | That strategy, open in the strategy wizard at its first step |
| A connected account | Your integrations screen |
| A `Pages` or `Reports` destination | That screen |
| A `Settings` destination | The Repricer's settings dialog, or the account app for the five named above |

An account row is the one that does not open the thing on the row. It takes you to your integrations screen, where you pick the account yourself. For every role except `Admin` it takes you to `Home` instead, because the integrations screen is the one screen a role below Admin cannot open.

### Recent searches

Open search and leave the box empty, and the list under it shows what you searched for before, under a group header reading `Recent Searches`.

A search is remembered only once you open one of its results. That keeps your list to the searches that worked, instead of a record of everything you have ever typed. Opening a destination counts too, so opening `Appearance` from search puts the word you typed on your list the same way opening a listing does. Your last 10 searches are kept, newest at the top, and each one is dropped after 30 days.

Clicking a recent row puts that text back in your box and runs it again. It opens nothing, so a recent search is a shortcut to a search and never a shortcut to a listing.

`Clear all` is on the right of the `Recent Searches` header and empties your whole list. `Remove` is on the right of each row and drops that one search.

<Accordion title="Where your recent searches are kept, and who else can see them">
  They are kept in the browser you are using, and kept separately for each organization. So the list you get in one organization is not the list you get in another, and switching between them switches the list.

  They do not follow you to another computer or to another browser, and no teammate ever sees them.
</Accordion>

### Moving through the list without the mouse

| Key | What it does |
| --- | --- |
| `Ctrl+K`, or `⌘K` on a Mac | Opens search from anywhere, and closes it again |
| Arrow up and arrow down | Move the highlight one row |
| `Enter` | Opens the highlighted row |
| `Esc` | Closes search |

The top row is highlighted the moment your results arrive, so typing and then pressing `Enter` opens the closest match. Moving your mouse over a row moves the highlight onto it, which means the row under your cursor is the row `Enter` will open.

Those last three keys are printed along the bottom of the screen, in a strip that appears only once your list has something in it.

### Limits

| What | Limit |
| --- | --- |
| Characters before anything is searched | 2 |
| Characters of your query that are read | 100 |
| Results per group | 8 |
| Recent searches kept | 10 |
| How long a recent search is kept | 30 days |
| Searches per person per minute | 100 |

### What search cannot do

| You cannot | Do this instead |
| --- | --- |
| See more than 8 results of one kind | Type something narrower, or filter the table for that kind |
| Narrow the list to one kind, or to an integration, an account or a status | Use the [filters](/repricer/filters) on the table for that kind |
| Find a listing by its barcode, its description or its condition | Open [listings](/repricer/listings) and filter the table |
| Find an import, an export, a schedule, a saved view, a price change or a teammate | Open the screen they are on |
| Open one connected account from its row | Click through from your integrations screen |
| Sort your results, or page past them | Narrow what you type |

## What the result list shows you

Two things about the list surprise people the first time. It never gives you more than 8 rows of any one kind, and the number above it is not the number of matches you have.

### The order the groups come in

Your own records come first, listings at the top, then strategies, then your connected accounts. The three groups of destinations follow them. Inside a group the closest match is at the top, so the list is ordered by how well each row answers what you typed and not alphabetically.

Everything arrives at once. Search waits until you stop typing before it runs. It then keeps your whole list back until every part is ready, so you never watch one group appear and another follow a moment later.

### What each row tells you

Every row shows the logo of the integration it is on at the far left, then a name, with a second line under the name. What that second line shows depends on the kind, and the three-kind table further up this page says which.

| Kind | The name on the left | What is on the right |
| --- | --- | --- |
| A listing | Its product title, or its `SKU` when it has no title | Its price, and its repricing state |
| A strategy | The name you gave the strategy | How many listings the strategy is on |
| A connected account | The `Label` you gave the account | Whether the connection is working |

A listing's price is the price it is live at, in the currency of the marketplace it is on. A listing with no price yet shows none.

The state on the right of a listing row and of an account row is written the way it is stored, in English and with an underscore in place of the space. So a listing the Repricer cannot reprice reads `NOT_WORKING`, and an account that needs reconnecting reads `NEEDS_REAUTH`. Your [listings](/repricer/listings) table writes the same states as ordinary words.

### Eight per kind, and that is the whole list

Each of the three groups gives you at most 8 rows, and there is nothing to click for the rest. There is no paging, no button for the whole set, and no way to tell search you only want listings.

So a word matching 300 listings gives you 8 of them. Those 8 are the closest matches and not the first 300 cut short, which means a precise query still puts the right listing on top. When 8 is not enough, either type something narrower or open the table for that kind and filter it. [Filters](/repricer/filters) covers the narrowing that search deliberately leaves alone.

### The two counters

Above your list is a line reading how many results came back and how many milliseconds your search took. The same count appears again in the bottom right of the strip along the bottom of the screen.

Both of them count your own records only, and they count them after the 8-per-group limit. On the query matching 300 listings, both read 8. Neither one counts the `Pages`, `Reports` and `Settings` rows, so a search that finds nothing of your own and two destinations reads 0 with two rows under it.

## When something goes wrong

### When nothing comes back

`No results found` fills the screen whenever your list is empty. When you are sure the thing exists, four things account for almost all of it.

- **It is behind the limit.** A common word buries what you want under 7 closer matches, so type something narrower.
- **You typed something search does not read.** A barcode, a description, a condition and a fee find nothing, however exactly you type them.
- **It is not one of the three kinds.** Imports, exports, schedules, saved views, price changes and your teammates are not searched.
- **The listing is not in this organization.** Search covers the organization you are working in, so switch it in the sidebar and try again.

A second typo in the same word also misses, since one wrong letter is as far as a match goes.

One case looks like a failure and is not. At exactly 1 character you get `No results found`, because 2 is the floor and nothing has been searched yet. A second character brings your list back.

### The states you can end up on

| What you see | What it means |
| --- | --- |
| Nothing at all | Your box is empty and you have no recent searches yet |
| `Searching...` | Your search is running |
| `No results found` | Nothing matched, or you have typed only 1 character |
| `Something went wrong` | Your search did not run. Try it again |

`Something went wrong` also covers being asked to slow down. Past 100 searches in a minute yours are rejected until that minute is out, and the message reads the same as any other failure. Typing alone will not get you there, because a search runs once you pause instead of once per key.

## Where to go next

<Columns cols={2}>
  <Card title="Listings" icon="table" href="/repricer/listings">
    What a listing is, and the table to open when 8 rows are not the answer.
  </Card>

  <Card title="Strategies" icon="target" href="/repricer/strategies">
    What a strategy is, and what the count on its row is telling you.
  </Card>

  <Card title="Filters" icon="funnel" href="/repricer/filters">
    How to narrow a table when 8 rows of one kind is not enough.
  </Card>

  <Card title="The interface" icon="layout-dashboard" href="/repricer/interface">
    Where `Search` is in the header, and the rest of the frame around it.
  </Card>
</Columns>
