Technical Details
Architecture
FutiCustomerServiceCenter/
├── src/
│ ├── Core/
│ │ ├── Content/ # Entities and definitions
│ │ │ ├── Ticket/ # Ticket system
│ │ │ ├── Category/ # Category management
│ │ │ ├── TicketMessage/ # Messaging system
│ │ │ └── MailTemplate/ # Email templates
│ │ └── Api/ # REST API Endpoints
│ ├── Service/ # Business Logic
│ │ ├── NotificationService.php
│ │ └── FaqIntegrationService.php
│ ├── Storefront/ # Frontend Controller
│ │ └── Controller/
│ └── Resources/
│ ├── views/ # Twig Templates
│ ├── app/ # JavaScript/CSS
│ ├── config/ # Configuration
│ └── snippet/ # TranslationsDatabase Schema
Tickets Table
CREATE TABLE `futi_customer_service_ticket` (
`id` BINARY(16) NOT NULL,
`ticket_number` VARCHAR(255) NOT NULL,
`subject` VARCHAR(255) NOT NULL,
`description` LONGTEXT,
`status` VARCHAR(50) DEFAULT 'open',
`priority` VARCHAR(50) DEFAULT 'normal',
`customer_id` BINARY(16),
`category_id` BINARY(16),
`assigned_user_id` BINARY(16),
`order_id` BINARY(16),
`created_at` DATETIME(3) NOT NULL,
`updated_at` DATETIME(3),
PRIMARY KEY (`id`)
);Categories Table
CREATE TABLE `futi_customer_service_category` (
`id` BINARY(16) NOT NULL,
`name` VARCHAR(255) NOT NULL,
`description` LONGTEXT,
`color` VARCHAR(7),
`icon` VARCHAR(100),
`sort_order` INT DEFAULT 0,
`active` TINYINT(1) DEFAULT 1,
`created_at` DATETIME(3) NOT NULL,
`updated_at` DATETIME(3),
PRIMARY KEY (`id`)
);API Endpoints
# Retrieve tickets
GET /store-api/futi/service-center/tickets
# Create ticket
POST /store-api/futi/service-center/tickets
# Ticket details
GET /store-api/futi/service-center/tickets/{ticketId}
# Add message
POST /store-api/futi/service-center/tickets/{ticketId}/messagesEvents and Hooks
class TicketStatusChangedListener
{
public function onTicketStatusChanged(TicketStatusChangedEvent $event): void
{
$ticket = $event->getTicket();
$oldStatus = $event->getOldStatus();
$newStatus = $event->getNewStatus();
// Custom Logic here
}
}Was this page helpful?
Support
Rented Plugins (Shopware Store)
For support with plugins rented from the Shopware Store, please open a support ticket in your Shopware account.
Create Shopware Ticket