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

# Connect your first store

> Authorizing your first integration takes a few minutes, and it brings back the products already on it, so your catalog starts full instead of empty.

An integration is a live connection between the PIM or the Repricer and a place you sell. You authorize it once, and after that your data moves between the two on its own.

Until you have one, both products are waiting on you. The PIM has nowhere to publish your catalog, and the Repricer has no listings to price. Connecting is also the quickest way to fill either one. The connection reads what is already on the store and brings it back with it, so you never type your catalog in yourself.

You do this inside the product that will use it. The first time you open the PIM or the Repricer, it asks you to connect one before anything else. After that, `Integrations` in the left sidebar of that product is where every connection is.

The same store run through both products is authorized twice, once in each. They are separate applications with separate credentials, and neither one can borrow the other's connection.

## Before you start

Three things matter before your first connection. Everything else on this page can wait until you need it.

### What your role lets you do

You need the product role Admin in the product you are connecting. It is the only role that can connect or disconnect anything, and below it the `Integrations` link is not in the sidebar at all.

So if you cannot find `Integrations`, your role is the answer and not the page. Someone with the organization role Owner or Admin changes that for you, and [team, roles and permissions](/team) covers both sets of roles.

### One seller account, one organization

Your Shopify store, your Amazon seller account, your Square merchant: each one can be connected in one organization at a time, across all of Ready for Commerce. If a teammate connected it under a different organization, yours is rejected until they disconnect it there.

When the organization that has it is one you are in, the message names it, so you know exactly where to go. When it is not, the message points you at our support address instead.

### What connecting does to the store

Connecting a store to the PIM also makes two locations inside it, named `Supplier Stock` and `On-hand Stock`. They are how the PIM publishes a quantity without counting twice what your own locations already have, and they are meant to be there. [Inventory](/pim/catalog/inventory) explains what each one is for.

<Warning>
  Once the PIM finishes reading a store, every product of yours missing there is queued to be published to it. Connecting to a catalog you already built writes to the store.
</Warning>

## How to connect your first integration

<Steps>
  <Step title="Open the PIM or the Repricer">
    Open the PIM or the Repricer. The first time you open one, it asks you to connect an integration before anything else, and `Skip for now` under the cards takes you into the product without one. Every other time, click `Integrations` in the left sidebar.
  </Step>

  <Step title="Click the card you want">
    The `Integrations` page is a grid of square cards, one per integration, grouped into sections. Click one you have never connected and the dialog opens right on its connect form. A card with a dimmed logo and a `Coming soon` tag is not built yet and does nothing when you click it.
  </Step>

  <Step title="Fill in what the form asks for">
    Several ask for nothing at all. Shopify, BigCommerce and Walmart ask for credentials you create yourself first, and each of those three forms links to the page you make them on.
  </Step>

  <Step title="Click Connect and approve it">
    `Connect` is in the bottom right of the dialog. On the integrations that asked you for nothing it sends you to their own site, where you read what is being asked for and accept, and they send you back here.
  </Step>

  <Step title="Wait for the first sync">
    A dialog opens over the page by itself and counts what is happening. Leave it until it finishes, then click `Go to catalog` in the PIM, or `Go to listings` in the Repricer.
  </Step>
</Steps>

That is the whole flow. Your account is connected as soon as the approval comes back, the first sync starts on its own, and the card gets a `Connected` tag once it finishes.

Everything below explains those pieces one at a time. You do not need any of it to connect your first one.

## Every option in detail

### Where connecting happens

There are two screens, and the first one only appears once.

**The first time you open a product**, it shows you a grid of cards and asks you to connect one. `Skip for now` is under the grid and takes you into the product with nothing connected. That costs you nothing, because the screen never comes back and `Integrations` does the same thing with more in it. The Repricer adds a second step that sets up how it competes on price, and that one has a `Skip, use defaults` of its own.

