Skip to main content

External Services

Quark Commerce integrates with several optional external services. Each can be configured via the Backoffice Settings UI or appsettings.json.

Payment Providers

Stripe

Global payment processor supporting credit cards, Apple Pay, Google Pay, and more.

Configuration:

{
"Stripe": {
"SecretKey": "sk_live_..."
}
}

Setup:

  1. Create a Stripe account at stripe.com
  2. Get your secret key from the Stripe Dashboard → Developers → API Keys
  3. Set the key in configuration or environment variable Stripe__SecretKey
  4. Configure webhook endpoint for payment confirmations (optional)

Iyzico

Payment provider popular in Turkey, supporting local payment methods and installments.

Setup:

  1. Create an Iyzico merchant account at iyzico.com
  2. Get your API Key and Secret Key from the merchant dashboard
  3. Configure in Backoffice → Settings → Payment Methods
info

Payment methods are configured per-store in the Backoffice. Each store can have different payment providers enabled.

Notification Providers

Notification providers are configured in Backoffice → Settings → Notifications. Each store can be assigned specific SMS and Email providers.

Email (SMTP)

Any SMTP-compatible email service (Gmail, SendGrid, Mailgun, Amazon SES, etc.).

Required fields:

  • SMTP Host, Port
  • Username, Password
  • From Address, From Name
  • Use SSL (boolean)

Twilio

Twilio provides both SMS and phone verification (Twilio Verify API).

Required fields:

  • Account SID
  • Auth Token
  • Verify Service SID (for phone verification flow)
  • From Number (for direct SMS)

Verification flow:

  • When VerifyServiceSid is configured, phone verification uses Twilio Verify API (recommended — Twilio manages code generation)
  • Without it, falls back to local code generation + SMS delivery

Per-Store Provider Assignment

Each store has SmsProviderId and EmailProviderId fields. Configure them in Backoffice → Settings → Stores → Edit Store. When sending notifications, the system:

  1. Checks the store's assigned provider first
  2. Falls back to priority-based provider selection if not set

AI Providers

The AI Chat assistant in the Backoffice supports multiple providers:

ProviderDefault Base URLDefault Model
Ollamahttp://localhost:11434llama3.1
OpenAIhttps://api.openai.com/v1gpt-4o
Claudehttps://api.anthropic.com/v1claude-sonnet-4-20250514
Azure OpenAIhttps://your-resource.openai.azure.com/openaigpt-4o

Configuration: Backoffice → Settings → AI Settings

The AI assistant has 8 read-only tools for querying business data (orders, customers, products, revenue).

Vector Search (Qdrant)

Qdrant is used for AI-powered product recommendations and semantic search.

Configuration:

{
"Qdrant": {
"Host": "localhost",
"Port": 6334,
"ApiKey": ""
}
}

Setup:

docker run -d \
--name qdrant \
-p 6333:6333 \
-p 6334:6334 \
qdrant/qdrant
tip

Qdrant is fully optional. Product search works without it using standard database queries. Qdrant enhances search with semantic/vector similarity.

RabbitMQ

RabbitMQ is required for the event system. The API publishes domain events to a topic exchange (quark.events) via the transactional outbox pattern.

Events are published with routing keys like events.OrderPlaced, events.ProductCreated, etc. External worker services can subscribe to these events for asynchronous processing.

Management UI: http://your-rabbitmq-host:15672 (default credentials: guest/guest)

warning

Change the default RabbitMQ credentials in production.