=== JTL-Connector for WooCommerce ===
Contributors: papryk, ntbyk, platzkejtl, patrick-gugelsberger
Tags: warenwirtschaft, jtl, connector, wms, erp
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.4
WC requires at least: 3.4.7
WC tested up to: 10.8.1
Stable tag: 2.4.5
License: GPLv3
License URI: http://www.gnu.org/licenses/lgpl-3.0.html

Extend your shop software, trough this connector, with an full ERP with many features for marketplaces etc.

== Description ==

https://www.youtube.com/watch?v=k6xv8LsR15w

With JTL-Connector for WooCommerce, you can connect your WooCommerce online shop with the
free JTL-Wawi ERP system by JTL-Software. The ERP system as well as the entire JTL product
family are perfectly suited to the requirements of e-commerce and mail order businesses.
They help you to process more orders in a shorter time and offer a range of exciting functionalities.

With JTL-Connector, you have access to the complete JTL product family. Use JTL-Connector to transfer
the data from your existing WooCommerce shop to our ERP system. From now on, you can manage your online
shop and your entre business with JTL-Wawi and profit from an efficient process chain that comprises
everything from purchase to shipping and returns.

JTL-Wawi and JTL-Connector are out-of-the-box solutions that use a lot of the functions that your
WooCommerce shops use, too. Further functions can be individually programmed and added using JTL-Connector.