**`Integrations` in the left sidebar** is the real home. It has every integration that product connects, every account you have on each one, and everything you can change about them later. Connecting from here is identical, and this is the screen that lists every integration.

Use the first-run screen if the store you want is on it. Use `Integrations` otherwise, and for a second account, a second store, or anything you connect later.

### What each integration asks you for

Which integrations you see depends on which product you are in, because the PIM and the Repricer do not connect to the same set.

| Integration | Connect it in | What the connect form asks you for |
| --- | --- | --- |
| Shopify | The PIM and the Repricer | Three fields, `Shop URL`, `Client ID` and `Client secret` |
| BigCommerce | The PIM and the Repricer | Three fields, `Store URL`, `Access Token` and `Client ID` |
| Amazon | The PIM and the Repricer | Nothing |
| Square | The PIM and the Repricer | Nothing |
| Google | The PIM | Nothing |
| Walmart | The Repricer | Three fields, `Seller ID`, `Client ID` and `Client Secret` |
| eBay | The Repricer | Nothing |

**Start with the store your products are already on.** A store you have sold from for years fills your catalog or your listings in a single step. Everything you connect after that is published out of what the first one brought in. Connecting an empty store works and gives you an empty result, which is the slow road to the same place.

Shopify runs on an app that belongs to you. You create it in your own Shopify account, install it on your store, and paste its `Client ID` and `Client secret` into the form. The form has the steps for making it, and the accordion below has them too.

Shopify's `Shop URL` takes your address in any shape you have it. Paste the address out of your browser, paste your `myshopify.com` address, or type the store name on its own. All three get you to the same store.

**BigCommerce and Walmart need credentials you make first as well.** Both forms have a link to the page you make them on. `Connect` stays gray, with `Fill in all required fields` on it, until every box has something in it. Make yours in another tab before you start, because a half-filled form is not waiting for you when you come back.

<AccordionGroup>
  <Accordion title="What to create in Shopify before you connect it">
    Your app is made in the Shopify Dev Dashboard, which the connect form links to. From your Shopify admin, open `Settings`, then `Apps and sales channels`, then `Develop apps`, and click `Build apps in Dev Dashboard`.

    Create an app and give it a name. In the app version, add the permissions the connect form lists, and click `Release`. Copy them out of the form with the `Copy` button above them, because a connection is rejected when your app is missing any one of them.

    Then open `Installs` and install the app on your store. Your `Client ID` and `Client secret` are under `Settings` and then `Credentials` in the app, and those two are what the connect form wants.

    Leave the app installed after that. When you need fresh credentials, rotate the secret in the Dev Dashboard instead of deleting the app.
  </Accordion>

  <Accordion title="What to create in BigCommerce before you connect it">
    A BigCommerce connection runs on an API account you create in your BigCommerce settings, under `API` and then `Store-Level API Accounts`. Give it permission to modify products and to modify inventory, because a token without both is rejected, and the message names what is missing.

    Creating it gets you an access token and a client ID. Keep both somewhere safe: BigCommerce shows them to you once, and they never expire on their own.
  </Accordion>

  <Accordion title="Why the Walmart Seller ID is the one to copy and paste">
    Your Walmart client ID and client secret are checked against Walmart while you wait, so you get an error right back if either is wrong. Your `Seller ID` is not checked against anything. It is stored exactly as you typed it and it becomes the account's identity here.

    So a typo in that one field produces a connection that looks like it worked and is bound to a seller who is not you. Copy it out of Walmart and paste it in.
  </Accordion>

  <Accordion title="Connecting a second account on the same integration">
    You can connect as many accounts on one integration as you have, and each keeps its own settings. Open the card, click `Manage accounts`, and the button at the bottom of the list reads `Add another account` once you have one.

    Name them while you are there. `Rename` in the account dialog header is where you do it, and two stores selling the same brand look identical in that list until you tell them apart yourself.
  </Accordion>
</AccordionGroup>

### Approving it on the integration's own site

