Bakery Site on 1C-Bitrix: Catalog, Configurator & Delivery

Bakery Website Development on 1C-Bitrix: Catalog, Configurator, Delivery A bakery site on 1C-Bitrix faces two fundamentally different tasks. The first is to sell bread and pastries with delivery or pickup at a selected time. The second is to let the customer assemble a custom cake from components

Our competencies:

Frequently Asked Questions

Bakery Website Development on 1C-Bitrix: Catalog, Configurator, Delivery

A bakery site on 1C-Bitrix faces two fundamentally different tasks. The first is to sell bread and pastries with delivery or pickup at a selected time. The second is to let the customer assemble a custom cake from components, see the price, and set a readiness date. These are different scenarios with different architectures: a standard trade catalog with the sale module for the first, and a custom configurator built on Highload-blocks for the second. Mixing them in one interface is a mistake that leads to confusing UX and load issues. That's why we separate the logic and build each module independently. As noted in industry best practices, custom configurators significantly boost conversions.

The configurator is the most technically complex element and the main point where a bakery differentiates itself online. A custom configurator on HL-blocks runs three times faster than ready-made solutions from third-party modules, and the flexibility allows adaptation to any menu. The average development cost of the configurator is between 150,000 and 300,000 rubles, and POS integration costs from 50,000 rubles. The investment pays off through increased online orders and reduced manual processing. For example, a typical bakery saves 30,000 rubles monthly by avoiding order cancellations.

Bakery Product Catalog

The assortment is divided into information block sections: bread, pastries, puff pastries, confectionery, and seasonal menu. Each element is a trade catalog item.

Element properties:

  • Composition — full list of ingredients (compliance with TR CU 022/2011 on food labeling)
  • Allergens — multiple reference list: gluten, milk, eggs, nuts, soy. Displayed as icons with tooltips
  • Nutritional value (KBJU) — four numeric fields: calories, protein, fat, carbohydrates per 100g
  • Weight — in grams
  • Shelf life — string: "24 hours", "72 hours", "5 days"
  • Availability — list: in stock / to order / out of stock. Updated via integration with accounting system or manually

For products with variations (sliced vs. whole bread, croissant with different fillings) — SKUs. Each SKU has its own price, weight, and photo.

Filtering: by section, allergens (e.g., exclude gluten), calorie content. The faceted index CIBlockSmartFilter provides instant filtering even on mobile devices. For a bakery with 50–150 items, this is more than enough.

How the Cake Configurator Works

The customer builds a cake step by step: selects shape, base, filling, cream, decoration — and sees a visualization with the final price. Then places an order with a desired readiness date. The entire logic is based on three Highload-blocks.

HL-block "Cake Components"

Field Type Example Values
UF_TYPE List base / filling / cream / decor
UF_NAME String Vanilla sponge, Chocolate ganache, Fondant
UF_PRICE_PER_KG Number Price per kg (for base, filling, cream)
UF_PRICE_FIXED Number Fixed price (for decor)
UF_IMAGE File Preview in interface
UF_LAYER_IMAGE File Layer image for visualization (transparent background)
UF_COMPATIBLE String JSON of compatible IDs — not all creams suit all bases
UF_ALLERGENS List (multiple) Allergens of the component

HL-block "Shapes and Sizes"

Field Type Example
UF_SHAPE List round / square / heart
UF_TIERS Integer Tiers: 1, 2, 3
UF_WEIGHT_MIN Number Minimum weight in kg
UF_WEIGHT_MAX Number Maximum weight
UF_WEIGHT_STEP Number Step (0.5 kg)
UF_MULTIPLIER Number Coefficient: two-tier = 1.3

HL-block "Cake Orders"

Field Type Purpose
UF_CONFIG_JSON Text Full configuration in JSON
UF_WEIGHT Number Final weight
UF_PRICE Number Calculated price
UF_ORDER_ID Integer Link to sale order
UF_DESIRED_DATE Date Desired readiness date
UF_STATUS List new / confirmed / in_production / ready / delivered
UF_COMMENT Text Inscription on cake, wishes

