Add Orders and Order Status repositories with pagination and management features

- Implemented OrdersRepository for handling order data with pagination, filtering, and sorting capabilities.
- Added methods for retrieving order status options, quick stats, and detailed order information.
- Created OrderStatusRepository for managing order status groups and statuses, including CRUD operations and sorting.
- Introduced a bootstrap file for test environment setup and autoloading.
This commit is contained in:
2026-03-03 01:32:28 +01:00
parent d1576bc4ab
commit c489891d15
106 changed files with 11669 additions and 5091 deletions

View File

@@ -12,43 +12,36 @@
</head>
<body>
<?php $currentMenu = (string) ($activeMenu ?? ''); ?>
<?php $marketplaceMenuIntegrations = is_array($marketplaceIntegrations ?? null) ? $marketplaceIntegrations : []; ?>
<?php $isMarketplaceMenu = $currentMenu === 'marketplace'; ?>
<?php $currentSettings = (string) ($activeSettings ?? ''); ?>
<?php $currentOrders = (string) ($activeOrders ?? ''); ?>
<div class="app-shell">
<aside class="sidebar">
<div class="sidebar__brand"><?= $e($t('brand.name_prefix')) ?><strong><?= $e($t('brand.name_suffix')) ?></strong></div>
<nav class="sidebar__nav" aria-label="<?= $e($t('navigation.main_menu')) ?>">
<a class="sidebar__link<?= $currentMenu === 'dashboard' ? ' is-active' : '' ?>" href="/dashboard">
<?= $e($t('navigation.dashboard')) ?>
</a>
<a class="sidebar__link<?= $currentMenu === 'users' ? ' is-active' : '' ?>" href="/users">
<?= $e($t('navigation.users')) ?>
</a>
<a class="sidebar__link<?= $currentMenu === 'products' ? ' is-active' : '' ?>" href="/products">
<?= $e($t('navigation.products')) ?>
</a>
<details class="sidebar__group<?= $isMarketplaceMenu ? ' is-active' : '' ?>"<?= $isMarketplaceMenu ? ' open' : '' ?>>
<summary class="sidebar__group-toggle"><?= $e($t('navigation.marketplace')) ?></summary>
<details class="sidebar__group<?= $currentMenu === 'orders' ? ' is-active' : '' ?>"<?= $currentMenu === 'orders' ? ' open' : '' ?>>
<summary class="sidebar__group-toggle"><?= $e($t('navigation.orders')) ?></summary>
<div class="sidebar__group-links">
<a class="sidebar__sublink<?= $isMarketplaceMenu && (int) ($selectedMarketplaceIntegrationId ?? 0) === 0 ? ' is-active' : '' ?>" href="/marketplace">
<?= $e($t('marketplace.integrations_title')) ?>
<a class="sidebar__sublink<?= $currentMenu === 'orders' && $currentOrders === 'list' ? ' is-active' : '' ?>" href="/orders/list">
<?= $e($t('navigation.orders_list')) ?>
</a>
</div>
</details>
<details class="sidebar__group<?= $currentMenu === 'settings' ? ' is-active' : '' ?>"<?= $currentMenu === 'settings' ? ' open' : '' ?>>
<summary class="sidebar__group-toggle"><?= $e($t('navigation.settings')) ?></summary>
<div class="sidebar__group-links">
<a class="sidebar__sublink<?= $currentMenu === 'settings' && $currentSettings === 'users' ? ' is-active' : '' ?>" href="/settings/users">
<?= $e($t('navigation.users')) ?>
</a>
<a class="sidebar__sublink<?= $currentMenu === 'settings' && $currentSettings === 'database' ? ' is-active' : '' ?>" href="/settings/database">
<?= $e($t('navigation.database')) ?>
</a>
<a class="sidebar__sublink<?= $currentMenu === 'settings' && $currentSettings === 'statuses' ? ' is-active' : '' ?>" href="/settings/statuses">
<?= $e($t('navigation.statuses')) ?>
</a>
<?php foreach ($marketplaceMenuIntegrations as $integration): ?>
<?php $integrationId = (int) ($integration['id'] ?? 0); ?>
<?php if ($integrationId <= 0) continue; ?>
<a class="sidebar__sublink<?= ($isMarketplaceMenu && (int) ($selectedMarketplaceIntegrationId ?? 0) === $integrationId) ? ' is-active' : '' ?>" href="/marketplace/<?= $e((string) $integrationId) ?>">
<?= $e((string) ($integration['name'] ?? ('#' . $integrationId))) ?>
</a>
<?php endforeach; ?>
</div>
</details>
<a class="sidebar__link<?= $currentMenu === 'cron' ? ' is-active' : '' ?>" href="/settings/cron">
<?= $e($t('navigation.cron')) ?>
</a>
<a class="sidebar__link<?= $currentMenu === 'settings' ? ' is-active' : '' ?>" href="/settings/integrations/shoppro">
<?= $e($t('navigation.settings')) ?>
</a>
</nav>
</aside>