[Further information on JTL-Connector, a connector for third party shops](https://www.jtl-software.de/anbindung-shopsysteme)

== Why use an ERP system? ==

The free JTL-Wawi ERP system allows you to manage your business centrally with a single software.
Transfer data from existing applications quickly and connect with a variety of online shop systems.

Synchronise item data, orders and stocks in a centralised ERP software. System discontinuities, which
are common with other solutions, can be significantly reduced with a leading ERP system such as JTL-Wawi.
The software allows you to easily keep track of all your sales channels. You can also automate your
processes and deal with complex tax issues.

[Further information on the ERP system JTL-Wawi](https://www.jtl-software.de/warenwirtschaft)

[Download JTL-Wawi for free](https://www.jtl-software.de/jtl-wawi-download)


== PROFIT FROM THE ENTIRE JTL PRODUCT FAMILY ==

If you wish to optimise other aspects of your work, you can always choose more products from our
extensive portfolio—no matter whether you want to enhance efficiency in sales, in the warehouse or in shipping.

* Control your online shop with JTL-Wawi
* Multichannel distribution: sell on Amazon and eBay with JTL-eazyAuction
* Efficiently handle shipments and returns with the free JTL-Packing Bench+
* Print shipping labels for your logistics providers with JTL-Shipping

[Overview of the JTL product family](https://www.jtl-software.de/e-commerce-loesungen)

Many sellers also use JTL-Connector to transfer their data to JTL-Wawi and test our
proprietary online shop system [JTL-Shop](https://www.jtl-software.de/online-shopsystem).


== STARTING EASY WITH STANDARD VERSIONS ==

Sellers often use standard shop systems without personalised features, plug-ins and added functions.
Out-of-the-box shops like these can be connected to JTL-Wawi with a few simple steps using JTL-Connector.


== CONNECTING INDIVIDUAL PLUG-INS ==

You have made individual adjustments to your shop, e.g. the installation of plug-ins? In this case,
JTL-Connector needs an individual configuration for each of the plug-ins. To facilitate this, JTL-Connector
features an integrated [plug-in interface](https://www.jtl-software.de/anbindung-shopsysteme#plugin-system-fuer-individualisierte-onlineshops),
enabling the transfer of personalised data and functions to JTL-Wawi.


== HOW IT WORKS ==

* Initial data synchronisation

In the course of the initial synchronisation, data such as items, categories, images and customer and
order information is transferred from your shop to JTL-Wawi. If you want to use JTL-Wawi as the leading
system, you can directly and exclusively manage your products and process your online shop orders in
JTL-Wawi right after the initial synchronisation.

* Individual data maintenance

Many of the performance features that JTL-Wawi offers can also be used in your online shop via the
JTL-Connector, provided your shop system also offers these functionalities. Some functionalities of
your online shops are not transferred by JTL-Connector by default. Those can be added individually via
plug-ins or additional programming.

* Continuous synchronisation

The data created or changed by you in JTL-Wawi is transferred to your shop via the
online shop synchronisation. Orders placed in your shop are directly forwarded to JTL-Wawi.
You can process all orders, including shipping and returns, in JTL-Wawi. The current order
status is transferred to your shop via JTL-Connector. In this way, your customers are always
informed about the status of their orders.

* Combined operation

You can also operate JTL-Connector and your shop in a combined mode. In this case, you define what
data is to be imported into JTL-Wawi or transferred to your online shop. You can specify, for example,
that JTL-Wawi only updates stocks for the shop and only imports orders. This means that you still maintain
your products in the back end of your online shop.


== FUTURE-PROOF DEVELOPMENT ==

JTL-Software holds all the knowledge to ensure the future-proof development of the JTL connectors.
This know-how enables us to react quickly to changing requirements and to adapt JTL-Connector to
evolving connected shop systems. This ensures trouble-free compatibility with future versions.


== COMPLEMENTARY SOLUTIONS FROM THE JTL PRODUCT FAMILY ==

* Management of several online shops with [MultiShop](https://www.jtl-software.de/warenwirtschaft/funktionen/onlineshop-anbindung#mehrere-onlineshops-gleichzeitig-anbinden-via-multishop-modul)
* Shipping and returns with JTL-Packing [Bench+](https://www.jtl-software.de/warenwirtschaft/packprozess-vereinfachen)
* Automated processes with [JTL-Workflows](https://www.jtl-software.de/warenwirtschaft/prozessoptimierung)
* Import and export with [JTL-Ameise](https://www.jtl-software.de/warenwirtschaft/import-export)
* Connection to Amazon and eBay with [JTL-eazyAuction](https://www.jtl-software.de/marktplatz-schnittstelle)
* Printing shipping labels with [JTL-Shipping](https://www.jtl-software.de/versand-schnittstelle)
* Warehouse management with [JTL-WMS](https://www.jtl-software.de/lagerverwaltung)


== TECHNICAL INSTRUCTIONS AND VIDEO TUTORIALS ==

* [Documentation regarding JTL-Connector for WooCommerce](https://guide.jtl-software.de/Kategorie:JTL-Connector:WooCommerce)
* [Video tutorials on the JTL connectors](https://www.youtube.com/watch?v=8DEX2xHoqtM&index=11&list=PL44cp2iiTsTXfN18-sZgAKIiaD2wSI4xl)


== German Market warranty label (EU GARAN label) ==

If the German Market plugin (version 4.0 or higher) is active, JTL-Connector transfers the data for
German Market's warranty label (EU GARAN label) from JTL-Wawi to your shop. Maintain the values in
JTL-Wawi as function attributes on the item. During synchronisation they are written to the
corresponding German Market product meta keys:

* `jtl_garan_label_producer` is written to `_german_market_garan_label_producer` (manufacturer)
* `jtl_garan_label_model_identifier` is written to `_german_market_garan_label_model_identifier` (model identifier)
* `jtl_garan_label_warranty_years` is written to `_german_market_garan_label_warranty_years` (warranty duration in years, numeric)

Please note:

* The feature is optional. If German Market is not active or the attributes are not maintained,
  nothing is transferred and no error is raised.
* A function attribute left empty in JTL-Wawi does not overwrite a value maintained directly in
  WooCommerce, so existing shop data is never lost.
* `jtl_garan_label_warranty_years` must be numeric; non-numeric values are ignored.
* For variable products, German Market inherits the manufacturer and the warranty duration from the
  parent product, while the model identifier can be maintained per variation.
* Whether the label is displayed depends on German Market's own logic (for example, it is only shown
  for a warranty duration of more than two years). JTL-Connector only supplies the raw data.


== Germanized warranty guarantee (EU GARAN label) ==

If the Germanized plugin (version 4.1 or higher) is active, JTL-Connector transfers the guarantee
length required for Germanized's EU GARAN label from JTL-Wawi to your shop. Maintain the value in
JTL-Wawi as a function attribute on the item:

* `wc_gzd_guarantee_length` is written to the Germanized `_guarantee_length` product meta (guarantee
  duration in months, numeric).

The manufacturer and the model number/GTIN that Germanized also needs for the GARAN label are
already synchronised through the regular product sync (manufacturer assignment and GTIN/MPN), so no
additional attributes are required for them.

Please note:

* The feature is optional. If Germanized is not active or the attribute is not maintained, nothing is
  transferred and no error is raised.
* A guarantee length left empty or non-numeric in JTL-Wawi does not overwrite a value maintained
  directly in WooCommerce, so existing shop data is never lost.
* Germanized only displays the GARAN label for a guarantee length of at least 30 months together with
  an assigned manufacturer and a model number/GTIN. If a product reaches the 30 month threshold but
  is missing the manufacturer or the model number/GTIN, JTL-Connector writes a warning to the log so
  the incomplete master data can be corrected in JTL-Wawi.
* Whether the label is finally displayed depends on Germanized's own logic. JTL-Connector only
  supplies the raw data.


== Installation ==

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

1. Do a backup of your shop-database, before you do the following steps.
1. Install the JTL-Connector for WooCommerce and register for an free domain bound licence-key.
1. If the installation was successful the JTL-Connector will be shown in the woocommerce settings.

== Screenshots ==

1. The JTL-Connector for WooCommerce (>=1.8.0) information & JTL-Wawi settings page.
2. The JTL-Connector for WooCommerce (>=1.8.0) advanced settings page.
3. The JTL-Connector for WooCommerce (>=1.8.0) delivery time settings page.
4. The JTL-Connector for WooCommerce (>=1.8.0) customer orders settings page.
5. The JTL-Connector for WooCommerce (>=1.8.0) developer settings page.
6. The JTL-Connector for WooCommerce (<=1.6.4) settings panel.
7. The JTL-Connector for WooCommerce (>=1.7.0) settings panel.

== Changelog ==

= 2.4.5 =
* Security: Fixed unauthenticated SQL injection in the product identity and checksum endpoints (CVE-2026-78193)
* Security: Fixed unauthenticated arbitrary file upload via the image.push method

= 2.4.4 =
* Feature: transfer German Market warranty label (EU GARAN) fields to the shop
* Feature: transfer Germanized guarantee length (EU GARAN label) to the shop
* Feature: delete stored GPSR EU address when the responsible person is removed in JTL-Wawi

= 2.4.3 =
* Security: Updated Connector Core to fix plaintext session token storage — tokens are now hashed with SHA-256 in the local SQLite database

= 2.4.2 =
* Security: Added capability checks and nonce verification to all admin endpoints (CVE-2026-9234)
* Security: Log download now streams via temporary file instead of writing to public directory
* Fix: Replaced external CDN resources with locally bundled assets
* Fix: Added proper SQL preparation and output escaping throughout the plugin
* Fix: Global functions now use jtlwcc_ prefix to avoid naming conflicts
* Fix: Replaced deprecated PHP functions with WordPress alternatives

Find the newest Changelog here: http://changelog.jtl-software.de/en/systems/connector/woocommerce

== Upgrade Notice ==

Upgrade to the latest version to prevent unwanted behavior.