This add-on is part of our Subscription plan.
Subscribe once, and enjoy all add-ons without limits.
MoySklad Two-Way Exchange keeps your store and accounting system in sync. Products, variants, bundles, stock levels, orders, payments, shipping methods, and statuses do not have to be transferred manually.
What it is for
The add-on is meant for stores that sell in CS-Cart while accounting and warehouse operations are handled in MoySklad. It helps synchronize data in both directions and reduces manual edits.
Key features
Import and export of products, variants, and bundles. Exchange of orders, order statuses, payment methods, and shipping methods. Stock synchronization by warehouses and by selected rules. Webhook and queue processing to reduce the load on the storefront and admin panel. Mapping of categories, product groups, and variations. Multi-Vendor and multi-storefront support. Display of the latest sync result in the admin panel. Separate modes for import only or export only.
How it works
The working settings are gathered in the sync data section. There you choose the exchange mode, configure import and export, map entities, and enable the required exchange scenarios.
When needed, the add-on receives events through webhooks, queues them, and processes them in the background. Orders also have a dedicated asynchronous synchronization flow.
Have questions about the add-on?
- Store Builder
- Store Builder Ultimate
- Multi-Vendor
- Multi-Vendor Plus
- Multi-Vendor Ultimate
- Owners
- English
- Русский
- 4.20
- 4.19.X
- 4.18.X
- 4.17.X
- 4.16.X
- 4.15.X
- 4.14.X
- 4.13.X
- 4.12.X
Instructions for MoySklad Two-Way Exchange
The add-on synchronizes data between CS-Cart and MoySklad in both directions. It works with products, variants, bundles, stock levels, orders, statuses, payment methods, shipping methods, categories, and webhooks.
What it does
The add-on exchanges data according to the selected mode. You can enable import only, export only, or two-way exchange. Orders have a background sync flow, and events from MoySklad are processed through a queue.
It also supports category and product group mapping, variation mapping, warehouse-based stock handling, and showing the latest sync result in the admin panel.
Where the add-on is located
The working settings are located in Administration → Sync Data → MS: MoySklad Two-Way Exchange. The section includes the General, Import Settings, Export Settings, Webhooks, Categories, and Variations tabs.
The add-on settings page includes navigation links to the sync data section and order statuses so you can quickly reach the working screens.
How to configure the exchange
Use the General tab to connect to MoySklad and choose the exchange mode. This is where the base synchronization settings are defined.
In Import Settings and Export Settings, enable the required scenarios for products and orders, choose what should be updated, and set how new or changed objects are handled.
In Categories, map MoySklad product groups to site categories. You can use the default category or create a category during synchronization.
In Variations, map site features to MoySklad variation features.
In Webhooks, create and switch webhooks for events coming from MoySklad. If webhooks are no longer needed, you can remove them one by one or delete them all at once.
For orders, you can enable order number transfer, adding the order number to comments, reserving items, and creating missing statuses in MoySklad.
For stock, make sure the required warehouses are active and the stock report type is set correctly. If you use warehouse-specific logic, map MoySklad warehouses to site warehouses in advance.
How to check the result
After saving the settings, run product or order synchronization and make sure the object page shows the latest sync result without errors.
Check the sync data section, it should update with status, progress, and exchange log information. If something fails, the reason is usually shown on the product page, the order page, or in logs.
For webhooks, verify the list of connected MoySklad webhooks and confirm that events reach the queue without errors.
Changelog
v2.11.0
06.05.2026
New features and improvements:
- Improved synchronization settings and data mapping
- Added clearer exchange information for products and orders in the admin panel
- Expanded MoySklad exchange support for products, stock, bundles, and counterparties
Fixes and changes:
- Improved synchronization stability for products, orders, images, and stock
- Made logs, statistics, and exchange issue reasons easier to understand
- Updated the add-on service layer for current CS-Cart requirements
v2.10.0
03.03.2026
New features and improvements:
- Added "Counterparty attributes" tab in sync settings: set default values for mandatory counterparty attributes (Document flow, EDI, etc.) when creating counterparty in MoySklad
- Tab is shown only when order export is enabled, "Create user" is checked, and MoySklad has required counterparty attributes
- Added "Product price for batches" setting in "Import shipments" sync settings: select price type from MoySklad (order line price, minPrice, buyPrice or price list type) for supplier order import to batches
- When importing supplier orders to batches, line price is taken per selected setting: from order line, from MoySklad product/variant fields (minPrice, buyPrice) or from sale price type (salePrices)
- Added async order status sync: status change in admin now takes 3-5 sec instead of 30-60 sec, MoySklad sync runs in background via AJAX
- Created StatusSyncQueue class for order status sync queue with retries on errors
- Added BackgroundProcessor class for background processing via fastcgi_finish_request() without blocking UI
- Implemented automatic queue processing via JavaScript with real-time sync completion notifications
- Optimized bulk stock sync: 4500 products sync time reduced from 34 min to ~10 min
- Created StockBulkSync class with bulk mapping load (1 request instead of 9000) and batch stock update (9 requests instead of 4500)
- Added structured logging in format "date | event | entity | id | result | time | details"
- Implemented logStructured(), logWebhook(), logStockSync(), logOrderStatus() for readable logs with timings
- Added CLI progress bar for stock sync with real-time completion percentage
Changes and improvements:
- Added selectbox with price options from MoySklad API (get_pricetypes) to "Import shipments" tab template, default "Product price from batch"
Fixes and changes:
- Fixed error 3000 when creating counterparty: required attributes are filled from settings, removed hardcoded values
- For orders and products, storefront_id and company_id (Multi-Vendor only) are taken from order/product and used for correct operation in multi-storefront and Multi-Vendor
- For batches (supplier orders), storefront_id and company_id are taken from batch: linking batch to supplier order, updating supplier order, removing from mapping
- fn_ms_moysklad_get_company_and_storefront_ids: always checks Registry first (including in admin) for correct context when called from handlers
- Fixed inverted logic in update_purchaseorder: processing runs when moysklad_id is present
- Fixed error 3007 "Code '0' must be unique" when creating counterparty for guest orders (user_id=0): now uses unique code guest_{order_id}
- Fixed error 2016 "meta field value does not match object type": only valid meta (object with href) is sent to MoySklad API, empty strings and arrays excluded
- Fixed s_address field write error in order attributes: $order was used instead of $result
- Fixed order number duplication in comment on multiple status changes: number added only on first export, on update existing MoySklad comment is used if it already contains the number
- Fixed deprecated warnings in set_notification_log for PHP 8.0+ compatibility
v2.9.0
22.01.2026
Changes and improvements:
- Updated module template
Fixes and changes:
- Fixed trailing comma (comma after last argument) in function calls for compatibility with various PHP versions
v2.8.0
19.01.2026
New features and improvements:
- Added setting to enable sync settings display for marketplace administrators
- Added ability to import shipments from MoySklad to batches on site, requires "Batches" module
Changes and improvements:
- Updated licensing files
v2.7.0
12.11.2025
Fixes and changes:
- Fixed event_id field search error when queuing
v2.6.0
09.10.2025
New features and improvements:
- Added module settings caching for better performance
- Added async webhook processing via queue
- Added database indexes for query optimization
Changes and improvements:
- Optimized MoySklad requests
- Changed webhook processing, now need to run cron link for webhook handler
v2.5.0
02.08.2025
New features and improvements:
- Added ability in sync settings to choose importing description field from MS to short/long description on site
- Added check for warehouse module object methods, as older versions caused errors
- Reduced webhook response time
v2.4.0
03.07.2025
New features and improvements:
- Added tax import setting for products
- Added counterparty search by TIN setting when ms_invoicing module is enabled
- Added product image import capability
- Added ability to view stock write logs in quantity tab on product edit page
- Added ability to update stock during webhook processing for stock create/update
Changes and improvements:
- API classes split into separate files
Fixes and changes:
- Fixed error when creating variants
v2.3.0
09.04.2025
New features and improvements:
- Added ability to select specific price type for different warehouses
- Added ability to set retry wait time and retry count in module settings when server returns rate limit response
- Added transfer of cs-cart built-in shipping info to MS order
Changes and improvements:
- Changed language variables
- Database table changes implemented via migrations
- Changed warehouse mapping for import
- Fixed error when product export did not export stock by warehouses
- Fixed error when order with same name on site and MS was not created on MS side
- Changed MS request sending, added response handling and retry after wait
- Updated license files
- Changed webhook handling: response sent to server first, then data processing
- Added ability to export product stock by warehouses in one request (up to 1000 products per request)
- Added ability to import "Stock in MoySklad field" regardless of "Import fields when updating product" setting
- Changed settings: "Order number prefix" moved to export settings tab, "Do not sync order numbers" changed to "Pass order numbers", prefix checked when enabled
- Changed product stock update algorithm via webhook with warehouse consideration
Removed:
- Removed "Import stock" setting for product import, now checks "Import fields when updating product"
v2.2.2
13.08.2024
Changes and improvements:
- Fixed product price write across all storefronts when setting is enabled
- Changed array_key_first call to internal function
Removed:
- Product export removed from module as it did not work with variants in old version
v2.2.1
15.05.2024
New features and improvements:
- Added ability to use one storefront prices for all storefronts
- Added check and value extraction from array when passing barcode from MoySklad
- Extended product search by MoySklad id presence/absence
- Added delivery address (PZV) transfer to MoySklad
- Added function to zero negative stock
Changes and improvements:
- Fixed external_id transfer when updating product
- Fixed data sync display template
- Changed full stock export link with sync settings
- Fixed mapping extraction using company_id and storefront_id
- Fixed order update
- Fixed variant creation
- Changed module name
- Changed module description
- Changed language variable
v2.2.0
22.11.2023
New features and improvements:
- Added "Remove from mapping", "Rebind" and "Link product to MoySklad product" buttons on product edit page
- Added missing methods to MoySklad2 class to allow MoySklad class removal
Changes and improvements:
- Changed main domain link for MoySklad API per documentation. Old domain stops 01.12.2023
- Changed request/response encoding per new gzip documentation
- Fixed external_id build for variants
- Fixed typos in language variables
Removed:
- Removed old MoySklad class file
v2.1.1
02.11.2023
Fixes and changes:
- Fixed error when creating order with prefix in name
v2.1.0
20.10.2023
New features and improvements:
- Added tax mapping
- Added error saving and display when updating/creating order on order edit page
- Added order field data type check, only string types processed
- Added shipping method mapping
- Added order additional field check (only string, text, url), array and boolean to text conversion. company_id to company/storefront name, issuer_id to manager name
- Added stock export type check in "Exports" tab with import types in "Import settings" and export link block on mismatch
Changes and improvements:
- Fixed default warehouse setting when creating order
- Module standardization
- Changed module icon
Fixes and changes:
- Fixed bugs
- Fixed error when creating order as guest and wrong user attachment in MoySklad due to empty phone
v2.0.0
29.07.2023
New features and improvements:
- Added ability to save settings and data mappings for different storefronts and companies
- Added ability to enable/disable import and export separately
- Added MoySklad service connection via token
- Added order creation period selection for export and import
- Added field selection for product create and update
- Added data selection for product code
- Added variant support including variant characteristic mapping
- Added site price to MoySklad price mapping
- Added site order status to MoySklad status mapping
Changes and improvements:
- Module settings and data mappings moved to 'Data sync' pages
- Improved webhook management (enable/disable/delete each webhook), ability to delete all webhooks at once
- Improved export handling (dynamic cron link based on selected settings)
v1.11.31
16.05.2023
New features and improvements:
- Added product creation when corresponding setting is enabled
- Added setting for order deletion management
Changes and improvements:
- Changed module operation: can work independently of commerceml modules
- Changed product and order search and external_id saving
v1.11.30
05.05.2023
New features and improvements:
- Added directory check and creation if missing
v1.11.29
03.05.2023
New features and improvements:
- Added characteristic mapping for site transfer
Changes and improvements:
- Changed logging structure
v1.11.28
30.12.2022
Changes and improvements:
- Negative stock now displays as zero
v1.11.27
09.10.2022
New features and improvements:
- Module standardization
v1.11.26
13.12.2022
New features and improvements:
- Reserve now deducted from stock
Fixes and changes:
- Stock exported by warehouse specified in settings
v1.11.25
09.12.2022
New features and improvements:
- Added stock import via webhook
- Added full stock import on button click
- Added external code support for new cml in product and stock import
- Added settings
Changes and improvements:
- Settings grouped more logically
v1.10.25
09.10.2022
New features and improvements:
- Module standardization
v1.10.24
17.09.2022
Changes and improvements:
- Changed and optimized status change and product reservation
v1.9.24
16.09.2022
New features and improvements:
- Added support for over 100 order items
- Added pre-controllers for old and new CommerceML (no code needed)
- Added customer info update
Changes and improvements:
- Changed order number assignment logic
- Changed log writing and viewing
- Changed default settings
Fixes and changes:
- Fixed settings error when module disabled
- Fixed product addition to order when loading in cs-cart
- Fixed many bugs and notices
v1.8.24
22.02.2022
Fixes and changes:
- Fixed order status change bug
v1.8.23
16.02.2022
New features and improvements:
- Added order placement even when product not found
Fixes and changes:
- Fixed product search logic in MoySklad
v1.8.22
10.02.2022
Fixes and changes:
- Fixed error
v1.8.21
20.01.2022
Fixes and changes:
- Fixed bug
v1.8.20
20.01.2022
New features and improvements:
- Added ability to update some product characteristics in cs-cart
v1.7.20
14.01.2022
Fixes and changes:
- Fixed status change bug
v1.7.18
29.11.2021
Changes and improvements:
- Changed module icon
v1.7.17
04.11.2021
Fixes and changes:
- Fixed order to storefront binding bug
v1.7.16
28.10.2021
New features and improvements:
- Added partial product data update in cs-cart
Fixes and changes:
- Fixed warranty info deletion bug
- Fixed order product bugs
- Fixed order address bugs
v1.6.16
21.10.2021
New features and improvements:
- Added setting to disable new order creation in cs-cart
Fixes and changes:
- Fixed discount disappearance bug in two-way exchange
v1.6.15
18.10.2021
Fixes and changes:
- Fixed price deletion from MoySklad on bulk product edit bug
- Fixed order creation error in MoySklad (auto delivery service creation) bug
- Fixed order discount calculation bug
v1.6.14
08.10.2021
Fixes and changes:
- Fixed article deletion from MoySklad on bulk product edit bug
v1.6.13
29.09.2021
Changes and improvements:
- Changed language variables
v1.4.9
23.03.2021
New features and improvements:
- Added language variables
v1.4.8
02.03.2021
Fixes and changes:
- Fixed bug
v1.4.5
02.03.2021
New features and improvements:
- Added en lang
Fixes and changes:
- Changed tax
v1.4.3
15.02.2021
New features and improvements:
- Added functions
v1.4.1
04.02.2021
Changes and improvements:
- Updates and improvements
v1.4.0
25.01.2021
New features and improvements:
- Save external_id when creating product in MoySklad by module
- Added table for default warehouse and organization settings
- Added default organization selection
Fixes and changes:
- Fixed warehouse settings reset for unknown reasons
v1.3.8
15.12.2020
Fixes and changes:
- Bug fix
v1.3.7
15.12.2020
Fixes and changes:
- Fixed product updates
v1.3.6
11.12.2020
New features and improvements:
- Disable order numbering from CS CART
- Disable additional field updates
Fixes and changes:
- Fixed first order status - "Incomplete"
v1.3.5
09.12.2020
Fixes and changes:
- Fixed custom directories
v1.3.0
26.11.2020
New features and improvements:
- Added modification support
- Added order_id field to order comment
v1.2.5
20.10.2020
New features and improvements:
- Added settings for non-updatable orders
v1.2.4
14.10.2020
New features and improvements:
- Added priorities
v1.2.3
14.10.2020
New features and improvements:
- Added MoySklad API support
v1.2.2
06.10.2020
Fixes and changes:
- Fixed bugs
v1.2.1
01.10.2020
Fixes and changes:
- Fixed bugs
v1.2.0
30.09.2020
New features and improvements:
- Added additional fields
- Added tax accounting
- Added promo discount accounting
- Added legal entity support
v1.0.0
15.03.2020
New features and improvements:
- First release