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

> The Optimizer is the PIM image editor that makes a second picture from one you have, bigger, without its background, reshaped or in another format.

The Optimizer is the PIM's image editor. You give it a picture you already have and it makes a second one from it. Your new picture can be bigger, or have its background cut away, or be in a different shape, or use a different file format. You can ask for all four at once, and the picture you started from is never touched.

People use it for one of three reasons. Your photo is too small for where you want to sell it. Your product was shot on a kitchen table and needs to be on plain white instead. Or a store wants square pictures and yours are not square.

You open it from any image in the PIM. Wherever you can already see a picture, there is an `Optimize` action. It opens a full screen dialog over the page, with your settings down the left side and a live preview on the right. Every switch you flip shows up in that preview before anything is saved.

Nothing here is a filter or a color correction. You can change the size of a picture, its shape and its file format, and you can take a background off it. You cannot change what the picture is of.

## Before you start

### What your role lets you do

| Role | Optimize an image | Delete the new file after that |
| --- | --- | --- |
| Admin | Yes | Yes |
| Manager | Yes | Yes |
| Editor | Yes | No |

If you are an Editor, `Optimize` works for you as normal. The file it makes goes into your library like any other, and the `Delete` button on it is never there for you. Roles are set in [team, roles and permissions](/team#what-each-pim-role-can-do).

### It works on images and on nothing else

You only get the `Optimize` action on a picture. A PDF, a video, an audio file or a 3D model never has it, and no setting turns that on.

## How to optimize an image

<Steps>
  <Step title="Open the image">
    Go to `Catalog`, open a product, and scroll to its `Assets` section. Find the card with the picture you want, click the `⋮` button in that card's footer, and click `Optimize` in the menu that drops down.
  </Step>

  <Step title="Turn on what you want to change">
    The dialog opens with every setting off. Each one is a switch down the left side. Turn on `Resize` to change the shape of your picture, `Remove background` to cut your product away from its backdrop, or `Upscale` to redraw it larger.
  </Step>

  <Step title="Check the preview">
    Your picture on the right redraws as you go, and the line under it tells you how big your new file will be. The `Show original` switch above the preview flips you back to what you started with.
  </Step>

  <Step title="Save the new picture">
    Click `Optimize` at the bottom right of the dialog.
  </Step>
</Steps>

That is the whole flow. A message reading `Asset optimized` tells you it worked, the dialog closes, and the card you started from is already showing your new picture. The one you started from is still in your library, untouched.

Everything below explains those seven switches one at a time. It also covers running one set of them over a whole group of pictures. You do not need any of it to straighten out a single photo.

## Every option in detail

The dialog is split in two. Your settings are in a column on the left, one switch each, and turning a switch on shows its own controls under it. The right side has one large preview. `Cancel` is at the bottom left and `Optimize` at the bottom right.

`Optimize` stays gray until at least one switch is on and would genuinely change your file. So if your picture is already square and you pick `1:1`, the button stays gray. There is nothing to save.

You will not always see all seven switches. A setting the PIM cannot apply to the picture you opened is not there at all, and each section below says when you will be missing its switch.

### Where the Optimize action is

You get `Optimize` in four places, and where you start from decides what happens to your result.

| Where you start | How you get there | What happens when it finishes |
| --- | --- | --- |
| A card in a product, variant, brand or category | Open the record, find the card, click `⋮` in its footer, then `Optimize` | Your new picture takes the old one's place in that same group, in the same position |
| The library dialog | Click `Select existing` above any group, then `⋮` on a card, then `Optimize` | Your new picture goes to the front of the grid, and takes the original's place if you had selected it |
| The `Assets` page | Click `Assets` in the left navigation, click a row in the table, then `Optimize` in the dialog that opens | That dialog jumps to your new picture. No product changes |
| A group of checked cards | Hover a card in a group like `Gallery`, check its box, check a second one, then click `Optimize` in the bar that replaces the group heading | Every picture you checked is swapped for its own new file, in place |

The last row is the only way to work on more than one picture at once. You need a group that can take several, which means `Gallery` or `Resources` on a product, `Gallery` on a variant, or `Resources` on a brand. Your checkboxes stay hidden until you hover a card, and they only switch on once the group has a second file. The `Assets` page has no version of this, so a run over many pictures always starts inside a record.

<Note>
  Checking a mix of pictures and other files is fine. `Optimize` leaves your videos and PDFs out without saying anything and runs on the images. Check nothing but PDFs and it tells you there is no image in your selection.
</Note>

### Reading the dialog

Three things on screen matter before you touch a switch.

**The line under the preview describes whichever picture you are looking at.** It reads like `1200 × 800 · JPEG · 249.7 KB`: the size in pixels, the file format, then how heavy your file is. Flip `Show original` on and you get the picture you started with. Flip it off and you get the one you are about to make, so you can watch your file get lighter or heavier as you work.

**That size is real.** The PIM builds your file in the background about half a second after you stop changing things. So the number arrives a moment late, and then it is exact. Two cases give you no number at all: a `WEBP` on Safari, and a picture with `Upscale` on.

**The switches do not run in the order they are listed.** `Upscale` runs first, then `Remove background`, then `Reframe`. Your frame from `Resize` and `Padding` comes after those, and your file is written last. That order is why turning on both `Upscale` and `Remove background` is worth it. The edge of your cutout gets traced on the big picture, so it stays crisp at the size you publish.

Each switch also works on whatever the switch above it produced. Turn on `Remove background` and everything below it is thinking about your cutout, not about the photo you opened.

`Show original` is above the preview, on the right. You only get it once something you turned on has taken effect, because until then you have no second picture to compare.

### Raising the resolution

`Upscale` redraws a small picture at a larger size instead of stretching it. Turn on the `Upscale` switch in the left column and three chips appear under it: `2×`, `4×` and `8×`. Pick one and your whole picture is rebuilt at that many times its width and height.

You will not always get all three. You only get a chip when the result would still be 8000 pixels or less on its longest side, so a big photograph gives you fewer chips than a small one. On an already large picture you get no `Upscale` switch at all.

The switch also needs a `JPEG`, a `PNG` or a `WebP` to work from, so a `GIF` and an `SVG` never show it.

This is the slowest setting in the dialog, and the bigger your factor the longer you wait. Expect several seconds at `2×` on a small picture, and considerably more at `8×` on a large one.

A picture that is already a cutout keeps its transparency through the enlargement, and its edges are not guessed at a second time.

<Note>
  Changing your factor after you have already removed a background sends your picture back for a fresh cutout. The old one was traced at the old size, so it cannot be reused.
</Note>

### Removing the background

`Remove background` cuts your product away from whatever it was photographed against and leaves the rest transparent. Turn on the `Remove background` switch in the left column. You have nothing to configure: your cutout appears in the preview after a few seconds and becomes the picture everything below it works on.

You only get the switch on a `JPEG`, a `PNG` or a `WebP`, and only while your picture still has a background to lose. A picture that is already a cutout does not show it, because there is nothing left to take off. A `GIF` and an `SVG` never show it either.

Two things change once your cutout is made. A `Background` switch appears, off, which means the transparency is kept in the file you save. And the `Format` switch stops giving you `JPEG` while that transparency is being kept, because a `JPEG` has nowhere to store it.

Nothing is saved at this point. Close the dialog and your cutout is gone.

<Warning>
  Flipping the `Remove background` switch, in either direction, turns `Reframe`, `Background` and `Format` back off. Set those three after your cutout, not before it.
</Warning>

### Correcting a cutout yourself

A cutout is a best guess, and `Refine` is where you fix the parts it got wrong. Once your cutout has appeared, a small wand button shows up next to `Show original` above the preview. Click it and the preview becomes clickable. Your switches on the left gray out while you are in here, because they are all working from a picture you are in the middle of editing.

Six icon buttons replace the `Show original` switch in that same header row. Hover any of them to read its name.

| Button | What it does |
| --- | --- |
| `Restore` | Picks the first tool. A click on your picture brings the original pixels back across the area under your cursor |
| `Erase` | Picks the second tool. A click clears the area under your cursor out of your cutout |
| `Undo` | Drops your last click |
| `Reset` | Drops all of them |
| `Cancel` | Leaves without keeping this visit's clicks |
| `Done` | Keeps them and returns you to the switches |

`Restore` is the tool you start with. You click a point, never an outline. The PIM finds which area contains your point, cleans it of specks and pinholes, and blends it into the edge already there.

Each click leaves a colored dot on your picture so you can see where you have been. Green is a restore and red is an erase. The dot blinks until your area is ready, and `Done` waits for any blinking dot before it lets you leave.

Corrections you have already kept with `Done` stay through a later `Cancel`. Only the clicks from the visit you are canceling are dropped. Your clicks also add up across visits, so `Reset` is what frees them once you hit the limit of 20.

### Trimming the empty space around a cutout

`Reframe` throws away the transparent margin around your cutout and re-centers what is left. Turn on the `Reframe` switch in the left column. There is nothing to set.

It matters because of what runs after it. A product photographed small in the middle of a big frame becomes a cutout with a lot of nothing around it, and `Resize` and `Padding` would then measure that nothing. Turn `Reframe` on first and they measure your product instead, so a square comes out with your product filling it.

You only get the switch when your picture has transparency and trimming it would actually change something. That means either a picture that is already a cutout, or one where you have just turned on `Remove background`. On a normal photograph you get no switch.

### Choosing the shape of the frame

`Resize` decides the frame your picture goes in, and your picture is always kept whole inside it. Turn on the `Resize` switch in the left column and five chips appear: `1:1`, `4:5`, `4:3`, `16:9` and `Custom`. Nothing is ever cropped and nothing is ever squashed, in any of them. What changes is how your frame is sized.

| Chip | How your frame is built |
| --- | --- |
| A shape, like `4:5` | The smallest frame of that shape that fits your picture at the size it already is |
| `Custom` | Exactly the width and height you type, with your picture scaled to fit inside |

**Which one should you pick.** Use a shape chip when you want a group to look consistent. It keeps every picture at its own resolution and simply adds room around it. Use `Custom` when somewhere you sell has told you an exact pixel size, because that is the only way to get one.

Click a chip that is not square and a small flip button appears under it, turning `4:5` into `5:4`. You get nothing under `1:1`, which has nothing to flip. In `Custom` the same button appears whenever your two numbers differ, and it swaps them.

`Custom` takes a whole number on each side. Type anything else and a message under the boxes names the range you have to stay inside.

<Accordion title="When Custom stretches your picture, and why it can look soft">
  `Custom` is the one place your frame can make a picture bigger. Type numbers well above what you started with and your picture stretches to fit. Past double, a warning tells you the result may look soft.

  That warning is not the same thing as `Upscale`. Stretching a picture to fill a bigger frame spreads the pixels you already have. `Upscale` redraws them, which is why it is the better answer when you genuinely need more resolution.
</Accordion>

### Filling the space around the picture

`Background` is what goes in the room your picture does not cover. Turn on the `Background` switch in the left column and two controls appear. One is a colored square, and clicking it opens your computer's own color picker. The other is a `Hex color` box you can type into. Both write the same color.

Type something that is not a color and a message under the box says so. `Optimize` stays gray until you fix it.

Leave the `Background` switch off and any transparency in your picture stays transparent.

You only get the switch when the picture you are working on has transparency, which means a cutout. On a normal photograph you get no switch, because the PIM already knows what to do. It reads the edge of your picture and extends it: a flat colored border keeps that color, and a photograph with no flat border gets white.

### Adding a margin

`Padding` leaves breathing room between your picture and the edge of the frame. Turn on the `Padding` switch in the left column and a slider appears. It runs from 0 to 50 percent of your finished frame, and it starts you at 10 so you can see the effect right away.

Padding grows your frame instead of shrinking your picture. So a lot of it on an already large picture can push your result past what the library will take. You find that out after you click `Optimize`, in a message telling you to use less padding or pick an opaque background.

Turning the switch off and on again puts you back at 10. A value you dragged to is not kept.

### Choosing a file format

Leave the `Format` switch off and the PIM picks the format for you. Anything with transparency in it is written as a `PNG`, and everything else as a `JPEG`.

Turn on the `Format` switch in the left column and three chips appear: `JPEG`, `PNG` and `WEBP`. Whichever one the PIM had already chosen is selected, so flipping the switch on its own changes nothing until you click a different chip.

**Which one should you pick.** Pick `JPEG` for a photograph on a solid background, because it gives you the lightest file. Pick `PNG` when you want your background to stay transparent, since it is the only one of the three that both keeps transparency and is accepted everywhere. Pick `WEBP` when you want a photograph lighter than a `JPEG` and you know where your file is going, because it is the one format an integration can reject.

On a single picture you do not get `JPEG` while transparency is being kept. If you want a `JPEG` out of a cutout, turn `Background` on first and give that transparency a color behind it.

### Optimizing several pictures at once

Checking two or more cards and clicking `Optimize` in the bar runs one set of switches across all of them. The dialog looks almost the same. You get the same seven switches down the left, all off. The right side stacks one live preview per picture instead of showing you one large one. `Cancel` and `Start optimizing` are in the footer.

Four things work differently, because a mixed selection has no single answer.

| What | On one picture | On several |
| --- | --- | --- |
| Which switches you see | Only the ones that suit your picture | All seven, whatever you checked. `Upscale` needs at least one picture with room to grow |
| `Background` | Only on a cutout | Always, and it applies to every cutout in your run |
| `Format` | `JPEG` is missing while transparency is kept | `JPEG` is there, with a line warning you that transparent pictures come out on white |
| The size line | Appears for your picture | Appears for most of them, and is left off a picture nothing would change |

A switch that does not suit a particular picture simply passes it by. Turn on `Remove background` over a selection where some files are already cutouts, and those come through untouched.

Each preview in the stack has its own `Show original` switch and its own wand for `Refine`, so you can correct one cutout without leaving the dialog. Each also has a ✕ that drops that picture from your run. A line above the stack counts what you have dropped and gives you `Restore` to bring them back. Your last remaining picture has no ✕, so you cannot empty your run.

`Upscale` is the one setting the stack cannot preview. Each frame is shown at the size your factor will produce, with the pixels you have today inside it, and the real redraw happens when your run starts.

Click `Start optimizing` and the stack is replaced by a progress list. `Cancel` becomes `Stop`, which drops everything still waiting. A picture already being written finishes. When it settles, three counters read `Succeeded`, `Skipped` and `Failed`, and `Close` is the only button left.

One picture failing never stops the others. Every picture that succeeded is swapped in place for its own new file, and your originals stay in the library.

### Limits

| What | Limit |
| --- | --- |
| Your new file | 25 MB |
| Longest side after `Upscale` | 8000 pixels |
| Enlargement factors | 2, 4 and 8 |
| Width or height in `Custom` | 16 to 6000 pixels |
| Frame after a shape or padding | 6000 pixels |
| Padding | 50 percent |
| Clicks in `Refine` | 20 |
| File formats out | `JPEG`, `PNG` and `WEBP` |

### What the Optimizer cannot do

| You cannot | Do this instead |
| --- | --- |
| Crop a picture, or rotate one | Edit it outside the PIM and upload your result |
| Change your original in place | Delete the original once you are happy with the new file |
| Undo a finished run | Delete the new file from [your library](/pim/assets#delete-a-file-for-good) |
| Name your file yourself | Rename it later from [your library](/pim/assets) |
| Type a shape of your own, like `3:2` | Use `Custom` and type the pixels |
| Get an `AVIF`, a `TIFF` or an `SVG` out | Use `JPEG`, `PNG` or `WEBP` |
| Run it on a schedule, or on every upload | Run it yourself, on the pictures you choose |
| Start a run over several from the `Assets` page | Check the cards inside a record instead |

## What your new file looks like

A run always writes you a second file, and that is what decides where you find your work after that.

**Your new file arrives in your asset library as a row of its own**, which you can preview, rename, or delete. It keeps the alt text of the picture you started from, so a description you wrote once follows your copy. Where else it goes depends on where you started, and the table of four places further up says which one is your case.

<Note>
  The same picture can be used on many products. Optimizing it from one product swaps it on that product only, and everywhere else keeps your original. To move the rest, open each one and swap it there.
</Note>

<AccordionGroup>
  <Accordion title="What your new file is called">
    Your name comes from the original file's own name, not from any display name you edited. You get `-optimized` on the end, and an extension matching your format, so `.jpg`, `.png` or `.webp`.

    A cutout also gets `-nobg` and an enlargement gets `-upscaled`, so `shoe.jpg` run through both comes out as `shoe-nobg-upscaled-optimized.png`. Running it through the Optimizer again does not stack a second `-optimized` on top.
  </Accordion>

  <Accordion title="Where your new file can go after that">
    Your format choice decides what an integration will take from you. `JPEG` and `PNG` are accepted everywhere the PIM sends pictures. `WEBP` is the one an integration can turn away, and a point of sale is the likeliest to do it.

    A picture that is rejected costs you nothing else. Your product still publishes and the rest of its pictures still go out. You get an orange warning on the product naming the format that did not fit. To see which accounts have a copy of each file, open [integrations](/pim/integrations).
  </Accordion>
</AccordionGroup>

## When something goes wrong

### Messages when you open the dialog

An orange banner at the top of your settings column tells you the picture you opened is not a normal one.

| Message | What to do |
| --- | --- |
| `Animated GIF: only the first frame will be kept. The output is a static image.` | Keep going if a still is what you wanted. You cannot keep the animation |
| `This format cannot be optimized (vector or non-raster source).` | Nothing here applies to your file, and `Optimize` stays gray |
| `The image pixels could not be read, so it cannot be optimized. Reload and try again.` | Reload the page and open your picture again |
| `Could not load the image` | Click `Retry` under the message |

### Messages while you work

These arrive as a small message in the corner of your screen.

| Message | What it means |
| --- | --- |
| `Could not remove the background` | Your cutout did not come back. The switch turns itself off and everything else you set is still there |
| `Could not upscale the image` | Your enlargement did not come back. Both `Upscale` and `Remove background` turn themselves off, and a cutout you already had is dropped |
| `No region was detected at that point` | Your `Refine` click found nothing under it and was thrown away |
| `The selected region covers most of the image. Undo if this is not what you wanted` | A `Restore` click probably caught the backdrop instead of your product. It is applied anyway, and `Undo` is right there |
| `Could not select the region` | Your `Refine` click did not come back. Try clicking somewhere else on the same area |
| `Point limit reached. Undo or reset to continue` | You have used all 20 of your clicks. `Undo` frees the last one and `Reset` frees them all |
| `The result exceeds the image upload size limit. Reduce the padding or choose an opaque background.` | Your file came out over 25 MB. Less padding, a smaller frame, or a `JPEG` will all bring it down |
| `Failed to optimize image` | Your file could not be written. Try again |

When a message ends with a colon, whatever follows it is the underlying reason, in English. It is there for you to quote rather than act on.

### Watching a run over several pictures

Each picture in your progress list has its own status.

| Status | What it means |
| --- | --- |
| `Queued` | Waiting its turn |
| `Analyzing` | Being read |
| `Upscaling` | Being redrawn larger |
| `Removing background` | Its cutout is being made |
| `Ready` | Read, and waiting its turn to be written |
| `Uploading` | Being written into your library |
| `Done` | Finished, with a new file |
| `Skipped` | Finished, with no new file |
| `Failed` | Finished, with no new file |

A skipped or failed picture shows its reason on the line underneath. `Nothing would change` means your switches would have produced the file you already have. `Format not supported` means it was an `SVG` or something else the Optimizer cannot read. A `GIF` is not skipped, and it comes out as a still.

Nothing is retried for you. Check the ones that did not make it and run them again.

## Where to go next

<Columns cols={2}>
  <Card title="Assets" icon="images" href="/pim/assets">
    The library your new file goes into, and how to rename or delete it there.
  </Card>

  <Card title="Products" icon="package" href="/pim/catalog/products">
    Where the `Primary` and `Gallery` groups are, and how a card gets into one.
  </Card>

  <Card title="Integrations" icon="plug" href="/pim/integrations">
    Which accounts have a copy of each file, and what each one accepted.
  </Card>

  <Card title="Imports" icon="upload" href="/pim/uploads/imports">
    Bringing images in by web address instead of uploading them one at a time.
  </Card>
</Columns>
