A backend integration project that reconstructs the core architecture of a real FileMaker and Shopware 6 synchronization system.
The original system connected a FileMaker-based business application with a Shopware 6 online shop and synchronized e-commerce data such as products, orders, inventory-related records and shop information.
This repository provides a simplified, runnable version of that integration for portfolio and review purposes.
This project demonstrates how data can be synchronized between two different business systems.
The current implementation uses a mock Shopware layer and local JSON files to simulate FileMaker tables. This makes the project easy to run without requiring a real Shopware or FileMaker installation.
The architecture is intentionally built in layers:
Shopware Service
↓
Mapping Layer
↓
FileMaker Repository Simulation
↓
Dashboard Sync Flow
The project is designed to show integration thinking, not only basic CRUD endpoints.
| Feature | Description |
|---|---|
| Health Endpoint | Basic service availability check |
| Sync Status Endpoint | Shows current synchronization state |
| Mock Authentication Flow | Simulates Shopware authentication |
| Product Synchronization | Imports product data from Shopware-style source |
| Order Synchronization | Imports order data including customer and line item information |
| Data Mapping Layer | Converts Shopware-style JSON into FileMaker-style records |
| FileMaker Simulation | Stores synchronized data in local JSON files |
| Dashboard Sync Flow | Simulates a FileMaker dashboard script triggering synchronization |
| Sync Logging | Records synchronization history for products, orders and dashboard executions |
| Integration History API | Provides access to synchronization logs through a dedicated endpoint |
| Mock / Real Mode Structure | Prepared for later real Shopware API integration |
- Node.js
- Express.js
- Axios
- dotenv
- REST API
- JSON-based local storage
- Mock integration layer
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Check API health |
| GET | /api/sync-status |
Check synchronization status |
| GET | /api/auth/token |
Get mock authentication token |
| GET | /api/products |
Fetch mock Shopware products |
| POST | /api/products/sync |
Synchronize products into FileMaker storage |
| GET | /api/orders |
Fetch mock Shopware orders |
| POST | /api/orders/sync |
Synchronize orders into FileMaker storage |
| POST | /api/sync/all |
Run dashboard-style synchronization flow |
| GET | /api/sync/logs |
Retrieve synchronization history logs |
filemaker-shopware-integration/
├── data/
│ ├── inventory/
│ ├── logs/
│ ├── orders/
│ └── products/
├── docs/
│ ├── api-flow.md
│ ├── architecture.md
│ └── filemaker-script-reference.md
├── src/
│ ├── config/
│ ├── filemaker/
│ ├── routes/
│ ├── shopware/
│ ├── sync/
│ └── utils/
├── .env.example
├── .gitignore
├── package.json
└── README.md
The original FileMaker project used scripts to communicate with Shopware 6 through REST API calls. The synchronization was triggered from the FileMaker dashboard and updated business data between both systems.
This portfolio version follows the same idea:
FileMaker Dashboard Script
↓
Synchronization Flow
↓
Shopware Service Layer
↓
Data Mapping Layer
↓
FileMaker Repository Simulation
The current version focuses on import flows from Shopware-style data into FileMaker-style storage. The structure is prepared to be extended with bidirectional update flows.
Create a local .env file based on .env.example.
PORT=3000
USE_MOCK_DATA=true
SHOPWARE_BASE_URL=https://demo-shopware-instance.com
SHOPWARE_CLIENT_ID=your_client_id
SHOPWARE_CLIENT_SECRET=your_client_secret
SHOPWARE_ACCESS_KEY=your_sales_channel_access_keyUSE_MOCK_DATA=true allows the project to run without real Shopware credentials.
git clone https://github.com/tabari86/filemaker-shopware-integration.git
cd filemaker-shopware-integration
npm installnpm run devServer:
http://localhost:3000
curl http://localhost:3000/api/healthcurl -X POST http://localhost:3000/api/products/synccurl -X POST http://localhost:3000/api/orders/synccurl -X POST http://localhost:3000/api/sync/allImplemented:
- Basic Express server
- Configuration layer
- Mock authentication flow
- Product synchronization
- Order synchronization
- Data mapping layer
- JSON-based FileMaker simulation
- Dashboard-style synchronization flow
- Synchronization history logging
Planned improvements:
- Inventory synchronization
- Bidirectional update flow
- Error and exception logging
- More detailed API flow documentation
- Optional real Shopware API mode
Additional project documentation can be found in the docs directory:
This project is not meant to be a generic CRUD API.
It demonstrates practical backend integration concepts such as authentication handling, synchronization logic, integration monitoring, synchronization history tracking, mapping external API responses into internal business records, and separating system-specific concerns into clear layers.
The project is based on a real FileMaker and Shopware 6 integration scenario and has been rebuilt as a clean, reviewable portfolio project.
Moj Tabari
Website: https://mtintelligence.ai
GitHub: https://github.com/tabari86