1C two-way sync + lock-fields
Catalogue auto-syncs with 1C every 15 minutes. Custom lock-fields (Category.parent_locked, Product.locked_fields) protect manual edits from being overwritten. Each field in the CMS shows a lock icon.
A catalogue of 3,000 SKUs and 1,084 categories that keeps itself in sync with 1C, never overwrites manual edits, and survived four site-engine migrations over ten years.
Safari Zbroia is the online store of Safari Ltd in the tactical-gear segment. Roughly 3,000 SKUs are grouped into 1,084 categories and 208 brands. Two interface languages, full-featured filtering, cart, comparison, user accounts and order management — all running on a dedicated Django backend with PostgreSQL.
In ten years the project has gone through four engines — PrestaShop (2014), Joomla, OpenCart and Bubble (2024) — and finally settled on Django. All of its SEO equity, backlinks, indexation and organic traffic have been preserved through redirect maps assembled from the Wayback Machine archives and nginx access logs.
1C builds the catalogue its own way: every size is a separate SKU and the category tree is whatever 1C decides. The merchandising team needs a clean, web-friendly catalogue while prices and stock keep syncing from the accounting system. The task: combine automatic sync with full editorial control on the website.
The second part — rescue a decade of SEO after four engine migrations, deliver PageSpeed 95+, security hardening and readiness for AI search engines. All of it for a sensitive product segment with geographic traffic restrictions.
Catalogue, brands and about pages on a 1440-wide viewport. Click any tile to zoom.
Same pages on a 390-wide iPhone viewport — fully adaptive layout, hamburger navigation, optimised images.
Custom Django admin + ContentTools
Python (Django 4.2 + DRF), PostgreSQL 16
Server-rendered templates, Vanilla JS, Swiper
1С REST sync, Google Translate, DB-IP GeoIP, Нова Пошта
Catalogue auto-syncs with 1C every 15 minutes. Custom lock-fields (Category.parent_locked, Product.locked_fields) protect manual edits from being overwritten. Each field in the CMS shows a lock icon.
The translate_site_to_en management command localised 2,119 products and 518 categories in ~40 minutes via googletrans. Available as a CRON job or a one-click CMS batch action.
Sitemap-index with 5 sub-sitemaps (1,490 image entries), JSON-LD for ProductGroup, Brand, BreadcrumbList, OfferShippingDetails and MerchantReturnPolicy, hreflang x3, seo_backfill command for bulk meta generation.
23,031 URLs collected from the Wayback Machine CDX API + 187 live 404s from nginx logs. Python matcher generated a CSV of 10,315 redirects. Django middleware reads the CSV into memory at startup.
nginx HTTP/2 + gzip, 1,759 WebP thumbnails at 400x400, HTML minified by 33%, async CSS for below-the-fold modules, fetchpriority="high" on the hero, preconnect/preload hints.
CSP with a 16-byte urlsafe nonce per request, two modes: strict for public pages, relaxed for /admin/ and /cms/. Geo-block HTTP 451 for RU/BY traffic via DB-IP Country Lite (~8 MB mmdb) as the first middleware in the chain.
The business now has a single source of truth: 1C refreshes prices and stock every 15 minutes, while editorial overrides are protected by lock-fields. A single pass of the UK→EN auto-translator localised 2,119 products and 518 categories in ~40 minutes. PageSpeed climbed from 30 to 95+, HTML is 33% lighter and key images are served in WebP.
10,315 redirects preserved Google rankings after four engine swaps. The site is AI-search-ready: robots.txt allows OAI-SearchBot, Claude and Perplexity, /llms.txt describes the content map, and JSON-LD covers Product, ProductGroup, Brand, BreadcrumbList, OfferShippingDetails and MerchantReturnPolicy. Nonce-based CSP and a geo-block close the security loop.
The site is built on Python (Django 4.2) with Django REST Framework and PostgreSQL 16. The frontend uses server-rendered Django templates, Vanilla JS and Swiper. The server runs Ubuntu 24.04 with nginx HTTP/2 and Let's Encrypt SSL.
Yes, the site is fully bilingual: Ukrainian and English. The translate_site_to_en management command handles 14 models — Product, Category, HomepageSlider, AboutPage, InfoPage, SiteContacts and others — in a single run via googletrans.
A Django script polls the 1C REST API every 15 minutes and updates prices and stock levels. Lock-fields (Category.parent_locked, Product.locked_fields) protect any field edited manually by a manager — 1C cannot overwrite those fields.
Enabled nginx HTTP/2 and gzip, generated 1,759 WebP thumbnails at 400x400, reduced HTML size by 33% with htmlmin, applied async CSS loading for below-the-fold modules, added fetchpriority="high" and preload/preconnect for the hero image, and converted brand logos to WebP (average 60 to 13 KB).
Yes. Artbrain builds specialised online stores on Python/Django or PHP with 1C integration, automated SEO and security hardening. Leave a request — we will reply within 4 working hours.
Need a similar specialised e-commerce with 1C sync and SEO foundation? Tell us about your task — we will reply within 4 working hours.
Warehouse, inventory and logistics management
Customer, sales and communication management
Multi-page website to represent your business
24/7 monitoring, backups, updates, bug fixes
What a warehouse WMS system is, when a business needs it, how it differs from ERP and CRM, and what is included in Artbrain WMS development from $2,500.…
Read article →