> ## 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 PIM connection

> Connecting your PIM brings your cost, MAP and MSRP onto every listing with a matching SKU and gives Repricer the price on the accounts you have in both.

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

That split is the whole feature. Your cost, your MAP and your MSRP come down from a PIM product to every listing with the same SKU. You can no longer type into those three fields here. Going the other way, Repricer keeps the selling price on every seller 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 every cost they have was already in the PIM, and their strategies here need a cost to calculate a floor and a margin from.

You will find it under `Integrations` in the left sidebar. Scroll to the bottom of the card grid, to the section headed `Tools`, and click the card named `PIM`. 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 connection on or off | See what it changed on your listings |
| --- | --- | --- |
| Admin | Yes | Yes |
| Manager | No | Yes |
| Editor | No | Yes |
| Analyst | No | Yes |

`Integrations` is not in your sidebar at all below Admin, so most of your team never opens this dialog. They still run into the connection on the listings they open, because a field the PIM owns is read-only for everyone. Roles are set in [team, roles and permissions](/team#what-each-repricer-role-can-do), and the PIM asks for the same role 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 PIM, the `PIM` 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. Connecting Repricer to the PIM connects no store at all. Your Repricer's Shopify connection and your PIM's Shopify connection are two separate connections, and the pairing only pairs up accounts you already have on both sides. To get one Shopify store under it 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. Your accounts on the other integrations go on working exactly as they did.

<Warning>
  Connecting locks your cost, MAP and MSRP on every listing that matches, all at once. There is no per listing choice and no pause. Disconnecting is the only way to type into those three fields here again.
</Warning>

## How to connect the PIM

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

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

  <Step title="Turn the connection 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 you get your cost, your MAP and your MSRP on every matching listing within seconds. Your strategies, your price limits and your repricing carry on untouched.

Everything below explains what changed on your listings, where you can see it, and how you give the three fields back. You do not need any of it for the connection to work.

## Every option in detail

The `PIM` dialog is the only screen you get for the connection. Everything else it does turns up on a listing, in the `Pricing` tab of the dialog that opens when you click a row on `Listings`. The section after this one covers that.

### Read the four numbers before you connect

The `PIM` 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 the PIM catalog. A product there with 4 variants counts 4 |
| `Repricer listings` | Every listing you have here |
| `Matched` | Your listings whose SKU matches a product in the PIM |
| `Unmatched` | The listings you are left with |

`Matched` is the number worth reading, because it is how many of your listings the connection 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.

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 connection is on

Open the `PIM` 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 gives you your own name for the account, with the integration it is on beside it.

**`Prices by Repricer` on a row is a label, not a switch.** Every paired account is priced by Repricer, and there is nothing on the row for you to click. Handing one account back means `Disconnect`, which hands 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 connection is still on and your costs still come down to matching listings. Pairing decides who owns the selling price, and it decides nothing about your cost.

### Connect from the PIM instead

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

You get one connection 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 three fields back

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

| What | What confirming does to it |
| --- | --- |
| The costs, MAPs and MSRPs already on your listings | They stay, and you can edit them here again |
| The prices Repricer set on your channels | They stay live, and the PIM adopts each one as its own price |
| Your strategies, your price limits and your competitor pages | Nothing at all |
| 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 Repricer's last price for each account and adopts it, which is why the prices on your channels do not move when you disconnect.

From that moment both products publish a price to those accounts again, which is what the connection was stopping. Repricer tells you so with a banner, and the last section on this page covers it.

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

<Accordion title="What happens to the numbers you edit while the connection is off">
  Reconnecting is one click on the same `Connect` button, and it is not simply an undo of your disconnect. While the connection is off, cost, MAP and MSRP are yours to edit again, and people do edit them.

  On reconnect the PIM puts its own values back over every matching listing, so those edits are replaced by whatever the PIM has. Nothing in either app warns you first. If you changed a cost here during the gap and you want to keep it, put it into the PIM before you reconnect.
</Accordion>

### Limits

| What | Limit |
| --- | --- |
| Connections your organization can have | 1 |
| Fields the connection locks on a listing | 3 |
| Fields a listing and a PIM product 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 connection cannot do

| You cannot | Do this instead |
| --- | --- |
| Connect a store once and have both products see it | Authorize it inside each product, then connect the two |
| Pause the connection | Disconnect it, and connect again when you want it back |
| Choose which of your paired accounts Repricer prices | Disconnect, which hands every account back at once |
| Match a listing on an ASIN, a barcode or anything but a SKU | Put the same SKU on your listing and on the PIM product |
| Get a title, a description, an image or a category from the PIM | Nothing. Product content never crosses |
| Type a cost, a MAP or an MSRP onto a matched listing | Change it on the matching product in the PIM |
| Tell from the listings table which of your listings are matched | Open a listing and read its `Pricing` tab |
| Run the connection, or redo the matching, when you want | Nothing. It runs on its own within seconds of an edit in the PIM |
| Open a history of what crossed and when | Nothing. Neither product keeps one you can read |

## What the connection changes on your listings

Two things surprise people here. The connection moves far less than you expect, and the one field it matches on is the one field you cannot edit.

### How a listing finds its PIM product

A listing is matched to a product in the PIM 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.

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

**Matching pays no attention to the integration, and pairing does.** Shopify, Amazon and Square accounts are the ones that pair, so those are the accounts whose selling price changes hands. A Walmart, an eBay or a BigCommerce listing of yours still gets its cost, MAP and MSRP from the PIM the moment a SKU matches.

Your listing's SKU comes in from the account it is on, and you cannot change it here. So the SKU that decides a match is the one on the PIM product. Change it there and the listing stops matching. Its three fields unlock, keeping the values they had, and nothing else about the listing changes.

### What you get on a matching listing

Three numbers come down onto the `Pricing` tab of every matching listing, and they are the three the connection then locks.

| What the PIM sends | Where you get it |
| --- | --- |
| The cost of the matching product | `Unit Cost`, under `Cost of Goods` |
| MAP | `MAP`, under `Manufacturer Pricing` |
| MSRP | `MSRP`, under `Manufacturer Pricing` |

**Nothing else crosses in this direction.** Not a title, a description, an image, a brand, a category, a barcode or a specification. The connection moves money and nothing a shopper reads.

The cost you get is not a field somebody typed. The PIM picks it from the cheapest source that actually has stock, and calls it the `Effective Cost`. So a stock movement over there can change the cost your strategy prices from, with nobody editing a cost anywhere. [Pricing in the PIM](/pim/catalog/pricing) covers how it is picked.

A listing priced in a currency your PIM catalog does not use gets converted amounts. Where the PIM has a price in that exact currency on the matching product, you get that price instead of a conversion.

<Warning>
  Clearing a cost in the PIM clears `Unit Cost` on the matching listing. The old value is not left behind, and a strategy that calculates its floor from cost then has no cost to work from.
</Warning>

An edit in the PIM shows up here within seconds. There is no button for you to press and no schedule to wait for.

### What the connection locks, and what it leaves alone

On a matched listing, `Unit Cost`, `MAP` and `MSRP` stop taking what you type. To see them, click `Listings` in the left sidebar, click one of your listings, and open the `Pricing` tab.

Each of the three keeps its value on screen, in a box with a dashed edge, with a small `Managed by PIM` label beside it. That label is a link, and clicking it opens the matching product 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 connection takes three fields, never the tab.

Those three numbers go on doing what they always did. A floor calculated from cost is calculated from the PIM's cost, and a strategy holding your price to MAP or capping it at MSRP reads the numbers the PIM sent. See [price floor](/repricer/strategies/price-floor) for the first and [safety nets](/repricer/strategies/safety-nets) for the other two.

Nothing else in Repricer tells you a listing is matched. 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.

Four other things in Repricer could write one of those three fields. None of them does while the connection is on.

| Where | What happens |
| --- | --- |
| The `Cost`, `MAP` or `MSRP` column in the listings table | Your edit is rejected with a message, covered in [listings](/repricer/listings) |
| An import mapped to `Cost`, `MAP` or `MSRP` | Those cells are skipped with a warning and the rest of the row goes in, covered in [imports](/repricer/uploads/imports) |
| A sync link copying one of the three onto a matched listing | The link is rejected, covered in [sync links](/repricer/listings/sync-links) |
| The cost in your own Shopify store | Nothing copies in either direction, covered in [push](/repricer/integrations/push) |

### What your prices do on a paired account

Nothing about your repricing changes. Repricer goes on calculating and goes on submitting your prices, on the same schedule and by the same strategies. A paired account of yours behaves exactly as it did before you connected.

What changed is on the PIM's side. It stops publishing its own price and compare price to that account, so only one product is writing the price a shopper sees.

Your live price and compare price also go back to the PIM, next to the matching product, for people over there to read. Nobody can edit them there, nothing comes back from that, and somebody who clicks one of those prices opens the listing here on its `Pricing` tab.

## When something goes wrong

### The two banners at the top of Repricer

Two warning banners can appear across the top of your Repricer, below any billing banner. Only an Admin sees 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 PIM integration` | The same account is connected in both products while the connection is off, so both are publishing prices to it | `Activate integration`, which opens the `PIM` dialog |
| `Channel connected only in the PIM` | The connection is on and you have an account in the PIM with no counterpart here, so it cannot pair | `Connect channel`, 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 PIM active yet.` | In the dialog, before you connect | Activate the PIM on your organization, then come back |
| `You don't 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 | Click 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.` | Saving a listing | Change the value on the matching product in the PIM |

### Three things that happen with no message

Nothing on screen tells you about any of these.

Connecting rewrites a sync link you already had that copies cost, MAP or MSRP onto a matched listing. Those three fields are taken out of it, and a link that copied nothing else is set to `Paused`.

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

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

## Where to go next

<Columns cols={2}>
  <Card title="Integrations" icon="plug" href="/repricer/integrations">
    The screen the `PIM` card is on, and the accounts that have to exist before anything pairs.
  </Card>

  <Card title="Pricing on a listing" icon="tag" href="/repricer/listings/pricing">
    The `Pricing` tab, and every field the connection leaves you.
  </Card>

  <Card title="Cost, fees and profit" icon="receipt" href="/repricer/listings/costs-and-fees">
    Where your cost comes from when the PIM is not sending one, and what a strategy does with it.
  </Card>

  <Card title="Getting started with PIM" icon="compass" href="/pim/index">
    What a product and a variant are over there, and where a SKU is set.
  </Card>
</Columns>
