=== Heureka ===
Contributors: heureka
Tags: WooCommerce
Requires at least: 6.4
Tested up to: 6.8
Stable tag: 2.0.1
Requires PHP: 8.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Official Heureka integration for WooCommerce

== Description ==

Official integration of Heureka services for WooCommerce.

Supported services:

* XML feed
* Availability XML feed
* Verified by Customers
* Heureka Marketplace

Don't know what to do? Is something not working? Contact us at info@heureka.cz.

== Installation ==

This section describes how to install the plugin and get it working.

1. Upload the plugin files to the `/wp-content/plugins/heureka` directory, or install the plugin through the WordPress plugins screen directly.
1. Activate the plugin through the 'Plugins' screen in WordPress
1. Use the WooCommerce -> Settings -> Heureka screen to configure the plugin

== Frequently Asked Questions ==


== Screenshots ==


== Changelog ==
= 2.0.1 =
* Fixed: Saving a product no longer ends with an error — the table for custom Heureka product IDs is now created correctly (affected sites are repaired automatically)

= 2.0.0 =

**New**
* Polylang & WPML — different language per CZ/SK feed
* Bulk category mapping (one Heureka category to many WC categories at once)
* "Update Heureka categories" button with last-update timestamp
* Heureka admin branding & UI refresh
* Verified by Customers — block checkout support, Opt-In mode, order notes & meta
* Conversion tracking — product detail page support, coupons reported as separate items
* Marketplace — pickup-point identifier, eLicence flag, online payment type and payment date stored on the order
* Marketplace — tracking URL, shipping note and expected delivery sent with order status
* Per-product "Bazaar" (second-hand) toggle
* Per-variation overrides — ISBN, delivery time
* Variations with "any" attributes — optional feed expansion into separate items per combination, with full tracking, Verified by Customers and Marketplace support
* Marketplace — shop can dynamically filter shipping/payment methods based on cart contents

**Improved**
* Category search — diacritics-insensitive, Czech-inflection-friendly, multi-word
* Delivery methods updated to current Heureka CZ/SK list
* HEUREKA_CPC validation — accepts comma, dot and spaces as decimals
* Long descriptions, warranty and voucher texts auto-trimmed to Heureka limits
* Faster feed generation for large catalogs
* Conversion tracking — migrated to Heureka OCM v2, IDs consistent with feed, prices rounded to display precision, user-facing order number sent
* Verified by Customers — failed/successful sends logged with order notes; duplicates prevented
* XML download failures show an admin notice instead of crashing the settings page
* One consolidated feed-generation warning log instead of one per product
* Marketplace — request validation, proper error responses, sane size limits on notes and invoices
* Marketplace — IČ/DIČ/company fields handled safely for individual customers
* Product IDs consistent between XML feed, availability feed, tracking and Marketplace
* "Product title" field replaced with "Product title suffix" — final feed title is composed automatically per Heureka spec (existing custom titles need to be re-entered as suffix only)
* Marketplace — order status, payment and delivery dropdowns show the Heureka numeric ID in each label
* Marketplace — info-level logging on every API call so admins can see what was sent and when

**Fixed**
* Translations now follow the active locale when switched (e.g. WPML language switching)
* Marketplace — payment method now uses the real WooCommerce gateway, so admin order detail shows the actual payment method
* Marketplace — payment method fee from settings is properly added to incoming orders so totals match
* Verified by Customers — variable products reference the purchased variation, not the parent
* Variable products with a custom parent name now produce unique names per variation in the feed
* Removed automatic calls to Heureka endpoints retired in 2024 (payment status, order note, order invoice); payment confirmation now flows via order status (map "completed" to Heureka status 9)
* Conversion tracking country code corrected (existing settings auto-fixed)
* Misc — translation-loading notice on WP 6.7+, async category dropdown 404, safer fallback when remote downloads aren't allowed

**Security**
* Feed regeneration trigger URLs protected with a secret token and rate-limited (public XML feed stays accessible to Heureka)
* Hardened IP whitelist (works behind Cloudflare)
* XSS fixes on conversion tracking output

**Developers**
* New filter hooks for feed items, "any" variations, tracking, Verified by Customers and Marketplace cart filtering — see plugin documentation

**Compatibility**
* PHP 8.1+, WordPress 6.4+, WooCommerce 8.0+
* HPOS declared

= 1.1.0 =
* Fix CSRF vulnerability on admin actions
* Fix order status request
* Update Heureka IP addresses whitelist for new API
* Update delivery methods for new API
* Add Depot API Store type
* Declare HPOS support
* Update deps

= 1.0.8 =
* Fix generating product variations to feed
* Add option to exclude items without mapped category
* Update deps

= 1.0.7 =
* Fix DepotAPI delivery branches
* Fix get product id
* Fix creating order
* Fix calculate prices and fees
* Fix auto generating feeds after update or add new product
* Fix duplicity products
* Update deps

= 1.0.6 =
* Update readme

= 1.0.5 =
* Update deps
* fix ip request check

= 1.0.4 =
* Update delivery methods

= 1.0.3 =
* Minor fixes
* Add ID, EAN, Name, Title and Number fields into product variations
* Add option to sending to Heureka asynchronously
* Better sending data to Heureka using wp_request
* Better loading categories

= 1.0.2 =
* Fix cancellation of scheduled actions when a module or plugin is deactivated

= 1.0.1 =
* Feed generation fixes

= 1.0.0 =
* Initial release
