Description
BalticXML is a lightweight WooCommerce extension that exports your product catalogue as XML feeds compatible with three Latvian price comparison engines:
- salidzini.lv – official spec
- kurpirkt.lv – official spec
- ceno.lv – official spec
All three feeds are generated and served from the same plugin at separate URLs, for example:
https://yoursite.com/salidzini-feed.xmlhttps://yoursite.com/kurpirkt-feed.xmlhttps://yoursite.com/ceno-feed.xml
Each feed is cached on disk for fast delivery and regenerated automatically via WP-Cron.
Features
- Three independent XML feeds (salidzini.lv, kurpirkt.lv, ceno.lv) at their own URLs
- Per-format cache files and a single shared WP-Cron schedule
- Manual “Regenerate Feed Now” button rebuilds all feeds at once
- Includes simple, variable (per-variation) and external products
- Full category breadcrumb path (
Parent > Child > Subchild) - Automatic brand / manufacturer detection from common taxonomies and attributes
- Automatic EAN/GTIN detection from common meta keys
- Out-of-stock filter
- Customizable feed slug per portal
- HPOS (High-Performance Order Storage) compatible
- Translation ready
Feed Structures
salidzini.lv:
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<name><![CDATA[Brand Model 12345]]></name>
<link>https://yoursite.com/product/...</link>
<price>99.99</price>
<category_full><![CDATA[Parent > Child]]></category_full>
<category_link>https://yoursite.com/category/...</category_link>
<image>https://yoursite.com/wp-content/uploads/...</image>
<in_stock>5</in_stock>
<brand><![CDATA[Brand]]></brand>
<model><![CDATA[Model X]]></model>
<color><![CDATA[Black]]></color>
<mpn>ABC-123</mpn>
<ean>1234567890123</ean>
</product>
</products>
kurpirkt.lv:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item>
<name>Apple iPhone 13 PRO 512GB black</name>
<link>https://yoursite.com/product/...</link>
<price>1200.59</price>
<image>https://yoursite.com/wp-content/uploads/...</image>
<manufacturer>Apple</manufacturer>
<category>Mobilie telefoni</category>
<category_full>Sakaru līdzekļi > Mobilie telefoni</category_full>
<category_link>https://yoursite.com/category/...</category_link>
<in_stock>5</in_stock>
<delivery_cost_riga>2.25</delivery_cost_riga>
<used>0</used>
</item>
</root>
ceno.lv:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item>
<name>Huawei P40 Pro Melns</name>
<link>https://yoursite.com/product/...</link>
<price>849.99</price>
<price_sale>799.99</price_sale>
<image>https://yoursite.com/wp-content/uploads/...</image>
<manufacturer>Huawei</manufacturer>
<model>P40 pro</model>
<category>Mobilie telefoni</category>
<category_full>Telefoni-plansetdatori > Mobilie telefoni</category_full>
<category_link>https://yoursite.com/category/...</category_link>
<in_stock>12</in_stock>
<ean>6901443378944</ean>
<used>0</used>
<delivery_cost_riga>2.99</delivery_cost_riga>
<delivery_latvija>5.99</delivery_latvija>
<delivery_latvijas_pasts>1</delivery_latvijas_pasts>
<delivery_omniva>1.50</delivery_omniva>
<delivery_days_riga>4</delivery_days_riga>
<delivery_days_latvija>6</delivery_days_latvija>
</item>
</root>
Installation
Automatic Installation
- Log in to your WordPress admin panel
- Navigate to Plugins > Add New
- Search for “BalticXML”
- Click “Install Now” and then “Activate”
Manual Installation
- Download the plugin ZIP file
- Go to Plugins > Add New > Upload Plugin
- Upload the ZIP file and click “Install Now”
- Activate the plugin
After Installation
- Make sure WooCommerce is installed and active
- Go to BalticXML in the admin menu
- Confirm the feed slugs and copy each feed URL
- Click “Regenerate Feed Now” to build the cache for the first time
- Submit each URL to the corresponding price comparison site
FAQ
-
What URLs do I submit?
-
Each portal has its own URL, all shown on the BalticXML settings page:
- salidzini.lv ->
https://yoursite.com/salidzini-feed.xml(default) - kurpirkt.lv ->
https://yoursite.com/kurpirkt-feed.xml(default) - ceno.lv ->
https://yoursite.com/ceno-feed.xml(default; email it to info@ceno.lv after configuring)
All slugs are configurable.
- salidzini.lv ->
-
How often are the feeds updated?
-
All feeds are regenerated together on the same WP-Cron schedule. Default is daily; you can change it (hourly, every 6 hours, twice daily, daily, or disabled) in BalticXML settings.
-
Are out-of-stock products included?
-
By default they are excluded from all feeds. You can change this in BalticXML settings.
-
Are product variations included?
-
Yes – by default each variation is exported as a separate item in every feed, with the variation attributes appended to the name. You can disable this in settings.
-
How is the brand / manufacturer detected?
-
The plugin checks the
product_brand,pwb-brandandpa_brandtaxonomies, and thebrandproduct attribute, in that order. The same source feeds<brand>(salidzini.lv) and<manufacturer>(kurpirkt.lv, ceno.lv). -
How is the EAN/GTIN detected?
-
The plugin checks the meta keys
_ean,_gtin,_global_unique_id,_wc_gla_gtinand theeanproduct attribute. (Used by salidzini.lv and ceno.lv. kurpirkt.lv does not require this field.) -
How do I set the salidzini.lv-specific fields (`model`, `color`, `mpn`, `adult`, `over_the_counter_medicine`)?
-
Use the matching product attributes (
model,color/colour,mpn,adult,over_the_counter_medicine) or the corresponding meta keys (_model,_color,_mpn,_adult,_over_the_counter_medicine/_otc). They are all optional – emitted only when set. -
How do I set the kurpirkt.lv-specific fields (`delivery_cost_riga`, `used`)?
-
delivery_cost_riga– set the meta key_delivery_cost_rigaor add adelivery_cost_rigaproduct attribute (numeric).used– set the meta key_usedto1or add ausedproduct attribute set to1/yes/true.
-
How do I set the ceno.lv delivery and used fields?
-
For each delivery field, set either a meta key prefixed with
_or a product attribute (without the prefix):delivery_cost_riga,delivery_latvija– max delivery cost in Riga / Latvia (decimal)delivery_latvijas_pasts,delivery_dpd_paku_bode,delivery_pasta_stacija,delivery_omniva,delivery_circlek,delivery_venipak– per-carrier delivery cost (decimal)delivery_days_riga,delivery_days_latvija– max delivery days in Riga / Latvia (integer)used– set to1for used / refurbished products
All ceno.lv fields are optional – they are emitted only when a numeric/non-empty value is configured.
-
Is it translation ready?
-
Yes. Text domain is
balticxml.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“BalticXML” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “BalticXML” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial release
- salidzini.lv compatible XML feed (
<products>/<product>schema) - kurpirkt.lv compatible XML feed (
<root>/<item>schema) - ceno.lv compatible XML feed (
<root>/<item>schema with extended delivery fields) - Per-format cache files with shared WP-Cron regeneration
- Simple, variable and external product support
- Brand / manufacturer and EAN auto-detection
- Customizable feed slugs per portal
- HPOS compatible
- Translation ready