Clicking `Connect` on a form that asked you for nothing sends you to that integration. You get their own permission screen, read what is being asked for, and accept. They send you right back, and the connection exists from that moment.

The credential forms have no hand-off. Creating the credentials was the approval, so clicking `Connect` there finishes it where you stand.

You are never asked to pick a marketplace, a region or a country. Each integration finds where you sell on its own: Amazon from the marketplaces your seller account is enrolled in, Shopify from your markets, BigCommerce from your storefronts. Square and eBay have one apiece. You switch off the ones you do not want after that, in the account itself.

### The extra step Google adds

Google is the one that asks you for something on the way back. A shopping feed sends people to your own website, so every product it publishes has to name the address of that product's page on your site. Google can only tell you which site it has verified after you sign in.

So a dialog headed `Product page setup` opens between Google sending you back and the first sync dialog. Fill in your website and click `Save and publish`, or click `Configure later` and set it in the account's settings when you get to it. Nothing is lost either way, and the first sync runs behind that dialog while you type.

### Watching the first sync

You come back to `Integrations` with a dialog already open. It shows a bar and a running count while the sync builds. When it finishes, it changes to a summary of what happened, with a link under it that downloads the errors as a file.

What that summary counts depends on which product you are in and which integration you connected, and the section on what the first sync leaves you with sets it out. Two things about the dialog itself matter on your first one.

**A sync you started yourself has no close button.** There is nothing to cancel and nothing to dismiss. Leave the tab and come back if it runs long, because none of it depends on your browser staying open.

**A sync you find already running closes freely.** Open `Integrations` while someone else's import is going, and the dialog comes back with an X in the corner. A long import can never trap you on that screen, and closing it never stops the work.

How long it takes depends on the integration and on how much is in the store. Amazon takes the longest to get going, in either product, because it has to prepare a report of your listings before anything can be read. Several minutes of no visible progress there is normal.

### Pausing and disconnecting an account

Pausing is the reversible one and it is what you want most of the time. The switch on the right of a row in the accounts list stops the reading and the writing for that account. It deletes nothing, everything already synced stays where it is, and flipping the switch back starts the account again.

Disconnecting is not reversible. `Delete` is in the bottom right of the account dialog, and the dialog tells you what it is about to remove before it lets you near the button. It then asks you to type the account name exactly, and to type the word `DELETE` in a second box, and only then does `Delete` become clickable.

<Danger>
  Disconnecting a Repricer account permanently removes that account's listings and their pricing history. Disconnecting a PIM account removes the connection and everything the PIM recorded about it. Your PIM catalog itself is never deleted.
</Danger>

Disconnecting a Shopify store does not remove your app from it. The app stays installed, so connecting the store again later means filling in the same connect form with the same credentials, and that is a new connection with a first sync of its own. Uninstalling that app in your Shopify admin disconnects the account too, and the product is told and removes it for you.

### Limits

| What | Limit |
| --- | --- |
| Organizations one seller account can be connected in | 1 |
| Accounts on one integration | No limit |
| Characters in an account name | 100 |
| First syncs on one account | 1 |

### What connecting cannot do

| You cannot | Do this instead |
| --- | --- |
| Share one connection between the PIM and the Repricer | Authorize the account in each product, then link the two from `Tools` |
| Run the first sync a second time | Disconnect the account and connect it again |
| Cancel a first sync | Wait for it, then disconnect if you connected the wrong account |
| Pick which regions or marketplaces you connect | Switch off the ones you do not want in the account later |
| Choose which Merchant Center account Google uses | Sign in with the Google login that can open the one you want |
| Connect a store someone has already connected elsewhere | Disconnect it in the organization that has it first |

## What the first sync leaves you with

A first sync runs once, on its own, the moment your account exists. It is the only time either product reads a store from top to bottom, and what it does with what it finds is different in each of them.

