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:
- Create a Stripe account at stripe.com
- Get your secret key from the Stripe Dashboard → Developers → API Keys
- Set the key in configuration or environment variable
Stripe__SecretKey - Configure webhook endpoint for payment confirmations (optional)
Iyzico
Payment provider popular in Turkey, supporting local payment methods and installments.
Setup:
- Create an Iyzico merchant account at iyzico.com
- Get your API Key and Secret Key from the merchant dashboard
- Configure in Backoffice → Settings → Payment Methods
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
VerifyServiceSidis 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:
- Checks the store's assigned provider first
- Falls back to priority-based provider selection if not set
AI Providers
The AI Chat assistant in the Backoffice supports multiple providers:
| Provider | Default Base URL | Default Model |
|---|---|---|
| Ollama | http://localhost:11434 | llama3.1 |
| OpenAI | https://api.openai.com/v1 | gpt-4o |
| Claude | https://api.anthropic.com/v1 | claude-sonnet-4-20250514 |
| Azure OpenAI | https://your-resource.openai.azure.com/openai | gpt-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
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)
Change the default RabbitMQ credentials in production.