SIBA Store: one catalog, every channel
SIBA is a B2B supplier in North Cyprus and Turkey (HVAC, pumps, water treatment, pool and cleaning equipment). I rebuilt sibastore.com as the single source of truth: the website, the checkout, the WhatsApp bot, the voice assistant and the phone assistant all read the same live product data.
Figures measured on 26 October 2026. Sole developer: design, backend, data pipeline, infrastructure and AI.
The problem
Product knowledge was spread across hundreds of supplier PDF catalogs, an inventory spreadsheet and people's heads. Prices came in four currencies (TL, USD, EUR, GBP). Customers asked the same questions by phone and WhatsApp all day, and every channel gave a slightly different answer.
What I built
1. A storefront that feels like a brand site
A new design modeled on large manufacturer sites: a clean header with live exchange rates, a category slider, product cards with one-tap WhatsApp, compare and add-to-cart buttons, and product pages with fixed tabs for description, specifications, the catalog page the product came from, and its user manual.
- Instant cart: add-to-cart updates the UI immediately and syncs in the background.
- Compare: up to four products side by side, available from every product card.
- Speed: card-size WebP thumbnails, gzip and cache headers at both proxy layers and TLS session reuse cut the homepage from about 17 s to 3.4 s on a cold load.
2. Multi-currency checkout that doesn't lose money on exchange rates
Mixed-currency carts are never summed into one meaningless number. VAT is calculated in the product's own currency first, and only the final amount is converted to TL with the live selling rate, so rounding and rate drift cannot eat the margin.
- Exchange rates refresh automatically from a market source; card payment is blocked if rates are stale.
- Pay by card through the bank's 3-D Secure hosted page, by bank transfer, or send the cart as a quote request.
- A separate payment page lets customers pay any amount without a cart, with an optional invoice number for accounting.
3. From supplier PDFs to clean product pages
Most product data lives in supplier catalogs. I built a Python pipeline that reads each catalog page by page: raw text first, OCR and a local vision model only where text is missing, then structured extraction of names, variants and specifications. Every value keeps a record of which PDF and page it came from.
- Image quality gates: product photos are cropped from the catalog or matched from the manufacturer, then checked for cut-off products, seller watermarks, phone numbers and web addresses. Clean crops replace bad images; the rest move to the end of their category.
- Manuals: user and service manuals are matched to products by model code and appear in the product's manual tab (116 products so far, more in progress).
- Local first: bulk work (OCR, vision checks, upscaling) runs on a local GPU, so it costs nothing per page.
4. Assistants that answer from the live site
One rule set for every assistant: the source is sibastore.com. If a product has a price, the assistant quotes it with VAT and the TL equivalent; if not, it routes the customer to the right sales contact. Instead of sending PDFs it sends the product page link, and only shares the catalog page when the customer insists. The WhatsApp bot runs on this rule today; the website voice chat and the phone assistant are moving to it next.
- Product search API with scored multi-word matching, built for all assistants.
- A chain of free LLM providers with automatic fallback, plus a self-hosted model on the server as the last resort.
- Normalizes Cypriot Turkish phrasing before searching.
On a CPU-only server, the slow part of a local LLM is reading the long system prompt, not writing the answer. Keeping the fixed instructions first and the changing product context last lets the prompt cache work: a follow-up question drops from about 37 s to 2–4 s on the same 3B model.
What's next
- Meaning-based product search (embeddings), so "my AC is dripping water" finds a condensate pump.
- Upload a project drawing (DWG/DXF) and receive three quotes (premium, mid-range, economy) by email and WhatsApp.
- How-to and maintenance guides for every product, linked from product pages.
- iOS and Android apps on the same data.