WooCommerce

Importing products into WooCommerce by URL: the complete guide

To send a product from Sellivo to your WooCommerce shop, you save three details once: the store URL (it has to start with https://), a Consumer Key and a Consumer Secret, which you generate in WooCommerce under Settings → Advanced → REST API with the Read/Write permission. After that, every imported product goes out with a single click as a background job — with images and, where they exist, as a variable product with all its variations. Pushing again updates the existing product instead of putting a second one next to it.

01

Connect WooCommerce — no install, no app review

WooCommerce is the easiest channel in Sellivo. There is no installation process, no app review and no approval you have to wait for. You save two credentials once, and from then on every product can be pushed with a single click.

The channel is deliberately built as an additional channel. It complements the Shopify push, but it doesn't cover every detail of it. What's missing is spelled out openly further down in the section on limits — read it before your first push so you're not waiting for an inventory sync that doesn't exist for WooCommerce.

02

Connecting step by step: three details

You set the connection up in your shop profile under “WooCommerce connection”. If you work in the embedded Shopify app, you'll find the same card there under the Settings tab.

First, the store URL: the address of your WooCommerce shop, for example https://my-shop.com. It has to start with https://. An http:// address is rejected, and for a concrete reason: the credentials travel with every request as basic auth and would go over an unencrypted connection in plain text.

Second and third, the Consumer Key (starts with ck_) and the Consumer Secret (starts with cs_). You generate both in your shop under WooCommerce → Settings → Advanced → REST API. What matters there is the Read/Write permission — with read-only access Sellivo can't create products.

When you save, Sellivo also checks that the store URL points to a real, publicly reachable address; internal or local addresses are turned away. The credentials are stored encrypted (AES-256-GCM) and never handed back to the browser. Once you're connected, all you see is the store URL and a disconnect button.

If you get an error while connecting, it's almost always one of three things: http instead of https, a typo in the URL, or a key with read-only permission.

03

Push a product and trace what happened

The push runs as a background job. In the embedded Shopify app you'll find the “Publish to WooCommerce as well” button after the import; from the web app you start the push per product.

If the channel isn't connected or the configuration is incomplete, nothing is sent at all. Sellivo writes a log entry with the status “blocked” instead and names the reason. So there is no half push after which you have to look through your shop to see what actually arrived.

Every attempt — successful or not — ends up in the product's push history, together with the number of images and variations transferred and a note on whether it was a create or an update. That history is the most reliable place to make sense of a failure.

04

What arrives in your WooCommerce shop

Sellivo first builds a channel-neutral model from your product and then maps it onto the WooCommerce REST API. What gets transferred is the title, the description as HTML, the SEO description as the short description, price and SKU as well as the images and the variant options. The exact mapping is in the table below.

The product is always created with the status publish — there is currently no draft mode for WooCommerce. If you want to review a product before it goes live, do that in Sellivo before you start the push.

Images come with one quirk worth knowing: WooCommerce downloads images itself by URL. That's why Sellivo only ever passes on publicly reachable addresses. AI images, which internally exist as a data object, are made available through a public Sellivo address of the form https://www.sellivo.app/api/media/<id> so your shop can fetch them. Original images and approved AI images are sent along; unconfirmed AI drafts stay out.

05

Variable products arrive with their variations

This is where WooCommerce differs technically from Shopify, and Sellivo takes the work off your hands. First the system works out the real variant axes: only the options that actually have more than one value. If your product comes in three colours but all of them in size M, then “colour” is an axis and “size” isn't. That's intended, because otherwise a variation would be pinned to a characteristic that is the same for all of them.

If there is at least one axis, Sellivo creates the product as a variable product and enters the axes as visible variation attributes. The price then moves to the variations instead of the parent product — that's how WooCommerce expects it. The individual variations are added in a second step, each with its own price and SKU. That takes separate calls, because the WooCommerce REST API can't create a product and its variations in one go.

If there is no axis, you get a simple product with price and SKU on the product itself. The SKU deliberately sits either on the simple product or on the variations, never on both — in WooCommerce an SKU may only appear once in the shop.

Two kinds of variations are skipped: those with an incomplete attribute combination and those that would repeat a combination a second time. WooCommerce rejects duplicates anyway. If only some of the variations make it through, Sellivo reports the push as successful with a note like “2 of 6 variations failed”. If not a single variation makes it, the push counts as failed even though the product was already created — so you know there's an incomplete product sitting in your shop.

06

Pushing again means updating, not duplicating

Sellivo remembers the WooCommerce product ID from the last successful push. On the next push that ID is sent along and the adapter updates the existing product instead of creating a new one. Without that logic you'd have the same product in your shop three times after three pushes.

When a variable product is updated, the existing variations are removed first and then created again. That is deliberate too: WooCommerce would otherwise simply carry the old variations on, and after a change to your range you'd have sizes or colours in your shop that don't exist any more. If Sellivo can't delete the old variations, the push still counts as successful, but with the note “product updated, old variations not removed”.

If an update fails, Sellivo keeps the known product ID in the log. So the next attempt updates again and doesn't create a second product.

07

If you deleted the product in the target shop

This is the case many systems get wrong. Sellivo handles it like this: the update attempt comes up empty, WooCommerce answers with “not found” (HTTP 404). Instead of failing on that dead ID forever, Sellivo creates the product once more and then transfers the variations as it would on a first push. So you get a working product in your shop again, with a new WooCommerce ID that is used for further updates from then on.

This applies explicitly to “not found” only. Other errors — wrong credentials, expired permissions, server errors — are reported as a failure and not papered over by a silent re-create.

08

Limits you should know about beforehand

Because WooCommerce is built as an additional channel, some things that exist for Shopify don't exist here. There is no price and inventory sync: the daily comparison with the source page writes price changes to Shopify only. If your purchase price changes, you adjust the product in Sellivo and push it to WooCommerce again.

There is no quality gate either. Unlike the Shopify push, Sellivo doesn't check before the WooCommerce push whether the quality review was passed. Run it yourself beforehand if that matters to you.

Stock levels, category assignment and tags are not transferred — you maintain those in WooCommerce. Also left out are the compare-at price and the GTIN, meaning struck-through prices and barcodes, as well as the metafields with source URL and compliance values that go along with the Shopify push. Catalogue protection and CSV export don't exist for this channel.

Per Sellivo shop you can store exactly one WooCommerce store. If you disconnect, the connection is set to “disconnected” and further pushes are blocked. The products you've already transferred stay untouched in WooCommerce.

Sellivo fieldWooCommerce fieldNote
TitlenameAlways transferred.
Description (HTML)descriptionFormatting is preserved.
SEO descriptionshort_descriptionAppears in WooCommerce as the short description.
Priceregular_priceSimple products only; on a variable product the price sits on the variation.
SKUskuEither on the simple product or on the variations, never on both.
Imagesimages (source and alt text)Publicly reachable URLs only; approved AI images via /api/media/<id>.
Variant optionsattributesOnly options with more than one value become a variation axis.
Stock, categories, tagsNot transferred; you maintain these in WooCommerce.
Compare-at price and GTINStruck-through prices and barcodes don't come along.
Metafields (source URL, compliance)Shopify push only, not WooCommerce.

On a WooCommerce push the product status is always publish — there is currently no draft mode for this channel.

FAQ

Do I need an extra plugin for WooCommerce?

No. Sellivo uses the REST API that already ships with WooCommerce. All you do there is generate a key under WooCommerce → Settings → Advanced → REST API and enter the Consumer Key and Consumer Secret in Sellivo.

Why is my store URL being rejected?

The URL has to start with https:// — over http the credentials would travel as basic auth in plain text. Sellivo also checks that the address is publicly reachable; internal or local addresses are turned away. The third common reason is a key with read-only permission instead of Read/Write.

Does every push create a new product in my shop?

No. Sellivo remembers the WooCommerce product ID from the last successful push and uses it to update the existing product. If you deleted it in WooCommerce, Sellivo recognises that from the “not found” answer and creates it once more.

Are stock levels and prices synced continuously?

No. The daily comparison with the source page writes price changes to Shopify only, and the WooCommerce channel doesn't transfer stock levels at all. If something changes, you adjust the product in Sellivo and push again.

Do colour and size variations come along into the shop?

Yes. If your product has at least one option with several values, Sellivo creates it as a variable product and adds the variations in a second step — each with price and SKU. Options that have the same value for every variation are deliberately not turned into a variant axis.

Can I connect several WooCommerce shops?

Per Sellivo shop you can store exactly one WooCommerce store. If you disconnect, further pushes are blocked; the products already transferred stay untouched in WooCommerce.

Are my AI images transferred too?

Approved AI images yes, unconfirmed drafts no. Because WooCommerce downloads images itself by URL, Sellivo makes AI images available through a public address of the form https://www.sellivo.app/api/media/<id>.

From product link straight into your WooCommerce shop

Save the store URL, Consumer Key and Consumer Secret once — after that every product goes out with a click, with images and variations.

Try it free
Import Products into WooCommerce by URL · Sellivo