Fratres

Digital Products & Engineering

E-commerce

We build online stores where payment, stock, invoicing, and shipping stay in step, so more orders don't simply mean more manual work.

The problem

The more orders we take, the more goes wrong: stock doesn't match, payments hang, and invoices are still keyed by hand.

Online store projects tend to start with a theme, but the storefront is only the visible surface. Most of the work is keeping one order consistent across payment, stock, invoicing, and shipping.

When conversion disappoints, teams redesign the product page. The leak is often further along: 3D Secure callbacks that never return, shipping costs that appear at the last step, a paid order canceled over a wrong stock figure.

Marketplaces raise the stakes. Separate stock counts per channel mean one unit sells twice, and the cancellation hurts your seller rating too.

You may recognize this

  • Customers get charged, but the order never reaches your admin.
  • The last unit sells on two channels at once.
  • Faceted filters flood Google's index with thin URLs.

How we work

  1. Platform decision

    SKU count, channels, B2B price rules, and team capacity decide between a hosted platform, headless, or custom build.

  2. Product data model

    Variants, attributes, and price lists get one defined structure, which filters, site search, marketplace feeds, and Product schema all draw from.

  3. Order state machine

    We define each state and allowed transition. Payment webhooks are signature-verified and processed idempotently, so a provider's retry can't create a second order or a double refund.

  4. Back office and compliance

    Stock reservation, e-Invoice and e-Archive, carrier labels, and marketplace sync run as background jobs, with failures in a visible queue. Pre-information forms, distance sales terms, KVKK notices, and İYS consent sit inside checkout.

What we deliver

  • Platform decision document
  • Product data model and import templates
  • Order state diagram
  • Payment, invoicing, and carrier integrations
  • Failure queue and operations panel
  • Pre-campaign load test report

How we measure

  • Checkout completion split by failure reason, separating design issues from bank issues.
  • Stock-related cancellations, the clearest sign of sync health across channels.
  • Time from order to invoice, which shows how much still runs by hand.

A cosmetics brand on several channels

Illustrative scenario: A cosmetics brand sells on its own site and several marketplaces, tracking stock separately per channel. We name one source of truth, reserve units the moment an order lands, and push updates through background jobs. Cancellations are coded by cause, so promotions get planned against real availability.

Common questions

Hosted platform or custom build?

For a standard catalog and retail checkout, start hosted. Custom or headless pays off when dealer pricing, made-to-order flows, or unusual integrations keep forcing workarounds.

How do we choose a payment provider in Türkiye?

Look past commission to installment support, 3D Secure success, card tokenization, webhook reliability, and settlement reports. A second provider behind a thin abstraction gives you a fallback during outages.

What's at risk when we leave our current store?

Unmapped URLs damage search traffic, saved card tokens sit with your payment provider and need a separate plan, and password hashes that can't move force customer resets.

Before we work together, let's think together.

Requests are answered by the founder.