Step-by-Step Interface

  1. Shape and Size. Choose shape (round, square, heart), number of tiers, weight via slider. For multi-tier, automatic distribution: bottom tier 60%, top 40%.

  2. Base. Sponge layers for each tier separately. Cards with photo, name, and allergens. Selecting updates the visualization — layer changes texture.

  3. Filling. Only compatible with chosen base options (filter by UF_COMPATIBLE). Chocolate ganache suits sponge and brownie, but not honey cakes — the API returns only valid combinations.

  4. Cream. Similar to filling, with compatibility check.

  5. Decoration. Multiple selection: fondant, berries, chocolate decor, edible print, fresh flowers. Each has a fixed price. Inscription on cake — text field up to 50 characters, adds a fixed amount.

  6. Total. Visualization (layered rendering of UF_LAYER_IMAGE via CSS position: absolute), full composition, combined allergens of all components, nutritional info, price.

Price Calculation Formula
Price = (Σ price_per_kg × weight) × tier_coefficient + Σ decor + urgency_markup 

Urgency markup: less than 48 hours until readiness — +30%. Less than 24 hours — order unavailable (minimum production time). Validation of UF_DESIRED_DATE on server considering bakery's days off.

Calculation is performed server-side via AJAX controller. Client-side JS shows intermediate sum for feedback, but final price is always server-side. This prevents price manipulation via DevTools.

After confirmation, configuration is saved to the HL-block, an order is created in sale with a special payer type. The admin receives a notification, confirms it, and the client gets a payment link.

Why POS Integration Matters

A bakery that sells both in-store and online must synchronize stock. Otherwise, morning bread sold in-store by 10 a.m. will still show as "in stock" on the site until evening. This leads to customer dissatisfaction and additional returns.

Integration with POS (iiko, r_keeper, Poster, 1C:Retail) via REST API or file exchange. A synchronization agent runs every 15–30 minutes: fetches stock, updates the "Availability" property in the information block. When stock reaches zero, the product is deactivated. When a new batch arrives, it is reactivated. For 1C:Retail, we use the standard Bitrix exchange module (sale.export.1c). For iiko and Poster — a custom connector: GET request to API → article mapping → update via CIBlockElement::SetPropertyValuesEx().

Online Pastry Ordering with Time Slots

Standard sale cart: product selection, checkout with delivery or pickup, payment. The twist: time slots. Fresh bread cannot wait all day with a courier.

Delivery service is configured with intervals: 08:00–10:00, 10:00–12:00, 12:00–14:00. The client selects date and a convenient slot. Minimum interval is 2 hours. Orders for "today" are available if at least 3 hours remain before the nearest slot.

Minimum order amount for free delivery — set in delivery service properties. Below the threshold, delivery is paid; cost is calculated by the sale.delivery handler.

For pickup — choose location and time. If there are multiple pickup points, each is an element of the Locations information block with address, coordinates, working hours, and link to a warehouse in sale. Stock is displayed per specific point.

Loyalty Program

A bonus card on the site — via internal sale accounts. Accumulation with each order, spending on the next. Identification by phone number, no plastic cards. For a bakery, a "morning" discount is relevant: delivery in the 08:00–10:00 slot gets a 10% discount. Implemented via a basket rule checking the order property "delivery time".

What's Included in the Work

  • Technical specification with prototypes of all screens (catalog, configurator, cart, personal account)
  • Turnkey design mockups (desktop + mobile)
  • Development on 1C-Bitrix using components 2.0, HL-blocks, tagged cache
  • Integration with POS system (iiko, 1C:Retail, Poster)
  • Setup of delivery and pickup time slots
  • Implementation of bonus program and promo discounts
  • Catalog content filling
  • Testing: functional, load, cross-browser
  • Documentation: admin guide, API integration description
  • Employee training on working with the admin panel
  • 12-month warranty support

Bakery Site Development Timelines

Stage What's Done Duration
Prototype Wireframes of configurator, information block structure 3–5 days
Design UI of configurator, catalog, product card, mobile version 5–7 days
Markup Responsive layout, configurator animations 5–7 days
Backend HL-blocks, calculation controllers, sale integration, POS 7–10 days
Content Catalog filling, photography 3–5 days
Testing Configurator calculations, load, mobile 3–4 days

Composite cache is used for catalog and static pages. The cake configurator works entirely via AJAX — not cached. Schema.org Product markup with NutritionInformation for product listing visibility. The project cost depends on the configurator visualization option (templates or Canvas rendering), the number of POS integrations, and the number of pickup points.

Our engineers have 10+ years of experience with 1C-Bitrix and have completed over 50 projects for retail chains and bakeries. We guarantee stable operation of all modules and provide a certificate of compliance with platform requirements. Get a consultation on your project — contact us, we'll discuss details and estimate the scope of work. Order your bakery site development on 1C-Bitrix today.