> ## 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 that finds anything in your catalog by name or by SKU, and clicking a result takes you right to the record.

Search is one box that looks through your whole catalog at once and takes you right to the record you name. You type a few letters, and a grouped list comes back: your products first, then your brands, then your categories, and six more kinds after them. Click a row and it opens.

Most people use search when they know what something is called, or know its SKU, and walking the catalog would take longer than typing. It is also the quickest way to get to another part of the PIM, because the same list gives you a short set of destinations alongside your records. Nothing you do here changes your catalog, so there is nothing to break by typing into it.

You open search from `Search`, the button at the right end of the header, 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 catalog. Your role does not hide a product, a brand or a file from you, and it does not change what matches. What it changes is where a result can take you next.

Two rows in your list are for the `Admin` role only. One is an integration result, which opens the connected account behind it. The other is the `Integrations` destination, which opens your integrations screen. With any other role you still see both, and clicking either one puts you on your home screen instead. Roles are set in [team, roles and permissions](/team#what-each-pim-role-can-do).

## How to search

<Steps>
  <Step title="Open search">
    Click `Search`, the button at the right end of the header, from whatever screen you are on. `Ctrl+K` does the same from anywhere in the PIM, 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 destinations 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 opens the record or the screen you picked. 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 product by name.

## Every option in detail

### Opening and closing search

`Search` is at the right end of the header, past your page's own controls and before the apps launcher, 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 on a phone, and the button itself is not.

Pressing that shortcut anywhere in the PIM 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.

What you type is kept in 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 nine kinds of record in your catalog 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 |
| --- | --- | --- |
| `Products` | The title, the description, the product type, the tags on it, and every identifier | The identifier you typed, or the brand, or the product type |
| `Brands` | The brand name | Its description |
| `Categories` | The category name | Its full path, parents first |
| `Tags` | The tag name | Its description |
| `Spec Groups` | The group name | Its description |
| `Spec Definitions` | The definition name | Its description |
| `Spec Values` | The value | The definition it is under |
| `Integrations` | The label you gave the account, and the name of the provider | The provider and the destination |
| `Assets` | The display name and the original file name | The original file name |

Those nine group headers are always in English, whichever language you use the PIM in. `Pages`, `Settings` and `Recent Searches` follow your language normally, which is what makes the difference visible on a Spanish screen.

A file appears here only once its upload has finished, the same rule your [asset library](/pim/assets) applies to itself. Start an upload and search for it a second later and it is not there yet.

### What finds a product

**Every identifier you have finds its product.** Type a SKU, a barcode, an ISBN, a part number, an ASIN or the value of a custom identifier. Your product comes back. That is true for an identifier on any of the product's variants. So a barcode you scanned is your fastest way to the product you want to edit, and [identifiers](/pim/catalog/identifiers#the-six-types) covers all six types.

<Note>
  A variant never gets a row of its own. Search a SKU that is on one variant and you get the product above it, with the identifier you typed as that row's second line.
</Note>

**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 product search reads, and the one thing it does not">
  A product matches on its identifier values, its title, its description, its product type, and the names of the tags on it. Those count in that order, so a product whose title you typed comes above one that only mentions your words deep in its description.

  What none of that reads is the label you gave a `Custom` identifier. Search reads the value, so a custom identifier labeled `Warehouse code` is found by the code itself and not by those two words.
</Accordion>

### Jumping to another screen

Alongside your records, search gives you a fixed short list of places in the PIM. They come back in two groups, `Pages` and `Settings`, and they always come below your own records.

| Group | The destinations in it |
| --- | --- |
| `Pages` | `Home`, `Catalog`, `Reports`, `Imports`, `Exports`, and `Integrations` for the `Admin` role |
| `Settings` | `Notifications` and `Appearance` |

**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`, `dark mode` and `theme` find `Appearance`, `shopify` and `connections` find `Integrations`, and `kpi` finds `Home`. Where a word could match a name and an extra word at the same time, the name comes first.

**Those extra words are always English.** The names themselves follow the language you use the PIM in, so on a Spanish screen `Apariencia` still answers to `theme`. One wrong letter is forgiven here too.

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

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

Your recent searches are kept in the browser you are using, kept separately for each organization. They do not follow you to another computer, and no teammate ever sees them.

### 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 a status, a brand or a date | Use the filters on the table for that kind |
| Find an import, an export, a data source, a saved view or a teammate | Open the screen they are on |
| Find a file that is still uploading | Wait for the upload to finish |
| Jump to your asset library or your data sources | Use the sidebar |
| 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, products at the top and assets at the bottom, in the fixed order of the nine-kind table further up this page. The two destination groups 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 a name on the left, with a second line under it. What that second line shows depends on the kind, and the nine-kind table further up this page says which.

A product row has two more things on the right. The price is the lowest among the product's variants, always in your organization's default currency, and a product with no price anywhere shows none. Beside it is the product's status, in the same words your [products table](/pim/catalog/products#reading-the-products-table) uses.

An integration row shows its provider's logo on the left instead.

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

Each of the nine 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 products.

So a word matching 300 products gives you 8 of them. Those 8 are the closest matches rather than the first 300 cut short, which means a precise query still puts the right product on top. When 8 is not enough, either type something narrower or open the table for that kind and filter it. [Products](/pim/catalog/products) covers the filtering 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 records only, and they count them after the 8-per-group limit. On the query matching 300 products, both read 8. Neither one counts the `Pages` and `Settings` rows, so a search that finds nothing in your catalog 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 a variant.** Search its SKU and the product above it comes back in its place.
- **It is behind the limit.** A common word buries what you want under 7 closer matches, so type something narrower.
- **The file is still uploading.** An asset is findable once its upload finishes.
- **It is not one of the nine kinds.** Imports, exports, data sources, saved views and your teammates are not searched.

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="Products" icon="package" href="/pim/catalog/products">
    The filters and saved views for the searches too broad to end here.
  </Card>

  <Card title="Identifiers" icon="barcode" href="/pim/catalog/identifiers">
    The six types of code a product can be found by.
  </Card>

  <Card title="Assets" icon="images" href="/pim/assets">
    The library search covers, once a file has finished uploading.
  </Card>

  <Card title="The interface" icon="layout-dashboard" href="/pim/interface">
    Where the search button is, and the rest of the frame around it.
  </Card>
</Columns>
