Payments are experiencing issues due to temporary restrictions in Russia. If your payment does not go through, please submit a support request.Our support team is available 24/7 — we are always here to help with hosting and server issues.We are now accepting requests for dedicated server rental and colocation services in our data center.Reminder: we recommend enabling backups for additional data protection.A new VPS/VDS lineup with NVMe storage and improved performance is now available.Maintenance work on some servers has been completed. All services are operating normally.
Article6 min readViews0

How to Draft a Technical Specification for Integrating an Online Store with 1C: What to Describe Before Development

A practical template for a technical specification for data exchange between an online store and 1C: data sources, identifiers, conflict resolution rules, error handling, and acceptance criteria.

Comments 0

Desktop with data exchange diagrams for preparing a technical specification
In this article

The phrase "connect the website to 1C" sounds like a task, but it contains almost no data for estimation or development. In one project, the accounting system transmits only stock levels; in another, it sends the entire catalog, prices, and images, while orders are returned. Even the same word "price" can mean retail price, wholesale price, contract price, or a price calculated after authorization.

A good technical specification does not need to describe source code. It must eliminate ambiguity: which data participates in the exchange, where the source is located, how objects are matched, and what should happen in case of an error.

First, draw an exchange map

It is better to start not with a list of fields, but with a flow table. For each object, specify the source, recipient, direction, frequency, and the responsible data owner.

For example:

  • products and attributes: from 1C to the website;

  • prices: from 1C to the website, separately for each price type;

  • stock levels: from 1C to the website by warehouse;

  • images and SEO texts: from the website or PIM, not returned to 1C;

  • orders: from the website to 1C;

  • payment, assembly, and shipping status: from 1C to the website

  • delivery data: the source depends on the service used and the checkout scheme.

This map immediately detects conflicts. If a manager can change prices both in 1C and on the website, you must determine in advance whose change takes priority. Otherwise, the exchange will reliably overwrite the work of one of the employees.

Fix permanent identifiers

The name and article number are not always suitable for linking objects. Names are edited, article numbers sometimes repeat, and one product on the website can have multiple product variants by color and size.

The technical specification should specify:

  • which identifier links a product in 1C to a catalog item on the website;

  • how characteristics and product variants are linked;

  • what happens when an SKU is changed or a product is moved to another group;

  • whether a product can be created manually on the website and who assigns it an external identifier;

  • how the system handles an object without an identifier or with a duplicate value.

For exchange via CommerceML, external object identifiers are usually important, but the mere existence of the standard does not eliminate the need for design. Modified 1C configurations, several information blocks, or a supplier catalog can change the mapping scheme.

Describe the catalog at the level of real data

The phrase "export product cards" is too broad. List the fields and rules for each entity: name, article number, VAT rate, unit of measurement, brand, properties, weight, dimensions, barcodes, images, categories, prices, and stock.

Separately answer the following questions:

  • which properties create product variants;

  • whether new properties and values can be created automatically

  • how multiple images are transmitted and their order

  • what to do with a product deleted or marked for deletion in 1C

  • whether to display products with zero stock

  • whether to sum warehouse stock levels or show availability by region

  • how to round prices and which system calculates the discount

The more precise these rules are, the less manual cleanup is required after the initial full export.

Analyze the order lifecycle

An order is not a single document but a sequence of changes. The technical specification should describe the entire path: creation on the website, transfer to 1C, reservation, payment, picking, shipping, cancellation, and return.

For each stage, specify which data is transferred and who can modify it. Scenarios where an order is edited after synchronization are especially critical: the buyer changes the address, the manager replaces an item, payment arrives late, or the delivery service splits the shipment.

You must define status mapping in advance. The "completed" status on the website and the sales document in 1C may reflect different stages of the process. Simple matching by similar names often triggers false notifications for buyers.

Do not select a carrier before defining the task

CommerceML, REST API, message queues, and file exchange are methods of data delivery, not the project goal. The choice depends on catalog volume, acceptable latency, product versions, 1C configuration capabilities, and reliability requirements.

The technical specification should document constraints: how many products and variants are transferred, how frequently stock levels must update, whether full updates are allowed, if there are multiple websites or databases, which ports and addresses are available, and whether encryption and IP restrictions are required.

For frequent exchange of small changes, incremental transfer is essential. For large exports, split into parts and resume after a failure. If these requirements are not specified, a scheme working on a test catalog may not withstand production volume.

Describe errors as part of the product

Integration runs for a long time, so rare failures are inevitable. The question is not whether an error will occur, but whether it will be noticed and whether the exchange can continue without duplicates.

The technical specification must include answers to:

  • where the exchange log is stored

  • which errors are considered temporary and which require intervention

  • how many times the operation is repeated;

  • whether the package number and the last successfully processed object are preserved;

  • who receives the notification and with what delay;

  • whether the package can be safely repeated;

  • how to restore the exchange after a partially uploaded file.

The message "exchange completed" is insufficient. A useful log shows the time, direction, count of read, created, updated, and rejected objects, as well as a clear reason for rejection.

Immediately record acceptance criteria

The formulation "data synchronizes correctly" is untestable. Replace it with specific scenarios. For example: a stock change in 1C appears on the site no later than ten minutes later; re-uploading the same package does not create a second product; a paid order is transferred to 1C only once; an unknown property value goes into the log and does not stop other items.

Acceptance testing requires a set of control products and orders: a simple product, a variant product, zero stock, multiple prices, a discount, cancellation, partial shipment, and a return. The expected result is fixed before the test, not explained after it.

Short Requirements Framework

A practical assignment can be assembled from nine sections:

  1. The goal of the integration and the project boundaries.

  2. Systems, versions, and responsible parties.

  3. Data flow diagram.

  4. Composition of entities and fields.

  5. Identifiers and matching rules.

  6. Schedule, volumes, and speed requirements.

  7. Conflicts, errors, logging, and notifications.

  8. Security and access controls.

  9. Test scenarios and acceptance criteria.

Such a document does not replace an audit, but shifts the discussion from the abstract concept of 'connecting two systems' to a set of verifiable solutions. This helps evaluate the project more accurately and, most importantly, prevents discovering business rules only after launch.

Discussion 0

Share your experience and ask questions. Comments without links appear after editorial review.

No comments yet. Start the discussion.