Saleor gives headless teams a clean GraphQL model with channels, variants, and metadata. Photopilot connects to that setup by retrieving products per channel, handling the image and text work, and preparing the result for your own import or app. This lets the development team stay in control of what is written to Saleor, while the content team can keep working independently.
01
What Photopilot retrieves via GraphQL
With one GraphQL query per run, Photopilot reads the products from a channel, including name, slug, externalReference, metadata, media, and variants. For each variant, SKU, name, inventory, and custom metadata are included. We directly import material, laundry symbols, or product group details that you maintain in metadata. Thanks to a filter on updatedAt, only updated products are imported.
02
Matching by SKU, slug, and EAN in metadata
Saleor does not have a fixed EAN field, so Photopilot looks for an EAN, GTIN, or barcode in the variant or product metadata. We also match on SKU, slug, and externalReference, so a link to an ERP number continues to work as well. Images from suppliers and the photo studio are assigned to the correct variant and color. A custom product number in metadata can be used as the primary key if that is how you work.
03
What Photopilot does with the content
Supplier images and packshots are cut out, cropped, and placed on a fixed background according to your style rules. Where a model photo is missing, Photopilot creates AI model photos or a ghost mannequin, and Iris contributes as an AI creative director for campaign images. Recognized materials and care symbols form the basis for product texts, SEO texts, and alt texts. The content team approves each product before it is included in the delivery.
04
Back to Saleor
Approved images and copy are retrieved by your Saleor app or integration service via the Photopilot API, or they are ready on FTP/SFTP and in the Webshop Excel. The media order is fixed per product and each image has its own alt text, so it can be created directly as product media. Copy and SEO fields are included per language. You decide when the import runs, for example just before a collection launch.
05
Channels and inventory by channel
Saleor shops often run multiple channels side by side, such as a webshop per country or a separate B2B channel. Photopilot reads each channel, including the available inventory per variant, so you can work on products that can actually be sold first. Image rules can differ by channel. In the overview, you can see which products are still missing images or text for each channel.
06
Connect without additional development
You create an app in the Saleor dashboard with a token that has read access to products, and share the GraphQL URL and channel slug. We then determine which metadata keys contain EAN, color, and material, and how the output is retrieved. The first run uses your own products right away. After that, Photopilot reads updates every two hours by default.
Saleor at a glance
What is exchanged
Photopilot uses Saleor's GraphQL API to read products, variants, media, and inventory by channel. Photopilot does not write to Saleor.
How often
Every two hours by default. Through GraphQL, Photopilot requests only the products updated since the previous run.
What you provide
The GraphQL URL of your Saleor environment and an app token with read permissions for products.
Good to know
The integration has been tested against a real Saleor installation in our test lab.
Let source data flow through to sales-ready product pages
300.000+articles processed
9,5M+supplier images indexed
~3.200photos automatically edited per day
FAQ
Frequently Asked Questions
How do I connect Saleor to Photopilot?
In the Saleor dashboard, create an app with a token that has read access to products. With the GraphQL URL and channel slug, Photopilot then reads products, variants, media, and inventory.
Where does Photopilot get the EAN from in Saleor?
From the metadata of the variant or product, under a key such as ean, gtin, or barcode. Photopilot also matches on SKU, slug, and externalReference.
Can Photopilot automatically add product media to Saleor?
Photopilot delivers approved images with a fixed order and alt text via the API or FTP/SFTP. Your Saleor app or import then adds them as product media to the correct product.
Does Photopilot work with multiple channels in Saleor?
Yes. Photopilot reads products and inventory for each channel, and image rules can differ by channel. For example, a B2B channel can use a different crop than the consumer shop.
Does Photopilot read materials and care instructions from Saleor metadata?
Yes, if you maintain them in metadata, we use them directly. If they are missing, Photopilot recognizes materials and care symbols from the image and label.
Do I need to build a Saleor app for Photopilot myself?
For importing, an app with a token is enough; no custom code is needed. To write the data back, your existing import or integration uses Photopilot’s standard delivery.
Can I review content before it goes into Saleor?
Yes. Everything is reviewed in Photopilot first, and only approved products are included in the delivery. You can see which images and text are new for each product.
What if a Saleor product has no supplier images?
It is then listed in the missing images overview. Based on a simple product photo, Photopilot creates a packshot, ghost mannequin, or AI model photos, which you approve first.
Does Photopilot create SEO copy for Saleor products?
Yes, Photopilot writes product copy, SEO titles and descriptions, and alt text for each language. They are delivered per product, ready for the matching fields in Saleor.
How often does Photopilot read from Saleor?
Every two hours by default, with only the products updated in Saleor.
What does Photopilot need to connect Saleor?
The GraphQL URL and an app token with read permissions for products.
Does the integration support channel-specific stock and content?
Yes, variants, media, and stock per channel are imported, so images and text are ready per channel.
What if you also run an ERP or POS system alongside Saleor?
Then we make the source order explicit, so it is clear which system leads for which fields.