Get Started
How to add delivery costs to Zbozi.cz and Heureka feeds - AdTribes
  1. Home
  2. Knowledge Base
  3. Shipping
  4. How to add delivery costs to Zbozi.cz and Heureka feeds

How to add delivery costs to Zbozi.cz and Heureka feeds

Zbozi.cz and Heureka.cz both require delivery cost data in a specific XML format: not just a flat price, but a structured block that includes a recognized carrier ID, a standard delivery price, and optionally a cash-on-delivery price. Without this structure, your feed will fail validation or list products without any delivery information.

Product Feed Pro builds this XML structure automatically. It just needs your WooCommerce shipping zone to be named after a recognized Czech carrier so it can extract the right carrier ID.

Prerequisites

  1. Product Feed Pro 13.5.7 or later, installed and active
  2. A Zbozi.cz, Heureka.cz, or Heureka.sk feed already created in Product Feed → Manage feeds
  3. WooCommerce shipping zones configured (WooCommerce → Settings → Shipping)

How it works

When the plugin generates your Zbozi.cz or Heureka.cz feed, it reads your WooCommerce shipping zones and builds a service name for each zone from three parts: the zone name, the shipping method label, and the country code. It then checks whether that service name contains a recognized Czech carrier ID, like ZASILKOVNA, DPD, GLS, or CESKA_POSTA. If it finds a match, it outputs the correct <DELIVERY_ID> in the feed. If no match is found, the plugin uses the first word of the service name (usually the first word of your zone name) as DELIVERY_ID, which Zbozi.cz and Heureka won’t recognize. That’s why your shipping zone name must match one of the recognized carrier IDs listed below.

Step 1: Name your shipping zone after a carrier

Go to WooCommerce → Settings → Shipping and open the shipping zone you use for Czech deliveries. Rename the zone to one of the recognized carrier IDs below, using the exact spelling, all uppercase:

Carrier IDCarrier
ZASILKOVNAZásilkovna (pickup points)
ZASILKOVNA_NA_ADRESUZásilkovna (home delivery)
CESKA_POSTAČeská pošta
CESKA_POSTA_BALIKOVNAČeská pošta: Balíkovna
CESKA_POSTA_NA_POSTUČeská pošta: na poštu
DPDDPD
DPD_PICKUPDPD Pickup
GLSGLS
GLS_PARCELSHOPGLS ParcelShop
PPLPPL
PPL_PARCELSHOPPPL ParcelShop
WEDO_HOMEWeDo home delivery
WEDO_ULOZENKAWeDo Uloženka
DHLDHL
FEDEXFedEx
UPSUPS
TNTTNT
TOPTRANSToptrans
TOPTRANS_DEPOToptrans Depo
GEISGeis
GEIS_POINTGeis Point
HDSHDS
FOFRFofr
DB_SCHENKERDB Schenker
DSVDSV
GEBRUDER_WEISSGebrüder Weiss
MESSENGERMessenger
RABEN_LOGISTICSRaben Logistics
RHENUSRhenus
VLASTNI_PREPRAVAOwn delivery
VLASTNI_VYDEJNI_MISTAOwn pickup points

The zone name must match the carrier ID exactly: same spelling, all uppercase. A mismatch means the plugin can’t identify the carrier, and DELIVERY_ID won’t output correctly.

WooCommerce shipping zone renamed to ZASILKOVNA

Step 2: Add your shipping methods to the zone

Inside the zone, add your shipping methods in this order:

  1. Flat rate: this becomes the standard DELIVERY_PRICE in your feed
  2. Local pickup (optional): as the second method in the zone, this becomes the DELIVERY_PRICE_COD (cash-on-delivery price)

The plugin uses the first method in the zone as DELIVERY_PRICE and the second method, whatever its type, as DELIVERY_PRICE_COD. So keep only Flat rate, and optionally Local pickup, in your Czech zone. If you add another method such as free shipping, its price becomes the cash-on-delivery price. If you don’t offer cash-on-delivery, skip the local pickup method and the feed leaves DELIVERY_PRICE_COD out.

Set the flat rate cost to match what you charge for delivery to Czech customers. Save the zone when done.

Showing flat rate and local pickup methods inside the ZASILKOVNA zone

If your checkout page uses the WooCommerce Checkout block (WooCommerce 8.3+), local pickup is configured separately from shipping zones, at WooCommerce → Settings → Shipping → Local pickup, not as a method inside the zone. In that case: 1. Enable local pickup on that screen 2. Add at least one pickup location with its country set to the Czech Republic 3. Set the price for that pickup location The plugin reads pickup locations configured this way the same as a zone-based Local pickup method, and still outputs DELIVERY_PRICE_COD for them. Keep your shipping zone limited to a single Flat rate method for Czech deliveries, and don’t add a second zone that covers the Czech Republic. The plugin adds pickup locations after all zone methods, so the pickup location supplies the cash-on-delivery price only when exactly one method comes before it.

