RETAIL CRM

Role
Full-stack developer
Model
Software services · on behalf of Jekirdek Teknoloji
Industry
Cosmetics and personal care retail
Channels
Stores, POS, e-commerce, mobile
Scope
CRM · messaging · reporting · e-invoicing
01Overview

This isn’t a product; it’s an ongoing software service. I work in the same repositories and the same sprints as the company’s own team: business units open their needs as requests, and I clarify the requirement, write the API, the screen and the integration, ship it to production and follow up. Over time my area has grown to cover customer relationships, messaging, store reporting and e-invoicing.

Need

Customer data comes from the POS, the e-commerce site, the mobile app and marketing tools. Memberships and communication consents have to stay compliant with KVKK, Turkey’s data protection law, and with the Message Management System (IYS), and every message has to reach the right person through the right channel; stores and finance teams also need accurate reports to base their daily decisions on. The requests never stop, and most of them touch more than one system.

My contribution

I developed the CRM’s loyalty, segment and coupon rules, OTP and email verification, and the IYS and customer data platform syncs; I’m currently rebuilding the SMS infrastructure. For the store and finance teams I wrote reporting screens, the ETBIS category mapping and the approval flow for incoming e-invoices. I built from scratch the integration portal that takes sales from the POS and turns them into e-invoices and e-archive invoices, and I moved the applications to single sign-on with Keycloak.

02The life of a request
  1. 01

    Request

    The business unit opens its need in Jira; priority is set together with the team.

  2. 02

    Analysis

    Which system holds the data, which rule applies, what gets affected: all of it is pinned down.

  3. 03

    Development

    An API, a screen, a scheduled job or an integration; often all of them at once.

  4. 04

    Testing

    Verified together with the business unit in the development environment.

  5. 05

    Release

    Goes through code review and ships to production through the deployment pipeline.

  6. 06

    Follow-up

    Logs and scheduled jobs are monitored; feedback drives improvements.

03Highlights
01

Loyalty and segments

Gold, Premium and Classic memberships; segment change history, membership anniversary rewards, coupon and point rules. Scheduled jobs run the rules automatically every day.

02

Messaging infrastructure

Campaign, informational and OTP SMS; order and invoice notifications; audiences targeted by store, category and segment. Verification and welcome emails are generated from templates.

03

Consents and KVKK

Membership, privacy notice and commercial messaging consents are synced with IYS. The customer data platform sync, the error queue and account deletion requests are tracked end to end.

04

Security and single sign-on

Single sign-on and service-to-service client authorization with Keycloak; a suspicious customer list, plus rate limiting and a blocklist for phone lookups.

05

Store and finance reports

Line void, payment type, receipt detail and return voucher reports; ETBIS category mapping; a two-step approval flow for incoming e-invoices.

06

E-invoice integration portal

A portal that turns POS sales into UBL-TR e-invoices and e-archive invoices, talks to the integrator over SOAP, and tracks Revenue Administration (GIB) statuses and errors. I wrote its backend and its React frontend from start to finish.

05Who uses it
01

Stores

New members at the register, OTP verification, coupon and return processes; store reports.

02

CRM and marketing

Segments, campaign SMS, coupons and consent management.

03

Finance and accounting

E-invoices, e-archive invoices, incoming invoice approval and payment reports.

04

Customers

Sign-up via QR code, tourist registration, email verification and consent approvals.

06Architecture
01Channels
  • CRM screensCustomers, loyalty, campaigns
  • Customer formsSign-up, consent, invoice viewing
  • POS screensIn-store sign-up and returns
  • Store screensReports, incoming e-invoice approval
  • E-invoice portalSingle sign-on with Keycloak
02Services
  • CRM APIRabbitMQ queues · Quartz jobs
  • API gatewayPublic endpoints and partners
  • Store APIReport queue · Excel exports
  • E-invoice integrationFrom sale to e-Invoice and e-Archive
03Data and external systems
  • Short link serviceInvoice links in SMS
  • MySQLCRM data · read-only pool
  • Messaging and consent servicesSMS, email, IYS, CDP
  • BigQueryCampaign audiences and reports
  • POS and ERP systemsSales, cards and points · SOAP
  • E-invoice providere-Invoice, e-Archive, PDF

Customer, loyalty and messaging work lives in the CRM API; campaign SMS, consent checks and syncs run in the background through queues, and scheduled jobs run on Quartz, managed from the database. Forms and partners come in only through the gateway’s public endpoints. The e-invoice integration reads POS sales and sends them as e-Invoices or e-Archive invoices; customers open their invoice from the short link in the SMS.

External service
  • CRM screens → CRM API
  • Customer forms → API gateway (public endpoints)
  • POS screens → API gateway
  • Store screens → Store API
  • E-invoice portal → E-invoice integration (OIDC)
  • API gateway → CRM API
  • API gateway → Store API
  • CRM API → Short link service
  • CRM API → MySQL
  • CRM API → Messaging and consent services
  • CRM API → BigQuery
  • CRM API → POS and ERP systems
  • Store API → POS and ERP systems
  • E-invoice integration → POS and ERP systems
  • E-invoice integration → E-invoice provider (SOAP)
07Technology
01

Backend

CRM, store system and integration services

  • Java 17
  • Spring Boot
  • Spring Security
  • Hibernate
  • QuartzScheduled jobs
  • RabbitMQ
02

Frontend

Back-office screens, portal and customer forms

  • OpenUI5Back-office
  • React
  • TypeScript
  • Tailwind CSS
  • TanStack Query
  • Bootstrap
03

Data

Operational and analytical data

  • MySQL
  • SQL ServerPOS and ERP data
  • BigQueryData warehouse
  • Read poolRead-only data source
  • ExcelReport exports
04

Integrations

Messaging, consent and e-documents

  • SMSCampaigns · OTP · notifications
  • EmailVerification · templates
  • IYSMessaging consents
  • CDPCustomer data platform
  • e-Invoicee-Archive · SOAP
  • SAP HRApprover data
05

Security & DevOps

Single sign-on, gateway and deployment

  • Keycloak
  • Spring Cloud Gateway
  • Bitbucket Pipelines
  • Cloud Run
  • Firebase Hosting
  • Jira