=== CatCode Kaufland Connector for WooCommerce ===
Contributors: catcodestudio
Tags: kaufland, marketplace, woocommerce, stock sync, germany
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Lists WooCommerce products on the Kaufland Global Marketplace through the Seller API and keeps their prices and stock in sync.

== Description ==

Connects a WooCommerce shop to the [Kaufland Marketplace Seller API](https://sellerapi.kaufland.com/) with the API keys of your own Kaufland seller account. Kaufland Global Marketplace sells in Germany, Austria, Poland, Czechia and Slovakia (and the other storefronts your account has).

* **Connection** — client key and secret key from the Seller Portal (Settings → API). "Check connection" reads the storefronts of your account and their shipping groups. The secret key is stored encrypted; every request is signed as Kaufland requires.
* **Offers from your products** — tick "Sell on Kaufland" in the new "Kaufland" tab of a product. Kaufland finds the product in its catalogue by EAN, so each product (or each variation) needs a valid EAN: the GTIN / EAN field of WooCommerce, a field of the plugin, or a custom field you name.
* **Existing offers** — "Link offers already on Kaufland" reads the offers of your account and links them to your products by offer ID, SKU or EAN, so nothing is listed twice.
* **Prices** — the gross shop price (or the sale price while a sale runs) plus a markup in percent and a fixed amount, or a Kaufland price of its own per product. Storefronts in another currency (CZK in Czechia, PLN in Poland) get the price converted at the rate you set; without a rate they get no price instead of a wrong one.
* **Stock** — the stock of the product minus a safety reserve, a default quantity for products without stock management, and 0 for products that are switched off, out of stock, unpublished or in the trash.
* **Automatic** — a change of a product goes into a queue that is sent every 5 minutes, in batches of 150 offers, and only what changed is sent. "Send changes now" and "Send all offers again" do it at once.
* **Per offer** — handling time, condition (new, used, refurbished), shipping group per storefront and the VAT indicator from the tax class.
* **Results** — the result per storefront in the product, the last runs on the settings screen and an API log of the last 300 requests (without keys or buyer data).
* HPOS compatible.


Kaufland is a trademark of its owner. This plugin is an independent integration made by CatCode; it is not an official Kaufland plugin and is not affiliated with or endorsed by Kaufland. You need your own Kaufland seller account.

== External services ==

The plugin connects to the Kaufland Marketplace Seller API (`https://sellerapi.kaufland.com/v2/`) only after you enter your API keys.

* When you press "Check connection": your client key and a signature of the request (made with the secret key, which itself is never sent), to read the storefronts and shipping groups of your account.
* When offers are linked or sent: the EAN, your offer ID, the price, the quantity, the handling time, the condition, the shipping group and the VAT indicator of each product you switched on.

[Kaufland Seller Terms](https://www.kaufland.de/agb/haendler-agb) · [Kaufland privacy policy](https://www.kaufland.de/rechtliches-en/data-privacy)

== Installation ==

1. Upload the plugin and activate it. WooCommerce must be active.
2. In the Kaufland Seller Portal open Settings → API and generate the keys.
3. WooCommerce → **Kaufland**: paste the client key and the secret key, press "Check connection", tick your storefronts, set the exchange rates for storefronts in another currency and save.
4. If you already sell on Kaufland, press "Link offers already on Kaufland".
5. Open a product, tick "Sell on Kaufland" in its "Kaufland" tab, make sure it has an EAN and save. Press "Check the catalogue", then "Send changes now".

== Frequently Asked Questions ==

= Do I need a Kaufland seller account? =

Yes. The plugin uses the API keys of your own seller account; it does not open an account for you.

= Does it create new products in the Kaufland catalogue? =

No. It creates your offers (Kaufland calls them units) for products Kaufland already knows by their EAN. A product that is new to Kaufland is added through the product data upload in the Seller Portal first.

= Why is a product skipped? =

It has no valid EAN (13 or 14 digits with a correct check digit), it has no price, or the storefront is in another currency and no exchange rate is set. The reason is shown in the "Kaufland" tab of the product.

= Are variations supported? =

Yes. Each variation is an offer of its own and needs its own EAN. The switch is on the variable product.

== Changelog ==

= 1.0.0 =
* First release.