WooCommerce Local pickup settings with local pickup enabled, a 49 pickup cost and a Prague showroom pickup location in the Czech Republic

Step 3: Map the DELIVERY field in your feed

Open your Zbozi.cz, Heureka.cz, or Heureka.sk feed in Product Feed → Manage feeds, then open the Field Mapping tab.

Find the DELIVERY row and confirm it’s mapped to Shipping in the Source from WooCommerce column. The plugin adds this mapping by default. You shouldn’t need to change it unless you’ve removed it.

The Field Mapping tab for a Zbozi.cz feed, with the DELIVERY row mapped to Shipping in the Source from WooCommerce column

Step 4: Refresh the feed

Save your feed settings and run a manual refresh from Product Feed → Manage feeds. Once the feed generates, each product in your Zbozi.cz, Heureka.cz, or Heureka.sk XML will include a <DELIVERY> block like this:

<DELIVERY>
  <DELIVERY_ID>ZASILKOVNA</DELIVERY_ID>
  <DELIVERY_PRICE>79</DELIVERY_PRICE>
  <DELIVERY_PRICE_COD>99</DELIVERY_PRICE_COD>
</DELIVERY>

DELIVERY_PRICE and DELIVERY_PRICE_COD are output as plain numbers, with the EUR or CZK label stripped, since that’s the format Zbozi.cz and Heureka expect.

Troubleshooting

The DELIVERY block is missing or empty in my feed
Check that the DELIVERY field in the Field Mapping tab is mapped to Shipping. If the mapping was removed, add it back and save. Also confirm your WooCommerce shipping zone has at least one shipping method configured, then regenerate the feed. If <DELIVERY_ID> or <DELIVERY_PRICE> is still missing after that, double check your shipping zone name matches one of the recognized carrier IDs in Step 1.
DELIVERY_ID shows an unexpected value
Your shipping zone name doesn’t match a recognized carrier ID. Go back to WooCommerce → Settings → Shipping, open the zone, and rename it to one of the carrier IDs from the table in Step 1. Use the exact uppercase spelling.
DELIVERY_PRICE shows the wrong amount
The flat rate cost in your shipping zone is the source of this price. Open the zone, select the Flat rate method, and update the cost. Regenerate the feed after saving.
DELIVERY_PRICE_COD is missing
This value comes from the second shipping method the plugin finds for the feed country: a Local pickup method inside the shipping zone, or, if you use the WooCommerce Checkout block, a pickup location configured at WooCommerce → Settings → Shipping → Local pickup. If you have neither, add one and set its cost. If you have one, go to Product Feed → Settings and turn off Remove the local pickup shipping zone from your feed (Google Shopping / Facebook only). Despite its label, this setting also drops both kinds of pickup from Zbozi.cz and Heureka feeds. If you don’t offer cash-on-delivery, you can leave it out. Zbozi.cz and Heureka.cz treat it as optional.
How do I add multiple carriers?
You can’t. The feed carries one <DELIVERY> block per product, built from the first shipping zone that covers the feed country. A second carrier zone for the same country doesn’t add a second block. Its flat rate becomes the DELIVERY_PRICE_COD instead, so keep one carrier zone per country.

FAQ

Does this work for both Zbozi.cz and Heureka.cz?
Yes. The same zone naming and field mapping setup works for both channels.
Does this work for Heureka.sk?
Yes. The same shipping zone naming and field mapping setup produces a structured <DELIVERY> block for Heureka.sk feeds too.
Can I use a static value for DELIVERY_ID instead of a shipping zone?
No. The plugin builds the <DELIVERY> block from your shipping data. A static value such as ZASILKOVNA carries no shipping data, so the feed outputs an empty <DELIVERY/>. Keep the DELIVERY field mapped to Shipping and set the carrier through the zone name.
What if I don’t see a carrier ID for my carrier?
Use VLASTNI_PREPRAVA (own delivery) or VLASTNI_VYDEJNI_MISTA (own pickup points) as fallbacks. Both are accepted by Zbozi.cz and Heureka.cz.

Need more help?

If you’re on Product Feed Elite, open a support ticket.

If you’re on Product Feed Pro (free), post your question at the WordPress.org support forum.

Was this article helpful?

Related Articles

Complete Your Purchase
AdTribes WooCommerce Product Feed

The best WooCommerce product feed plugin

  • AdTribes Pty Ltd
    ABN: 40 675 636 816
Product
Resources & Info
Partner Sites
Rymera