{"id":394782,"date":"2026-11-06T22:52:32","date_gmt":"2026-11-06T22:52:32","guid":{"rendered":"https:\/\/ru.wordpress.org\/plugins\/gersync-1c-exchange-for-woocommerce\/"},"modified":"2026-11-06T22:51:55","modified_gmt":"2026-11-06T22:51:55","slug":"gersync","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/gersync\/","author":23595110,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.0","stable_tag":"1.4.0","tested":"7.1.4","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"GerSync Exchange for 1C","header_author":"\u0418\u0433\u043e\u0440\u044c \u0413\u0435\u0440\u0430\u0441\u0438\u043c\u0447\u0443\u043a","header_description":"\u041e\u0431\u043c\u0435\u043d \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438, \u0446\u0435\u043d\u0430\u043c\u0438, \u043e\u0441\u0442\u0430\u0442\u043a\u0430\u043c\u0438 \u0438 \u0437\u0430\u043a\u0430\u0437\u0430\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 1\u0421 \u0438 WooCommerce \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 CommerceML 2. \u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439.","assets_banners_color":"070c23","last_updated":"2026-11-06 22:51:55","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/buymeacoffee.com\/ger.igor","header_plugin_uri":"","header_author_uri":"https:\/\/www.linkedin.com\/in\/igor-gerasim%C4%8Duk\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.0":{"tag":"1.4.0","author":"vigilansnoctis","date":"2026-11-06 22:51:55","revision":3788814}},"upgrade_notice":{"1.4.0":"<p>Internal names now use the <code>gersync<\/code> prefix. Settings and 1C links from earlier versions are migrated automatically on update.<\/p>","1.3.0":"<p>Much faster repeated exchanges. The first exchange after updating processes all products once (images are not re-uploaded); later ones skip unchanged products.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3788814,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3788814,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-ru_RU.png":{"filename":"banner-1544x500-ru_RU.png","revision":3788814,"resolution":"1544x500","location":"assets","locale":"ru_RU","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3788814,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-ru_RU.png":{"filename":"banner-772x250-ru_RU.png","revision":3788814,"resolution":"772x250","location":"assets","locale":"ru_RU","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3788814,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[36159,65885,87,1564,286],"plugin_category":[45,59],"plugin_contributors":[291269],"plugin_business_model":[],"class_list":["post-394782","plugin","type-plugin","status-publish","hentry","plugin_tags-1c","plugin_tags-commerceml","plugin_tags-import","plugin_tags-synchronization","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-utilities-and-tools","plugin_contributors-vigilansnoctis","plugin_committers-vigilansnoctis"],"banners":{"banner":"https:\/\/ps.w.org\/gersync\/assets\/banner-772x250.png?rev=3788814","banner_2x":"https:\/\/ps.w.org\/gersync\/assets\/banner-1544x500.png?rev=3788814","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/gersync\/assets\/icon-128x128.png?rev=3788814","icon_2x":"https:\/\/ps.w.org\/gersync\/assets\/icon-256x256.png?rev=3788814","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>The plugin implements the standard \"exchange with website\" protocol built into 1C configurations\n(Trade Management, Small Business Management, Integrated Automation, etc.). Nothing needs to be modified on the 1C side.\nA Russian version of this document is in readme-ru.txt.<\/p>\n\n<p><strong>Catalog (1C \u2192 website)<\/strong><\/p>\n\n<ul>\n<li>Category tree from 1C groups, products, descriptions, SKUs, weight, images.<\/li>\n<li>1C properties become global WooCommerce attributes (usable in filters).<\/li>\n<li>1C characteristics (\"Id#Id\") become variable products with variations.<\/li>\n<li>Prices: a chosen price type plus an optional \"sale\" price type (by name or Id).<\/li>\n<li>Stock: summed across all warehouses; CommerceML 2.05 and 2.08+ (offers \/ prices \/ rests).<\/li>\n<li>Products marked for deletion in 1C are moved to drafts or trash and restored with their previous\nstatus when the mark is removed. Products you removed manually are never touched.<\/li>\n<li>Large catalogs are imported in steps, so hosting timeouts are not a problem.<\/li>\n<\/ul>\n\n<p><strong>Orders (website \u2192 1C)<\/strong><\/p>\n\n<ul>\n<li>Orders are sent to 1C after creation and after every status change, including shipping and fees.<\/li>\n<li>Optional: order statuses from 1C (cancelled, shipped, paid) are applied back to the website.<\/li>\n<li>Compatible with HPOS (WooCommerce high-performance order storage).<\/li>\n<\/ul>\n\n<p><strong>Speed<\/strong><\/p>\n\n<ul>\n<li>Products whose data in 1C has not changed since the previous exchange are skipped; prices and stock are saved\nonly when they actually change. A repeated exchange of an unchanged catalog takes seconds.<\/li>\n<li>Images are uploaded once: identical files are recognised, including images uploaded by the previous\n1C exchange plugin (no duplicates after switching).<\/li>\n<li>Optional \"WooCommerce sizes only\" mode generates fewer thumbnail files and uploads images 2\u20133\u00d7 faster.<\/li>\n<li>\"Forced full exchange\" (Maintenance tab) reprocesses every product once on the next exchange.<\/li>\n<li>\"Image cleanup\" removes images uploaded by the exchange that are no longer used by any product.<\/li>\n<\/ul>\n\n<p><strong>Other<\/strong><\/p>\n\n<ul>\n<li>Picks up GUIDs left by the previous 1C exchange plugin (<code>_id_1c<\/code> meta), so switching does not create duplicates.<\/li>\n<li>Polylang \/ WPML: when translations share a GUID, the product or category in the default language is updated;\nthe exchange URL also works with a language prefix (\/en\/wc1c-exchange\/).<\/li>\n<li>Per-field update control for existing products: name, description, categories, images, SKU, weight, prices and stock\ncan each be protected from being overwritten by 1C.<\/li>\n<li>A \"Do not update from 1C\" checkbox on a product's Inventory tab protects a hand-edited product\n(prices and stock still update).<\/li>\n<li>Attributes: \"sync with 1C\", \"only add values from 1C, never remove\" or \"don't touch\".\nAttributes added manually (not coming from 1C properties) are never removed in any mode.<\/li>\n<\/ul>\n\n<p><strong>Full export and changes-only export<\/strong><\/p>\n\n<ul>\n<li>The export type is detected automatically from the 1C file (\"contains only changes\" flag).<\/li>\n<li>Changes-only export: only the received products are updated, nothing else is touched.<\/li>\n<li>Full export: products from 1C that are missing in it can be left as is, unpublished (draft),\nset to \"Out of stock\" or moved to trash. Products created manually on the website are never affected.<\/li>\n<li>Runs in the background (WooCommerce Action Scheduler) after 1C signals the end of the exchange,\nor 15 minutes after the last full file for configurations that do not send the signal.<\/li>\n<li>Safety: if more than half of the 1C products are missing, nothing is done and a warning is logged\n(looks like an interrupted exchange). A hidden product comes back as soon as it appears in an export again.<\/li>\n<li>Translations (Polylang \/ WPML) follow the original product.<\/li>\n<\/ul>\n\n<p><strong>Security<\/strong><\/p>\n\n<ul>\n<li>The exchange password is stored only as a hash; after login a random session token is used.<\/li>\n<li>10 wrong passwords lock the IP for 15 minutes; an optional IP allowlist is available.<\/li>\n<li>Temporary files live in a randomly named folder protected by .htaccess \/ web.config.<\/li>\n<li>Strict file name checks (only xml \/ zip \/ images, no \"..\", no symlinks); zip-slip and zip-bomb protection.<\/li>\n<li>XML is parsed as a stream without network access or external entities (XXE-safe).<\/li>\n<li>Statuses from 1C are applied only to orders the website itself sent to 1C.<\/li>\n<li>Internal errors are written to the WooCommerce log only and are never shown to the client.<\/li>\n<\/ul>\n\n<h3>Trademarks<\/h3>\n\n<p>1C and 1C:Enterprise are trademarks of 1C Company. WooCommerce is a trademark of Automattic Inc.\nGerSync is an independent plugin and is not affiliated with, endorsed or sponsored by 1C Company or Automattic.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, choose the zip file and click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.\nWooCommerce must be installed and active.<\/li>\n<li>Go to <strong>WooCommerce \u2192 \u041e\u0431\u043c\u0435\u043d \u0441 1\u0421<\/strong> (the GerSync settings page). Set an exchange <strong>login<\/strong> (Latin letters) and a long random <strong>password<\/strong>, then save.<\/li>\n<li>Copy the <strong>exchange URL<\/strong> shown at the top of the settings page, e.g. <code>https:\/\/example.com\/wc1c-exchange\/<\/code>.<\/li>\n<li>In 1C open <strong>Administration \u2192 Data exchange \u2192 Exchange with websites<\/strong> (the exact path depends on the configuration),\ncreate an exchange node and enter the URL, login and password from step 2\u20133.<\/li>\n<li>Choose what to exchange in 1C: products (catalog, prices, stock) and\/or orders. Run the exchange.<\/li>\n<li>If products already exist on the website and have no 1C GUID, enable <strong>\"Match existing products by SKU\"<\/strong>\nbefore the first exchange to avoid duplicates.<\/li>\n<\/ol>\n\n<p>It is strongly recommended to run the first exchange on a copy of the website or after making a database backup.<\/p>\n\n<p><strong>If 1C reports that the server did not receive the login\/password<\/strong><\/p>\n\n<p>On some hosts (PHP running as CGI\/FastCGI) the Authorization header does not reach PHP.\nFor Apache add this to <code>.htaccess<\/code> in the site root, before the WordPress rules:<\/p>\n\n<pre><code>RewriteEngine On\nRewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]\n<\/code><\/pre>\n\n<p>For nginx + PHP-FPM add: <code>fastcgi_param HTTP_AUTHORIZATION $http_authorization;<\/code><\/p>\n\n<p><strong>nginx note:<\/strong> .htaccess is ignored by nginx. Deny direct access to the <code>wp-content\/uploads\/wc1c-exchange-*<\/code> folder in the server config.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20can%20i%20see%20the%201c%20guid%20of%20a%20product%3F\"><h3>Where can I see the 1C GUID of a product?<\/h3><\/dt>\n<dd><p>In the admin product editor, on the <strong>Inventory<\/strong> tab, and inside each variation. It is never shown on the storefront.<\/p><\/dd>\n<dt id=\"where%20are%20the%20logs%3F\"><h3>Where are the logs?<\/h3><\/dt>\n<dd><p>WooCommerce \u2192 Status \u2192 Logs, source <code>gersync<\/code>. Enable \"detailed log\" in the plugin settings for step-by-step entries.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Settings and temporary files are removed. Products, categories and their 1C links stay, so reinstalling will not create duplicates.<\/p><\/dd>\n<dt id=\"is%20it%20really%20free%3F\"><h3>Is it really free?<\/h3><\/dt>\n<dd><p>Yes. All features work without payment and nothing is locked. If the plugin saves you time, you can buy the author\na coffee via Buy Me a Coffee (link on the settings page). The link is shown only in the plugin's own admin pages.<\/p><\/dd>\n<dt id=\"how%20do%20i%20update%20without%20losing%20settings%3F\"><h3>How do I update without losing settings?<\/h3><\/dt>\n<dd><p>Use the normal WordPress update (Plugins \u2192 Update). Settings, products and their 1C links are kept.\nIf you update manually with a zip file, choose \"Upload Plugin\" and then \"Replace current with uploaded\" \u2014\ndo not delete the plugin first: deleting removes its settings (products and 1C links still stay).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Unique <code>gersync<\/code> prefix for code, options and metadata; automatic migration from 1.0\u20131.3.<\/li>\n<li>Output escaped at the point of output; exchange request parameters read and sanitized individually.<\/li>\n<li>Explicit nonce and capability check for the per-product \"Do not update from 1C\" checkbox.<\/li>\n<li>Settings backup with automatic restore.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Ready for WordPress.org: name \"GerSync Exchange for 1C\", slug and text domain <code>gersync<\/code>, admin assets enqueued, passes Plugin Check.<\/li>\n<li>Data versioning with automatic migrations on update; uninstall keeps settings if another copy of the plugin is installed.<\/li>\n<li>Fixed: exchange passwords containing quotes or backslashes were rejected on some servers.<\/li>\n<li>Optional \"buy the author a coffee\" and author page links (admin only).<\/li>\n<li>Unchanged products are skipped; no-op saves of prices and stock are avoided.<\/li>\n<li>Images uploaded by the previous plugin are reused; optional WooCommerce-only thumbnail sizes.<\/li>\n<li>Forced full exchange with a warning; background cleanup of unused exchange images.<\/li>\n<li>Responses to 1C in Windows-1251 (no garbled messages in the 1C log).<\/li>\n<li>New settings page: status summary and tabs (Connection, Catalog, Prices &amp; stock, Orders, Advanced, Maintenance).<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Full \/ changes-only export handling with an action for products missing from a full export.<\/li>\n<li>Update protection for SKU, weight, prices and stock; per-product \"Do not update from 1C\" checkbox.<\/li>\n<li>Attribute modes: sync \/ add only \/ don't touch; manual visibility and order of attributes are preserved.<\/li>\n<li>Translations are hidden and restored together with the original product.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Price types from the classifier in offers.xml (CommerceML 2.08+).<\/li>\n<li>Products and variations are restored when the deletion mark is removed in 1C.<\/li>\n<li>Fees are included in exported orders; statuses from 1C apply only to exported orders.<\/li>\n<li>Polylang \/ WPML support; exchange URL no longer depends on rewrite rules.<\/li>\n<li>1C GUID shown for variations in the admin; import code split into modules.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"GerSync: free two-way exchange between 1C:Enterprise and WooCommerce using the standard CommerceML 2 protocol: products, prices, stock and orders.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/394782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=394782"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vigilansnoctis"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=394782"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=394782"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=394782"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=394782"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=394782"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=394782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}