**In the PIM it fills your catalog.** A store's products come in as your products. Anything matching something you already have is linked to it instead of duplicated, and your version is the one that goes back out. Two of them behave differently enough to name. Amazon creates nothing at all, because it matches your existing variants to your live offers by SKU. Google publishes instead of reading, because a shopping feed has no products of its own. [Pull](/pim/integrations/pull) has the full picture, integration by integration.

**In the Repricer it fills your listings.** They come in with the prices they are selling at right now. Where the integration reports what an item costs you, that cost comes in too, and the Repricer then has what it needs to work a floor and a margin out.

Nothing that comes in brings its stock tracking with it. An imported variant arrives with tracking switched off, with the integration's own counts shown beside it as numbers you can read and not edit, and [inventory](/pim/catalog/inventory) covers turning that on.

<Note>
  A product someone creates in the store later is a separate case. Some integrations keep reading new products for you and some stop after the first sync, and [pull](/pim/integrations/pull#what-the-first-sync-brings-in) says which.
</Note>

## When something goes wrong

### The connection was rejected before it started

| Message | What to do |
| --- | --- |
| `This account is already connected to your organization.` | You already have it. Look for it in your accounts list |
| `This account is already connected to "{orgName}", another of your organizations. Disconnect it there first to connect it here.` | Disconnect it in the organization named, then come back |
| `This Amazon account is not selling in any supported marketplace yet.` | Start selling in a marketplace on Amazon first |
| `No Merchant Center account was reachable with this Google account.` | Sign in with a Google login that can open your Merchant Center |
| `BigCommerce rejected the access token. Check the token and try again.` | Make a new token in your BigCommerce admin |
| `The token is missing a required write scope. Grant Products (modify) and Inventory (modify) to the API account.` | Give the API account both permissions, then connect again |
| `Invalid Walmart Client ID or Client Secret. Verify your credentials in the Walmart Developer Center.` | Make a new pair in the Walmart Developer Center |
| `Authorization was declined on the Google consent screen.` | Start again and approve access |
| `You do not have permission to connect accounts.` | Your product role is below Admin. Ask someone to raise it |

### The first sync failed

The dialog says so and gives you the error report. There is nothing to retry and no button that re-runs it. The fix in both products is the same: disconnect that account and connect it again, which runs a fresh first sync.

One cause is worth checking before you do. A store whose currency is not your organization's currency stops the sync dead, on Shopify, BigCommerce and Square in the PIM. Nothing at all is imported, because a price in the other currency would come in relabeled and not converted. Line the two currencies up first, by changing your organization currency while your catalog is still small, or by connecting a store that matches. [Organizations](/organizations) has what that change costs you once a catalog exists.

### The connection says it needs attention

Credentials expire, and an integration can revoke yours. Neither repairs itself, so the account waits for you. `Reconnect` in the account dialog puts you back through whatever the connection asked for the first time, and nothing you set up is lost. It has to be the same account, and connecting a different store is rejected. [Connection health](/integrations/connection-health) covers every state an account can be in.

### Nothing came in

An empty result almost always means the account you authorized is not the one with your products in it. On Shopify, check that the address you gave is the store you meant. On Amazon, check which marketplaces came back with the connection.

### Everything looks connected and nothing moves

Open your Billing page in your account settings before you check anything else. A product that is past due or paused stops syncing and repricing while every switch on the `Integrations` page still reads as on. [Plans and billing](/billing) has what each status stops and how to clear it.

## Where to go next

<Columns cols={2}>
  <Card title="Integrations in the PIM" icon="plug" href="/pim/integrations">
    Every account, destination and location on one screen, and what each setting changes.
  </Card>

  <Card title="Integrations" icon="layers" href="/integrations/index">
    What each integration supports, set out side by side for both products.
  </Card>

  <Card title="Pull" icon="download" href="/pim/integrations/pull">
    What a connected integration writes back, and what a first sync brings in.
  </Card>

  <Card title="Team, roles and permissions" icon="users" href="/team">
    The role that connects an integration, and who can hand it out.
  </Card>
</Columns>
