OXID eShop is an e-commerce system from Germany built for projects requiring deep integration with corporate systems. Unlike mass-market solutions like WooCommerce, OXID was created for situations where an online store becomes the central hub of business processes. ERP, CRM, PIM, warehouse systems, logistics — everything works as a unified organism.
Developer — OXID eSales AG from Freiburg, released first version in 2008. Over 16 years, the system secured a strong position in German-speaking markets, especially in mid-sized and large businesses. Among clients: Mercedes-Benz, Zeiss, Intersport, Edeka — companies needing not just a product showcase but a complete digital sales infrastructure.
Main differentiator from competitors — combination of ready-made solutions for typical tasks with deep customization capabilities. Platform doesn't impose rigid frameworks, adapts to business processes rather than vice versa. May seem excessive for small business, but for mid-sized and large companies provides necessary flexibility without annual relaunches.
Editions and Licensing
OXID eShop comes in three editions for different business scales:
Community Edition — free version with open source code. Includes base functionality for launching an online store of any size. Suitable for small and medium businesses, startups, budget-limited projects. Limitations compared to commercial editions — no official manufacturer support and no SOAP/REST interfaces for integrations.
Professional Edition — commercial license for mid-sized business. Functionally identical to Community, difference is availability of technical support and built-in interfaces for external system integration. Chosen by companies where ability to quickly get OXID developer help during issues is critical.
Enterprise Edition — flagship edition for large business and holdings. Adds multi-tenancy (ability to manage multiple independent stores from single installation), extended roles and permissions system, additional B2B commerce tools. Cost from €32,000 per license, for existing clients relicensing €20,000.
All three editions work on same codebase, simplifying migration between them. Start on Community, grow — switch to Professional or Enterprise without rewriting store from scratch.
Architecture and Technical Stack
Platform built on modern PHP technologies with emphasis on modularity and extensibility.
Backend:
- PHP 8.0-8.1 (version 7.x OXID requires minimum PHP 8.0)
- MySQL 5.7+ or MySQL 8.0+, alternatively MariaDB 10.4+
- Composer for dependency management and module installation
- Doctrine ORM for database work
- Symfony components (HttpFoundation, EventDispatcher, Console)
Frontend:
- Twig as templating engine
- Smarty supported for backward compatibility with old themes
- Visual CMS for visual content editing
- Responsive themes out of box
- Headless approach possible via GraphQL API
Integrations:
- GraphQL API for headless commerce and mobile apps
- REST API for external system integrations
- SOAP interfaces (Professional and Enterprise)
- Webhooks for event-driven integrations
- Ready connectors to popular ERP, PIM, CRM systems
Modularity:
- Extensions installed via Composer
- Modules change behavior without core modification
- OXID eXchange marketplace with hundreds of ready modules
- Capability to develop custom modules per documented API
Architecture allows scaling both vertically (more powerful server) and horizontally (multiple servers with load balancing and database cluster). For high-load projects recommended setup: multiple frontend servers, separate database servers, Redis for caching, Elasticsearch for search.
Hosting Requirements
Minimum configuration for start:
- 1 vCPU / 2 GB RAM / 20 GB SSD
- Suitable for stores up to 500 products, few hundred orders per month
- Shared hosting handles small load
Recommended production configuration:
- 2-4 vCPU / 4-8 GB RAM / 40-80 GB NVMe
- Comfortably handles 5,000-10,000 products
- Up to 1,000 orders per day without degradation
Enterprise configuration for high loads:
- Frontend: 4+ vCPU / 8+ GB RAM, multiple instances behind load balancer
- Database: dedicated server 8+ vCPU / 16+ GB RAM, Master-Slave replication
- Cache: separate Redis server for sessions and cache
- Search: Elasticsearch cluster for search and filtering
- CDN for static assets and images
Operating system must be Linux — Ubuntu 22.04/24.04 or Debian 11/12 most common options. Windows Server theoretically works but not recommended by manufacturer.
Web server Apache 2.4 or Nginx. Apache easier to configure thanks to .htaccess files out of box. Nginx faster under high loads, requires manual rewrite rules configuration.
Database MySQL 8.0 or MariaDB 10.4+ with InnoDB engine. Leave transaction isolation level as REPEATABLE READ (default value). Database user needs permissions to create tables, views, execute migrations.
Installing OXID eShop via Composer
System deployment performed through Composer dependency manager. Assumes PHP of required version with all extensions, MySQL and web server already configured on server.
Connect to server via SSH:
ssh root@your-server.com
Install Composer if not present:
cd /usr/local/bin
curl -sS https://getcomposer.org/installer | php
mv composer.phar composer
chmod +x composer
Navigate to directory where store will be installed. Usually web server document root:
cd /var/www
Run Community Edition installation:
composer create-project --no-dev oxid-esales/oxideshop-project oxid-shop dev-b-7.4-ce
Command parameters:
--no-dev— skips dev dependencies (testing frameworks, debuggers)oxid-shop— directory name where system installsdev-b-7.4-ce— Community Edition version 7.4 branch
For Professional or Enterprise Edition command differs:
# Professional Edition
composer create-project --no-dev oxid-esales/oxideshop-project oxid-shop dev-b-7.4-pe
# Enterprise Edition
composer create-project --no-dev oxid-esales/oxideshop-project oxid-shop dev-b-7.4-ee
When installing commercial editions, Composer requests credentials. You receive these via email when purchasing license.
Installation takes 2-5 minutes depending on internet speed. Composer downloads OXID core, all dependencies, generates autoloaders, executes initial setup scripts.
After completion, navigate to created directory:
cd oxid-shop
Directory structure:
source/— store source files, web server document root should point herevendor/— Composer-installed dependenciesvar/— logs, cache, generated filescomposer.json— project dependency description
Configure permissions for web server. Assuming Apache runs under www-data user:
chown -R www-dаta:www-data source/
chmod 755 source/
chmod 777 source/tmp/ source/log/ source/out/pictures/ source/out/media/ source/export
chmod 666 source/config.inc.php source/.htaccess
These directories must be writable during store operation:
tmp/— temporary files, compiled templateslog/— error and debug logsout/pictures/,out/media/— product image uploads, mediaexport/— price list export files
Create database:
mysql -u root -p
In MySQL console:
CREATE DATABASE oxid CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'oxid_user'@'localhost' IDENTIFIED BY 'strong-password';
GRANT ALL PRIVILEGES ON oxid.* TO 'oxid_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Configure web server. For Apache create virtual host:
nano /etc/apache2/sites-available/oxid-shop.conf
Config content:
<VirtualHost *:80>
ServerName shop.your-domain.com
DocumentRoot /var/www/oxid-shop/source
<Directory /var/www/oxid-shop/source>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/oxid-error.log
CustomLog ${APACHE_LOG_DIR}/oxid-access.log combined
</VirtualHost>
Activate host and restart Apache:
a2ensite oxid-shop
a2enmod rewrite
systemctl restart apache2
Open browser, navigate to http://shop.your-domain.com/Setup
Web installer wizard launches:
Step 1: System Requirements Check Wizard checks PHP versions, extension availability, file write permissions. If anything red — fix on server and refresh page.
Step 2: Language and Country Selection Main language for admin interface and store. Default shipping country. Can change later.
Step 3: License Agreement Read OXID Community Edition terms (GPL v3), agree.
Step 4: Database
- Host:
localhost(if MySQL on same server) - Database name:
oxid - User:
oxid_user - Password: set when creating user
- "Create database" checkbox if not created manually
Wizard checks connection, creates tables, executes migrations.
Step 5: Demo Data Option to install demo products, categories, content. Useful for familiarization. Skip for production.
Step 6: Directories Paths to main store folders. Usually require no changes, wizard determines automatically.
Step 7: Administrator Email and password for admin panel access. Record securely — this is full store access.
Step 8: Completion Wizard applies settings, removes /Setup directory for security, shows links to admin panel and store frontend.
Navigate to http://shop.your-domain.com/admin — enter admin panel. Login — email specified during installation, same password.
Key B2B Capabilities
OXID eShop originally developed considering B2B sector needs where store functionality requirements substantially differ from B2C.
Individual Pricing: Assign different prices for different clients or client groups. Large wholesaler one price, small retail buyer another. Configurable at product, category, entire catalog level.
Usage example: industrial equipment manufacturer sells directly to factories with 30% discount, distributors 15%, retail stores at list price. In OXID create three price groups, assign clients to appropriate groups — system automatically shows correct prices.
Buyer Hierarchies: Model corporate purchasing structures. Company's chief purchaser sees orders from all subordinate buyers in their department. Can intervene, adjust, cancel junior employee orders.
Structure: Purchasing Director → Department Heads → Regular Buyers. Each level sees subordinates, manages budgets and limits.
Budget Management: Assign spending limits for buyers. Department manager can order €10,000 per month, exceeding requires approval. Budget debits automatically when placing order, balance visible in personal account.
Implemented via Budget Management module in Enterprise Edition. Configure periods (month, quarter, year), limits per user or group, notifications when reaching thresholds.
Recurring Orders: Automatic order placement on schedule. Every Monday at 9 AM order same set of consumables for production. Create order template once, system repeats on schedule.
Useful for regular supplies: office supplies, production components, restaurant food products. Saves managers' time, eliminates human factor.
Collective Orders: Combining multiple orders from different buyers of one company into common shipment. Three company employees order different products during week — Friday generates single invoice and delivery.
Reduces logistics costs, simplifies document flow. Instead of three invoices and waybills — one delivery with consolidated payment.
Session-Independent Carts: B2B buyers form orders not in one visit. Created order draft Monday, added positions Wednesday, coordinated with accounting Friday, placed order. Cart persists between sessions, accessible from different devices.
Multiple cart support: one for urgent order, second for planned, third for approval. Switch between them without losing data.
Customer-Specific Assortment Management: Show different product sets to different clients. "Retail" category client sees only specific product categories. "Wholesale" client sees everything plus special wholesale positions.
Configuration at category, manufacturer, individual product level. Access rules tied to client groups via admin panel.
Omnichannel and Headless Commerce
OXID eShop supports omnichannel commerce through GraphQL API. Means unified product base, orders, clients used for all sales channels: website, mobile app, marketplaces, retail points of sale.
GraphQL API provides flexible interface for data queries. Frontend can request exactly fields needed for rendering, without excessive traffic. Suitable for mobile apps where speed and traffic economy matter.
Example product list query via GraphQL:
query {
products(first: 10, filter: {category: "electronics"}) {
edges {
node {
id
title
price {
amount
currency
}
image {
url
}
}
}
}
}
Response contains only requested fields — ID, title, price, image. If additional data needed (description, specifications, warehouse availability) — add to query.
Headless approach separates frontend from backend. OXID acts as backend — product, order, client management. Frontend built separately on React, Vue, Angular or any other technology. Interaction via GraphQL API.
Headless pros:
- Freedom choosing frontend technologies
- Ability to create unique UX not limited by OXID templates
- One backend serves multiple frontends (site, mobile app, self-service kiosks)
- Easier to scale frontend and backend independently
Headless cons:
- Requires frontend development from scratch or adapting ready solutions
- More complex to maintain — two codebases instead of one
- OXID built-in features (CMS, forms) need implementing yourself
For most projects traditional approach (monolithic OXID with Twig themes) remains optimal. Headless chosen when need non-standard UX or serving multiple sales channels.
Multi-Tenancy for International Commerce
Enterprise Edition includes multi-tenancy — ability to manage multiple independent stores from single OXID installation.
Typical scenario: company sells in multiple countries. Each country — separate site with localized content, prices in local currency, integration with local payment systems and delivery. Physically one OXID with multiple subshops.
Multi-tenancy advantages:
Centralized management. One admin interface for all stores. Added product — can show immediately in all countries or selectively.
Shared product base. No need to duplicate descriptions, specifications, images for each market. Create product once, localize names and descriptions to sales country languages.
Unified technical infrastructure. One server or cluster serves all stores. Easier to scale, cheaper to operate than maintaining separate installations.
Centralized reporting. See sales across all countries by dimension: products, categories, clients, periods. Convenient for analyzing market effectiveness.
Subshop configuration:
In OXID admin create new subshop, specify:
- Domain:
shop-de.your-domain.comfor Germany,shop-fr.your-domain.comfor France - Interface and content language
- Currency
- Country-specific tax rates
- Region-available delivery and payment methods
Each subshop can have own design, but more often unified theme with localized elements used (language, images, content accents).
Products assigned to subshops selectively. For example, products requiring certification sold only in countries where obtained. Rest — everywhere.
Clients tied to subshops. User from Germany sees German store, prices in euros, German delivery methods. Switching between countries possible if settings allow.
External System Integration
For serious e-commerce projects, online store doesn't live isolated. Integrates with ERP for warehouse and logistics management, with PIM for product catalog management, with CRM for client work.
ERP Integration (1C, SAP, Microsoft Dynamics):
Data exchange about orders, warehouse stock, prices, clients. When buyer places order in OXID, automatically created in ERP for logistics processing. Stock changes in ERP instantly reflected on site — no situations selling what's not in warehouse.
Implemented via connector modules or custom development using OXID REST/SOAP API. Popular modules: OXID Connector for SAP, integrations with 1C from developers.
PIM Integration (Akeneo, Pimcore, inRiver):
PIM (Product Information Management) — centralized product information storage. Descriptions, specifications, images, videos, certificates, manuals. Especially relevant when products number thousands and information changes frequently.
PIM + OXID connection: all product data lives in PIM, OXID receives ready product cards via API. Updated specification in PIM — automatically updated on site in all languages and regions.
CRM Integration (Salesforce, HubSpot, Microsoft Dynamics CRM):
Client base synchronization between store and CRM. Client registered in OXID — automatically created in CRM. Manager made changes in client card in CRM — data updated in store.
Client purchase history visible in CRM for personalized offers. Email marketing through CRM uses OXID purchase data for segmentation and targeting.
Payment Systems and Logistics:
Out of box OXID supports dozens of payment providers: PayPal, Stripe, Klarna, SEPA Direct Debit, various bank gateways. Modules installed via OXID eXchange marketplace in couple clicks.
Courier service integrations: DHL, UPS, FedEx, local carriers. Automatic shipping cost calculation, label printing, shipment tracking — all from OXID admin.
When to Choose OXID eShop
OXID suits not every project. Certain scenarios reveal its strengths, others better solved by other platforms.
OXID optimal when:
Need deep corporate system integration. If store must synchronize with ERP, PIM, CRM in real time — OXID architecture built for this. Modular system, documented APIs, ready connectors simplify system connections.
B2B or mixed B2B/B2C project. Specific functions like buyer hierarchies, individual pricing, budget control make OXID natural choice for corporate sales.
Multi-tenancy required for multiple countries/brands. Managing dozens of stores from single installation saves infrastructure and maintenance resources.
Reliability and long-term support valued. OXID known for backward compatibility — projects work years without forced relaunches. Updates don't break customizations, version migrations relatively painless.
Budget for implementation and qualified developers available. OXID not "box" solution deployed and go. Requires configuration, customization, often — specific module development. But result precisely matches business processes.
OXID excessive when:
Simple online store for small business. If need quick product showcase without complex integrations — WooCommerce or Shopify handle for less money and time.
No technical specialists on staff. OXID requires PHP developers for configuration and support. If plan relying only on standard features without modifications — platform will be underutilized.
Startup with minimal MVP. At hypothesis testing stage need launch speed, not functionality depth. Simpler platforms give results faster.
Limited budget. Community Edition free, but implementation still requires development investment. Enterprise features (multi-tenancy, extended B2B) available only in expensive edition.
Performance and Optimization
OXID eShop with proper configuration handles high loads but requires optimization attention.
Caching:
Enable Opcode cache for PHP (OPcache) — 30-50% speedup out of box. In php.ini:
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
Configure application cache. OXID supports Redis for session and data cache storage. In OXID config (config.inc.php):
$this->aModulePaths['oxps/cache'] = 'oxps/cache';
$this->aConfigParams['iCacheTimeout'] = 3600;
$this->sShopURL = 'https://shop.your-domain.com';
Serve static content (CSS, JS, images) via CDN. Cloudflare, Amazon CloudFront, KeyCDN — choose by budget and client geography.
Database Optimization:
Indexes on frequently queried fields. OXID creates base indexes during installation, for custom queries add manually.
Partitioning large tables. If orders number tens of thousands, partition table by months or years.
Regular maintenance: ANALYZE TABLE, OPTIMIZE TABLE for current statistics and defragmentation.
Profiling:
Built-in OXID profiler shows slow queries, code bottlenecks. Activated in development mode, logs written to /var/log/.
Xdebug for detailed PHP code performance analysis. Find time-consuming functions, optimize.
New Relic or similar for production monitoring. See real-time metrics, get alerts on performance degradation.
Security
E-commerce stores critical data — client personal information, payment details, orders. Security mandatory.
Basic measures:
Update OXID and all modules. Manufacturer regularly releases vulnerability patches. Subscribe to security advisory, apply updates promptly.
HTTPS for entire site. SSL certificate from trusted CA (Let's Encrypt free, Sectigo/DigiCert for Enterprise).
Strong administrator passwords. Two-factor authentication via module from OXID eXchange.
Admin panel IP access restriction. In admin folder .htaccess:
Order Deny,Allow
Deny from all
Allow from 123.45.67.89
Allow from 98.76.54.32
Regular database and file backups. Automatic script once daily, storage off-server.
Advanced protection:
Web Application Firewall (ModSecurity for Apache/Nginx). Blocks typical attacks: SQL injection, XSS, CSRF.
File integrity monitoring. AIDE or Tripwire track OXID file changes, alert on suspicious activity.
Rate limiting for DDoS and brute force protection. Limit requests per IP via nginx or Cloudflare.
Payment data isolation. PCI DSS compliance for those accepting cards directly. Easier using third-party payment providers (Stripe, PayPal) — they handle PCI compliance.
Support and Community
OXID eSales provides commercial support for Professional and Enterprise licenses. Email, phone, ticket system. SLA with guaranteed response time.
Community Edition relies on community:
- Forum: forum.oxid-esales.com — active community, quick responses
- GitHub: github.com/OXID-eSales — core and module repositories, issue tracker
- Documentation: docs.oxid-esales.com — detailed technical documentation in English
- OXID eXchange: marketplace with modules and themes, some free, some paid
OXID partner network counts dozens of agencies specializing in implementation. In Germany, Austria, Switzerland wide choice. In other regions fewer partners, but competent developers familiar with platform exist.
OXID Certified Developer certification confirms architecture and best practices knowledge. When choosing contractor, certification presence is plus.
Alternatives to OXID eShop
In enterprise e-commerce segment several platforms compete:
Magento (Adobe Commerce) — most popular opensource platform for large stores. Powerful, flexible, huge module and developer ecosystem. Drawbacks: heavy, resource-hungry, complex to maintain. Magento 2 requires serious servers even for medium store.
Shopware — German OXID competitor, close in philosophy. Modular architecture, B2B features, good performance. Actively developing, Shopware 6 on modern stack (Symfony, Vue.js). Choice between OXID and Shopware often personal preference and team expertise question.
Spryker — another German player, tailored for B2B and complex integrations. Modular architecture at microservices level, headless-first approach. More expensive than OXID in development and support, justified for very complex projects.
PrestaShop — French platform, popular in Europe. Simpler than OXID, faster to start, more ready themes and modules. Falls short in flexibility for non-standard requirements.
WooCommerce — WordPress plugin, most massive e-commerce worldwide. Suitable for small business, quick start, huge ecosystem. For enterprise projects insufficiently scalable and flexible.
Conclusion
OXID eShop occupies niche of reliable enterprise solutions for companies needing individual e-commerce platform tightly integrated with corporate systems.
Strengths — customization flexibility, out-of-box B2B functionality, multi-tenancy, stability and backward compatibility. OXID projects serve years without rewriting from scratch when scaling business.
Weaknesses — entry threshold higher than mass platforms, qualified developers required, Community Edition limited in functionality for large business.
For B2B commerce, international multi-tenancy projects, complex integration scenarios OXID remains one of best market choices. Especially if German code quality, documentation, development approach valued.
VPS on THE.Hosting with 4 vCPU / 8 GB RAM / 80 GB NVMe configuration for €18-22/month suitable for production OXID store of medium size. NVMe drives accelerate database work, and European locations (Germany, Netherlands, Poland) ensure low latency for European clients.
For questions about server configuration for OXID — THE.Hosting support available 24/7 and helps with Apache, PHP, MySQL configuration per platform requirements.