It is necessary to implement an automated integration between the Visma Horizon accounting system (via REST API) and the WooCommerce online store (WordPress):
- Automatic synchronization of products, stock levels, and prices from Horizon to WooCommerce.
- Automatic transfer of orders placed on the website back to Horizon.
- The integration must be reliable, support error logs, and ensure data protection.
Visma Horizon — is an accounting system (ERP) for business that automates accounting, warehouse, sales, procurement, product management, staff, etc. It supports directory management (nomenclature, warehouses, product groups), price calculation, stock levels, order processing, and document flow.
Key points for the task:
Visma Horizon has a REST API through which data about products, stock levels, orders, and directories can be retrieved and sent.
All data needed for the online store (products, prices, stock levels, orders) are stored in tables within Horizon.
We want to automatically synchronize products and stock levels from Horizon to WooCommerce, as well as transfer orders from WooCommerce back to Horizon for further processing.
Synchronization of products from Horizon to WooCommerce
Retrieval from Horizon via API:
- Import product groups (categories) and other directories (units of measurement, warehouses, etc.) from Horizon to WooCommerce while preserving the structure
Complete list of products (nomenclature)
Product name, unique code, barcode, description, category/group, unit of measurement
Current stock levels for selected warehouses
Current prices (considering relevance by date and required price lists)
Images
Updating WooCommerce:
Create new products and update existing ones
Synchronize stock levels and prices on a schedule
Link to WooCommerce categories
Error handling (logging, alerts in case of failures)
Filter out outdated/inactive items
Receiving and processing orders from WooCommerce to Horizon
Sending each new order to Horizon via REST API:
- Transmit all order data: number, date, order composition (products, quantity, price), customer (name, email, phone, address), delivery and payment method, order status.
• After sending, the order is recorded in Horizon and awaits manager confirmation (implement transfer of status or flag indicating the order requires confirmation).
• After receiving a response/status from Horizon — synchronize the order status back to WooCommerce (e.g., "paid", "shipped", "cancelled", "confirmed by manager" etc.).
• Log successful/unsuccessful transfer attempts.
• Implement automatic re-sending in case of errors.
• Ensure error handling and logging (error logs, event logs, and actions).
Integration with online payment systems is not required.
All orders placed through the WooCommerce online store are processed by a manager and paid via bank transfer between companies (B2B).
Payment status information will be manually recorded in Horizon and/or WooCommerce depending on the business process.
The entire integration and testing process must initially be implemented in a test environment (sandbox), with detailed instructions for launching and transitioning to the production server.