OpenCart product feeds
The file the channels read, kept current
Create a feed for one channel, one store and one language, say which of your own values go into each field the channel asks for, place your categories against Google's taxonomy once, and choose how often it regenerates. Google and Meta fetch it from a URL; Microsoft Advertising takes a file you download. What every field will produce for your own products is on the screen before you save, rather than in a rejection notice three days later.
The channel’s own fields, against your own values
Each channel’s published field set, mapped one field at a time to a value your catalogue already holds, with a fallback literal for the products where that value is empty. A title the channel will cut short, a price its format refuses or a value it ignores is marked at the moment you map it. What the mapping produces for your own first three products is on the screen before you save, resolved by the same code that writes the file.
Google’s taxonomy, placed once
Put your categories against Google’s own taxonomy (bundled with the extension, so no key, no account and no network call) in one mapping every feed on that store and language reads. Unplaced categories inherit the nearest placed one above them, so mapping your top level produces a valid feed immediately, and a category Google has since retired sends the nearest live one above it instead of one Google no longer has. It proposes from your category names and applies none of it until you accept.
A bad night does not delist your catalogue
A run that fails leaves the previous feed serving byte for byte. A product that cannot be represented is left out and counted rather than taking the whole run down with it. Feeds are built in slices so a catalogue of any size finishes instead of meeting your host’s time limit, and pressing Regenerate again joins the run already going rather than starting a second one.
Delivered the way each channel takes it
Google and Meta are given a tokenised URL, served from outside the web root, answering a conditional request with a 304 rather than the whole file when nothing has changed. A new URL is one click away. Microsoft Advertising takes a file, so that feed gets a Download button, as can any feed for any channel. Regeneration runs on OpenCart’s own scheduler with nothing to install on the server: hourly, daily, weekly or monthly, which are the four cycles it understands, and the command line for exact times.
Whatever watches your store can read the runs
Product Feed answers an HTTP API (v1 today), so the system you already watch your store with can ask whether last night’s feed generated and what it dropped, instead of waiting for somebody to open the feed list: every feed and every run as JSON, what a run wrote, which field threw each product back, and a run nobody came back to reading as stalled. It only ever reads: nothing creates a feed through it and nothing regenerates one. It authenticates as an OpenCart API user you create yourself, answers only over HTTPS, and is off until you switch it on. A feed’s URL token is deliberately not readable through it. What will not change about it, and for how long, is written down.
Translation published, not claimed
Which of our strings a named native speaker has actually read is published per extension and per language, and anything unreviewed ships as English rather than as a blank or a raw identifier.
Everything it refuses to do sits on one page. Limits and guarantees says that nothing is pushed to a channel (there is no channel integration and no FTP upload, and Product Feed never holds a credential of yours), that there are three channels and no way to add a fourth, because a channel's fields and formats come from its own published specification, that it is one row per product and never one per variant, so a product with three sizes is one item, that the price in the file is your catalogue price with no tax added and no currency converted, that filtering is four include-lists and not a rule engine, that hourly is the finest cycle there is and a schedule is only as exact as your store's cron, that nothing is emailed when a run fails (it is on the feed list and in your store's error log), that a feed URL is not a login, since it hands your catalogue's public product data to whoever holds the token, and that removing the extension leaves its tables and its generated files where they are rather than deleting your data. Worth reading before you buy.
Questions people ask before buying
-
How do I get an OpenCart catalogue into Google Merchant Center?
- Product Feed builds the file each channel asks for (one channel, one store, one language) from your own values placed against that channel's own fields, and regenerates it on the schedule you choose. Google and Meta fetch it from a URL; Microsoft Advertising takes a file you download.
-
What happens if a feed run fails overnight?
- The file that is already published stays where it is. A bad night does not delist your catalogue, and whatever watches your store can read the runs.
-
Does it work with OpenCart 4?
- Every Kyvero extension is built for OpenCart 4.x. Each one declares the lowest release it will install on and refuses to install below it, and its documentation lists the releases a full install-and-upgrade pass was run against.
-
Do I get the source code?
- Yes. An extension is PHP on your own server: readable, not obfuscated, and with no remote licence check to fail. Your copy is yours to modify and to keep backed up.
-
Who answers when something goes wrong?
- A developer, usually the one who wrote the extension. There are two official routes, the support portal and the support address, and both arrive in the same place.
Also for OpenCart
Merchants who run this usually want one of these
Import/export
Bulk imports for OpenCart that show you every change before they make it, and can be rolled back afterwards.
What it does OpenCart 4.xProduct Search
Finds more of the right products: every word has to match, brands and departments count, synonyms and misspellings are forgiven, and you pin what leads. It also reports what shoppers typed and what came back empty.
What it does