Perfume online store integration with 1C via REST API

Perfume online store integration with 1C via REST API

APIFull-stack delivery
Status: Active

A perfume and cosmetics retail chain launched an online store with more than 15,000 SKUs, including products with many attributes (volume, fragrance type, brand, gender, country of origin). Previously, data was exported once a day via CommerceML, which led to sales of out-of-stock items and loss of customer trust. The requirement was to show up-to-date stock for each warehouse (retail stores + central warehouse) in real time, automatically reserve goods on order placement, and pass orders to 1C for fulfillment. Security and the ability to scale for seasonal peak loads (before March 8 and New Year) were key conditions. On the client side, the 1C configuration was extended to publish HTTP services and scheduled jobs were configured.

Technologies

  • 1C: platform 8.3, Trade Management configuration (rev. 11), extended with HTTP services for REST API, Bearer token authorization.
  • Site: SvelteKit, Node.js, Redis, Nginx, Docker.
  • Exchange protocol: REST API over HTTPS, JSON formats, incremental change synchronization.
  • Monitoring: Sentry for error tracking, Grafana for performance analytics.

Solution

  1. Client-side 1C customization: HTTP services with endpoints were created
  2. All requests are protected with JWT tokens; access rights are configured per warehouse.
  3. Catalog optimization: in 1C, directories were extended for site needs — attributes such as “Fragrance notes”, “Gender”, and “Fragrance type” were added and passed in JSON as a property array. This enabled convenient filters and sorting on the site without extra requests.
  4. Sync architecture: the site runs a background data refresh that every 2 minutes requests the list of changed items from 1C. Stock and prices for popular products are cached in Redis with a 30-second TTL, which cuts requests to 1C by 5×. When viewing a product page, availability is read from Redis — page response < 150 ms.
  5. Order handling: on checkout, the site sends a synchronous POST request to 1C with the order contents, selected warehouse, and customer data. 1C checks stock at request time, reserves the goods, and returns the order number and status. If 1C is unavailable, the order is queued in Redis and processed automatically when the connection recovers — this prevented order loss even during overnight maintenance.
  6. Logging and monitoring: 1C logs all incoming requests (IP, time, payload) for audit. On the site, all API interaction errors go to Sentry, with alerts when response time exceeds 3 seconds or reservation errors appear.

As a result, stock update time dropped from 24 hours to under 1 minute, unfulfilled orders due to missing stock decreased, and manual order processing in 1C was automated. The system handled peak pre-holiday loads, processing up to 120 orders per minute.

Ready to take your project to the next level?

If you need an experienced full-stack web developer, I'm here to help. I specialize in building visually appealing, user-friendly and responsive web apps. Reach out via social channels or messengers to discuss your next project.

GitHub
Телефон
Telegram
WhatsApp
Gmail
I am web  –  2020 – 2026