The plugin implements the standard “exchange with website” protocol built into 1C configurations
(Trade Management, Small Business Management, Integrated Automation, etc.). Nothing needs to be modified on the 1C side.
A Russian version of this document is in readme-ru.txt.
Catalog (1C → website)
- Category tree from 1C groups, products, descriptions, SKUs, weight, images.
- 1C properties become global WooCommerce attributes (usable in filters).
- 1C characteristics (“Id#Id”) become variable products with variations.
- Prices: a chosen price type plus an optional “sale” price type (by name or Id).
- Stock: summed across all warehouses; CommerceML 2.05 and 2.08+ (offers / prices / rests).
- Products marked for deletion in 1C are moved to drafts or trash and restored with their previous
status when the mark is removed. Products you removed manually are never touched.
- Large catalogs are imported in steps, so hosting timeouts are not a problem.
Orders (website → 1C)
- Orders are sent to 1C after creation and after every status change, including shipping and fees.
- Optional: order statuses from 1C (cancelled, shipped, paid) are applied back to the website.
- Compatible with HPOS (WooCommerce high-performance order storage).
Speed
- Products whose data in 1C has not changed since the previous exchange are skipped; prices and stock are saved
only when they actually change. A repeated exchange of an unchanged catalog takes seconds.
- Images are uploaded once: identical files are recognised, including images uploaded by the previous
1C exchange plugin (no duplicates after switching).
- Optional “WooCommerce sizes only” mode generates fewer thumbnail files and uploads images 2–3× faster.
- “Forced full exchange” (Maintenance tab) reprocesses every product once on the next exchange.
- “Image cleanup” removes images uploaded by the exchange that are no longer used by any product.
Other
- Picks up GUIDs left by the previous 1C exchange plugin (
_id_1c meta), so switching does not create duplicates.
- Polylang / WPML: when translations share a GUID, the product or category in the default language is updated;
the exchange URL also works with a language prefix (/en/wc1c-exchange/).
- Per-field update control for existing products: name, description, categories, images, SKU, weight, prices and stock
can each be protected from being overwritten by 1C.
- A “Do not update from 1C” checkbox on a product’s Inventory tab protects a hand-edited product
(prices and stock still update).
- Attributes: “sync with 1C”, “only add values from 1C, never remove” or “don’t touch”.
Attributes added manually (not coming from 1C properties) are never removed in any mode.
Full export and changes-only export
- The export type is detected automatically from the 1C file (“contains only changes” flag).
- Changes-only export: only the received products are updated, nothing else is touched.
- Full export: products from 1C that are missing in it can be left as is, unpublished (draft),
set to “Out of stock” or moved to trash. Products created manually on the website are never affected.
- Runs in the background (WooCommerce Action Scheduler) after 1C signals the end of the exchange,
or 15 minutes after the last full file for configurations that do not send the signal.
- Safety: if more than half of the 1C products are missing, nothing is done and a warning is logged
(looks like an interrupted exchange). A hidden product comes back as soon as it appears in an export again.
- Translations (Polylang / WPML) follow the original product.
Security
- The exchange password is stored only as a hash; after login a random session token is used.
- 10 wrong passwords lock the IP for 15 minutes; an optional IP allowlist is available.
- Temporary files live in a randomly named folder protected by .htaccess / web.config.
- Strict file name checks (only xml / zip / images, no “..”, no symlinks); zip-slip and zip-bomb protection.
- XML is parsed as a stream without network access or external entities (XXE-safe).
- Statuses from 1C are applied only to orders the website itself sent to 1C.
- Internal errors are written to the WooCommerce log only and are never shown to the client.
Trademarks
1C and 1C:Enterprise are trademarks of 1C Company. WooCommerce is a trademark of Automattic Inc.
GerSync is an independent plugin and is not affiliated with, endorsed or sponsored by 1C Company or Automattic.