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

# The Repricer

> Turn on one switch and your PIM keeps what each item costs you while your Repricer takes over what you charge, so neither one overwrites the other.

The Repricer connection links your PIM to your Repricer. It is one switch, and turning it on splits the money between the two products. Your PIM owns what an item costs you, and your Repricer owns what you sell it for.

That split is the whole feature. Your unit cost, MAP and MSRP go from a PIM variant to any Repricer listing with the same SKU. You can no longer type into them over there. Going the other way, the Repricer takes over the selling price on every account you connected in both products, and the PIM stops publishing a price to those accounts.

People turn it on for one of two reasons. Both products were writing a price to the same store and overwriting each other. Or the Repricer needed a cost to work a floor and a margin out of, and all of your costs lived in the PIM.

You will find it in the PIM under `Integrations` in the left sidebar. Scroll to the bottom of the card grid, to the section headed `Tools`, and click the card named `Repricer`. Everything on this page starts in the dialog that opens over the page.

## Before you start

### What your role lets you do

| Your role | Turn the link on or off | See what it changed on your products |
| --- | --- | --- |
| Admin | Yes | Yes |
| Manager | No | Yes |
| Editor | No | Yes |

`Integrations` is not in your sidebar at all below Admin, so most of your team never opens this dialog. They still see the link on the products they open, because a price the Repricer owns is read-only for everyone. Roles are set in [team, roles and permissions](/team#what-each-pim-role-can-do), and the Repricer asks for the same two roles on its own side.

### What has to be true before an account pairs

**Both products have to be active on your organization.** If yours does not have the Repricer, the `Repricer` dialog tells you so and gives you a link to activate it. Its `Connect` button stays gray until you do.

**The same account has to be connected separately in each product.** This is the one people get wrong. Linking the PIM to the Repricer connects no store at all. Your PIM's Shopify connection and your Repricer's Shopify connection are two separate connections, and the link only pairs up accounts you already have on both sides. To get one Shopify store under the link you connect it twice, once inside each product, and [connect a store](/connect-a-store) covers both.

**The account has to be a Shopify store, an Amazon seller account or a Square merchant.** Those are the ones that pair. An account of yours on any other integration goes on working exactly as it did, in whichever product you connected it.

<Warning>
  Connecting gives the selling price on every paired account to the Repricer at once. There is no per account choice and no pause. Disconnecting is the only way to take your pricing back.
</Warning>

## How to connect the Repricer

<Steps>
  <Step title="Open the Repricer dialog">
    In the PIM, click `Integrations` in the left sidebar and scroll to the bottom of the card grid. Click the card named `Repricer`, in the section headed `Tools`.
  </Step>

  <Step title="Read the four numbers">
    The dialog counts your catalog, your Repricer listings, and how many of those listings match a SKU you already have. Counting a large catalog takes a moment, and `Connect` stays gray until it finishes.
  </Step>

  <Step title="Turn the link on">
    Click `Connect` in the bottom right of the dialog.
  </Step>

  <Step title="Check what paired">
    The dialog stays open and switches to a list headed `Paired accounts`. Each row names one of your accounts, with `Prices by Repricer` on the right. An empty list means nothing paired, and an account you connected in only one of the two products is usually why.
  </Step>
</Steps>

That is the whole flow. The card gets a green `Connected` tag and your costs start arriving on matching listings within seconds. The Repricer takes over the selling price on your paired accounts from its next run.

Everything below explains what moved, where you can see it, and how you move it back. You do not need any of it for the link to work.

## Every option in detail

The `Repricer` dialog is the only screen the link has. Everything else it does turns up elsewhere in the two apps: on a product in the PIM, and on a listing in the Repricer. The section after this one covers both.

### Read the four numbers before you connect

The `Repricer` dialog, under `Integrations`, opens on four counts in a two by two grid. They are exact rather than estimates, and you get them fresh every time you open it.

| Card | What it counts |
| --- | --- |
| `PIM products` | Every variant in your catalog. A product of yours with 4 variants counts 4 |
| `Repricer listings` | Every listing you have in your Repricer |
| `Matched` | Your Repricer listings whose SKU matches a variant in your catalog |
| `Unmatched` | The listings you are left with |

`Matched` is the number worth reading, because it is how many of your listings the link will actually touch. It is a real count and not a projection, so it is what you get. A low `Matched` against a large `Repricer listings` count means your SKUs do not line up, and [identifiers](/pim/catalog/identifiers) covers where a variant's SKU comes from.

A count that could not be calculated shows you a dash. Counting is the slow part of opening this dialog, and it gives up after 1 minute and asks you to try again.

### Read the dialog once the link is on

Open the `Repricer` card under `Integrations` once more and the dialog looks different. You get two counts instead of four, `Matched` and `Unmatched`, above a list headed `Paired accounts`. Each row reads as your name for the account with its integration in brackets.

**`Prices by Repricer` on a row is a label, not a switch.** Every paired account is priced by the Repricer, and there is nothing on the row for you to click. Getting one account back means `Disconnect`, which gets all of them back.

With nothing paired, you get one line instead of the list, saying no accounts are connected in both products yet. The link is still on and your costs still go to matching listings. Pairing decides who owns the selling price, and it decides nothing about your cost.

### Connect from the Repricer instead

The Repricer has the same card under its own `Integrations`, in its own `Tools` section, named `PIM`. It opens the same dialog with the same four counts, and `Connect` there does exactly what `Connect` here does.

You get one link per organization and neither side is the primary one, so use whichever app you happen to be in. Disconnecting from either side does the same thing too.

### Hand the prices back

Once the link is on, `Disconnect` is in the bottom right of the `Repricer` dialog, in red. Clicking it asks you to confirm in a dialog headed `Disconnect Repricer?`.

| What | What confirming does to it |
| --- | --- |
| The costs, MAP and MSRP already in the Repricer | They stay, and you can edit them there again |
| The prices the Repricer set on your channels | They stay live, and become your own prices in the PIM |
| The read-only price rows in your PIM products | They go |
| Your paired accounts | The PIM starts publishing prices to them again |

Nothing is cleared and no price of yours drops to zero. The PIM takes the Repricer's last price for each account and adopts it as its own, which is why the prices on your channels do not move when you disconnect. If you have exactly one account connected, that price goes into the product's own `Price` and `Compare Price` fields instead of a per-account row.

If that adoption fails, the disconnect does not go through. The link stays on, your prices stay where they are, and the dialog tells you something went wrong. Try it again.

<Accordion title="What happens to Repricer edits if you disconnect and reconnect later">
  Reconnecting is one click on the same `Connect` button, and it is not simply an undo of your disconnect. While the link is off, you can edit cost, MAP and MSRP in the Repricer again, and people do.

  On reconnect the PIM re-asserts its own values over every matching listing, so those edits are replaced by whatever the PIM has. Nothing in either app warns you first. If you changed costs in the Repricer during the gap and you want to keep them, put them into the PIM before you reconnect.
</Accordion>

### Limits

| What | Limit |
| --- | --- |
| Links your organization can have | 1 |
| Fields the link locks on a Repricer listing | 3 |
| Fields a listing and a variant match on | 1, the SKU |
| Integrations that can pair | Shopify, Amazon and Square |
| How long the count in the dialog waits | 1 minute |

### What the link cannot do

| You cannot | Do this instead |
| --- | --- |
| Connect a store once and have both products see it | Authorize it inside each product, then link the two |
| Pause the link | Disconnect it, and connect again when you want it back |
| Choose which of your paired accounts the Repricer prices | Disconnect, which gives every account back to you at once |
| Match a listing on an ASIN, a barcode or anything but a SKU | Put the same SKU on your variant and on your listing |
| Send a title, a description, an image or a category either way | Publish your content with [push](/pim/integrations/push) |
| Have the Repricer write a selling price into your PIM price field | Read its live price on your account's row, which is read-only |
| Run the link, or redo the matching, on demand | Nothing. It runs on its own within seconds of your edit |
| Open a history of what crossed and when | Nothing. Neither product keeps one you can read |

## What crosses between the two products

Two things surprise people here. The link moves far less than you expect, and the one field it matches on is the one field no one thinks about.

### How a listing finds its variant

A Repricer listing is matched to a PIM variant when the two have the same SKU. That is the only thing compared: not the title, not the barcode, not the ASIN, and not the integration the listing is on.

Your PIM SKUs are unique inside your organization, so a listing matches at most one of your variants and there is never a tie to break. A listing whose SKU is nowhere in your catalog never matches, and nothing tells you about it beyond the `Unmatched` count in the dialog.

Change a variant's SKU and the listing it used to match comes unmatched. Its three fields unlock in the Repricer, keeping the values they had, and the PIM drops the read-only price row for it. Another variant on the same account is not affected.

### What the PIM sends to the Repricer

| What the PIM sends | Where it goes on a matching listing |
| --- | --- |
| Your variant's SKUs | What the match is made on |
| Your effective cost | `Unit Cost` |
| MAP | `MAP` |
| MSRP | `MSRP` |
| Your organization's currency | Which currency the three above are in |
| Your per-currency amounts | The same three, on a listing priced in that currency |

**Nothing else crosses in this direction.** Not a title, a description, an image, a brand, a category, a barcode or a specification. The link moves money and identity, and your own selling price is not part of it.

The cost the Repricer gets is your effective cost, and not a field you typed. The PIM works it out from the cheapest source that actually has stock, which [pricing](/pim/catalog/pricing) sets out in full. So a stock movement can change the cost the Repricer prices from, with no one editing a cost anywhere.

<Warning>
  Clearing a cost in the PIM clears it on the matching listing. The old value is not left behind, and a Repricer price floor calculated from cost then has no cost to work from.
</Warning>

Your edit arrives in the Repricer within seconds. There is no button for you to press and no schedule to wait for.

### What the Repricer sends back

Two things come back, and you cannot edit either one in the PIM.

**The live price on each account, for you to read.** Open one of your products from `Catalog` in the sidebar and scroll to its `Pricing` section. The per-account table shows what the Repricer has live, in its `Price` and `Compare price` columns, with `Managed by Repricer` where `Edit` would be. Once your variant has a saved SKU, those words are a link that opens the listing in the Repricer. The table itself is covered in [pricing](/pim/catalog/pricing).

**Whether each of your variants is still matched.** You never see this one directly. It is what unlocks a variant that stopped matching, and what keeps its neighbors locked.

<Accordion title="Why a price appears for an integration you never connected in the PIM">
  The Repricer prices listings on integrations the PIM does not connect at all. Those prices come back too, as extra read-only rows in the same per-account table, under your own accounts.

  They are there for you to read and nothing more. The PIM never publishes to those integrations, has no account to publish through, and drops the rows when you disconnect.
</Accordion>

### What the link locks in the Repricer

On a matched listing the Repricer stops letting you type into three fields. To see them, click `Listings` in the Repricer's sidebar, click one of your listings, and open the `Pricing` tab.

| Field | Where it is on the `Pricing` tab |
| --- | --- |
| `Unit Cost` | Under `Cost of Goods` |
| `MAP` | Under `Manufacturer Pricing` |
| `MSRP` | Under `Manufacturer Pricing` |

Each one keeps its value on screen, in a dashed read-only box, with a small `Managed by PIM` label beside it. That label is a link, and clicking it opens the variant in the PIM in a new tab, which is where you change the value.

**Everything else on that tab stays yours.** `Manual Price`, `Compare Price`, `Minimum Price`, `Maximum Price`, the strategy and `Pause Repricing` all work exactly as they did. The link takes three fields, never the tab.

Nothing else in the Repricer marks a listing as linked. There is no column in the listings table, no filter and no badge, so the `Pricing` tab is the only place you can find out.

### What the link changes in the PIM

On an account the Repricer prices, the PIM stops publishing your selling price and your compare price there. Your first push of a product that is not on the channel yet still sends your price, because there is no live price to protect. After that, the price on the channel is the Repricer's.

Your own `Price` and `Compare Price` fields stay editable the whole time. They are simply not published to a paired account, and they are still what an unpaired account publishes and what your exports and your products table show.

One setting is blocked while an account is paired. Open that account from `Integrations` and click `Settings` in the dialog header: there, you cannot move `SKU field` off `SKU`. The SKU is what the match is made on, and [integration settings](/pim/integrations/settings) covers that field. An import that sets a price on a product the Repricer prices saves your value and warns you it will not be published there, which [imports](/pim/uploads/imports) covers.

## When something goes wrong

### The two banners at the top of your PIM

Two warning banners can appear across the top of your PIM, below any billing banner. Only admins see them, you cannot dismiss either, and each goes away on its own once you have dealt with it.

| Banner | What it means | Its button |
| --- | --- | --- |
| `Activate the Repricer integration` | The same account is connected in both products while the link is off, so both are publishing prices to it | `Activate integration`, which opens the `Repricer` dialog |
| `Integration connected only in the Repricer` | The link is on and you have an account in the Repricer with no counterpart in the PIM, so it cannot pair | `Connect integration`, which opens the connect form for that integration |

Both name the accounts they are about. The second one's button reads `View integrations` instead, and takes you to the card grid, when your missing accounts are spread over more than one integration.

The first banner is also what you see right after a disconnect. That is correct rather than a fault: you disconnected, and both products are publishing to that account again.

### Messages you can run into

| Message | Where you see it | What to do |
| --- | --- | --- |
| `Your organization does not have the Repricer active yet.` | In the dialog, before you connect | Activate the Repricer on your organization, then come back |
| `You do not have permission to connect accounts.` | In the dialog | Your role is below Admin |
| `The connection preview could not be loaded. Please try again.` | In the dialog | The count did not finish. Close the dialog and open it again |
| `Something went wrong. Please try again.` | In the dialog | Press the same button again. Nothing was changed |
| `Cost, MAP and MSRP on this listing are managed by your PIM connection. Edit them in the PIM instead.` | In the Repricer, saving a listing | Change the value on your variant in the PIM |
| `Cost, MAP and MSRP on the target listing are managed by your PIM connection and can't be synced from another listing.` | In the Repricer, setting up a rule that copies fields from one listing to another | Leave those three fields out of your rule |
| `This account is managed by the Repricer, which matches listings by SKU. Disconnect the Repricer integration before changing the SKU field.` | In the PIM, saving an account's settings | Leave `SKU field` on `SKU`, or disconnect first |

### Three things that happen with no message

Nothing on screen tells you about any of these.

Right after you connect or reconnect, every variant on a paired account is treated as the Repricer's, matched or not, until the matching has been worked out. That is deliberate, because the alternative is the PIM writing over live Repricer prices in the gap. It settles on its own.

Connecting rewrites a rule you already had in the Repricer that copies cost, MAP or MSRP from one listing to another. Those three fields are taken out of it, and a rule that copied nothing else is switched off.

A listing priced in a currency the PIM has no exchange rate for stays matched and stays locked, and its cost, MAP and MSRP stop being updated. It is retried every night, so it fixes itself once a rate arrives.

## Where to go next

<Columns cols={2}>
  <Card title="Getting started with Repricer" icon="trending-up" href="/repricer/index">
    What a listing is over there, and what a strategy does with the cost you send it.
  </Card>

  <Card title="Pricing" icon="tag" href="/pim/catalog/pricing">
    The per-account price table, and where your effective cost comes from.
  </Card>

  <Card title="Integrations" icon="plug" href="/pim/integrations">
    Connecting the accounts that have to exist before anything can pair.
  </Card>

  <Card title="Identifiers" icon="barcode" href="/pim/catalog/identifiers">
    Where a variant's SKU comes from, and why the match depends on it.
  </Card>
</Columns>
