OneLink
All case studiesE-commerce · Education

Online store and school website integrated with 1C

Jewelry catalog, booking for consultations and workshops, and an article library on one platform

About the project

The client is a school and a brand of handmade jewelry with natural stones: retail stores, online sales, consultations, workshops, courses and content. A single catalog category holds hundreds of one-of-a-kind pieces. The client needed one website that brings these lines of business together, never sells an item that is already sold and leads a visitor from an article to a purchase.

Tech stack

PHPYii2MySQL1CRobokassaYooKassa

Task

Combine a jewelry store, booking for consultations and workshops, course sales and content on one website. Accept online payments and show up-to-date stock of one-of-a-kind items from 1C.

Constraints

The website runs on ordinary shared hosting (PHP 7.4, Apache, deployment over SSH, no containers or queues), and the code was written within these limits. Every item exists in a single copy, and stock is kept in 1C, which is available only through HTTP requests: if 1C does not respond, the store must not sell blindly. Courses are sold on an external platform, and visitors have to be passed there together with their source tags. Payments come with receipts that comply with Russian fiscal law (54-FZ).

Solution

We built the store, schedule, personal account and library on top of a Yii2-based CMS. The catalog has categories, search by mineral and a “Why do you need this stone” filter built from product descriptions in 1C. The cart and payments work through Robokassa and YooKassa with receipts. Stock is updated from 1C every minute and checked again at payment; if 1C is unavailable, the store front shows that the shop is temporarily closed. The website downloads product photos from an external cloud and stores them in several sizes. We also added scheduled booking for consultations and workshops, a personal account with a cumulative discount and notifications, an article library and an admin panel with roles.

Challenges

The first version of the 1C exchange ran a heavy import every time a category was viewed. We replaced it with a lightweight sync of quantities only, protected against parallel runs. The new mode is switched on with feature flags and can be rolled back quickly.

Further development

The platform grows with the business: new landing pages, collections for search queries and SEO tools keep being added.

Result

We launched a single platform: a store with a catalog and filters, booking for consultations and workshops, a personal account with a cumulative discount, an article library and an admin panel. Stock is updated from 1C every minute, and an item that has already been sold cannot be paid for again.