- New API layer: ApiRouter, OrdersApiController, DictionariesApiController - Orders API: list (with filters/pagination/updated_since), details, change status, set paid/unpaid - Dictionaries API: order statuses, transport methods, payment methods - X-Api-Key authentication via pp_settings.api_key - OrderRepository: listForApi(), findForApi(), touchUpdatedAt() - updated_at column on pp_shop_orders for polling support - api.php: skip session for API requests, route to ApiRouter - SettingsController: api_key field in system tab - 30 new tests (666 total, 1930 assertions) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
24 KiB
Struktura bazy danych shopPRO
Plik aktualizowany na bieżąco przy zmianach w kodzie.
ORM: Medoo ($mdb), prefix tabel: pp_
pp_shop_products
Główna tabela produktów.
| Kolumna | Opis |
|---|---|
| id | PK |
| parent_id | FK do produktu nadrzędnego (kombinacje) - NULL dla produktów głównych |
| price_brutto | Cena brutto |
| price_brutto_promo | Cena promocyjna brutto |
| quantity | Stan magazynowy |
| status | Status: 1 = aktywny, 0 = nieaktywny |
| archive | Archiwum: 1 = zarchiwizowany, 0 = aktywny |
| promoted | Czy promowany |
| vat | Stawka VAT |
| ean | Kod EAN |
| sku | Kod SKU |
| apilo_product_id | ID produktu w Apilo |
| apilo_product_name | Nazwa produktu w Apilo |
Używane w: Domain\Product\ProductRepository, admin\factory\ShopProduct, admin\Controllers\ShopProductController
pp_shop_products_langs
Tłumaczenia produktów (per język).
| Kolumna | Opis |
|---|---|
| id | PK |
| product_id | FK do pp_shop_products |
| lang_id | ID języka (np. 'pl') |
| name | Nazwa produktu |
Używane w: Domain\Product\ProductRepository::getName()
pp_shop_products_images
Zdjęcia produktów.
| Kolumna | Opis |
|---|---|
| id | PK |
| product_id | FK do pp_shop_products |
| src | Ścieżka do pliku |
| alt | Tekst alternatywny |
pp_shop_products_categories
Przypisanie produktów do kategorii.
| Kolumna | Opis |
|---|---|
| product_id | FK do pp_shop_products |
Używane w: admin\factory\ShopProduct::product_delete(), Domain\Product\ProductRepository::getProductsByCategory()
Aktualizacja 2026-02-15 (ver. 0.274): akcje /admin/shop_product/mass_edit/* korzystają z Domain\Product\ProductRepository przez admin\Controllers\ShopProductController.
pp_shop_categories
Kategorie sklepu.
| Kolumna | Opis |
|---|---|
| id | PK |
| parent_id | FK do kategorii nadrzednej (NULL dla root) |
| status | 1 = aktywna, 0 = nieaktywna |
| o | Kolejnosc wyswietlania |
| sort_type | Typ sortowania produktow w kategorii |
| view_subcategories | Czy wyswietlac podkategorie |
Uzywane w: Domain\Category\CategoryRepository, admin\Controllers\ShopCategoryController.
pp_shop_categories_langs
Tlumaczenia kategorii (per jezyk).
| Kolumna | Opis |
|---|---|
| category_id | FK do pp_shop_categories |
| lang_id | ID jezyka (np. pl, en) |
| title | Nazwa kategorii |
| text | Opis kategorii |
| text_hidden | Rozwiniecie opisu kategorii |
| seo_link | Link SEO kategorii |
| meta_title | Meta title |
| meta_description | Meta description |
| meta_keywords | Meta keywords |
| noindex | Flaga noindex |
| category_title | Naglowek H1 kategorii |
| additional_text | Dodatkowy tekst nad lista produktow |
Uzywane w: Domain\Category\CategoryRepository, admin\Controllers\ShopCategoryController.
Aktualizacja 2026-02-15 (ver. 0.275): modul /admin/shop_category/* korzysta z Domain\Category\CategoryRepository przez admin\Controllers\ShopCategoryController; usunieto legacy admin\controls/factory/view\ShopCategory.
pp_shop_orders
Zamówienia sklepu (źródło danych dla list i szczegółów klientów w panelu admin).
| Kolumna | Opis |
|---|---|
| id | PK |
| client_id | FK do pp_shop_clients (NULL dla gościa) |
| client_name | Imię klienta z zamówienia |
| client_surname | Nazwisko klienta z zamówienia |
| client_email | E-mail klienta z zamówienia |
| client_phone | Telefon klienta |
| client_city | Miasto klienta |
| summary | Wartość zamówienia |
| date_order | Data złożenia zamówienia |
| payment_method | Nazwa metody płatności |
| transport | Nazwa transportu |
| message | Wiadomość klienta |
| updated_at | Data ostatniej modyfikacji (polling API) |
Używane w: Domain\Client\ClientRepository::listForAdmin(), Domain\Client\ClientRepository::ordersForClient(), Domain\Client\ClientRepository::totalsForClient(), Domain\Order\OrderRepository::listForApi(), Domain\Order\OrderRepository::findForApi().
Aktualizacja 2026-02-15 (ver. 0.274): moduł /admin/shop_clients/* korzysta z Domain\Client\ClientRepository przez admin\Controllers\ShopClientsController.
Aktualizacja 2026-02-15 (ver. 0.276): moduł /admin/shop_order/* korzysta z Domain\Order\OrderRepository przez admin\Controllers\ShopOrderController; usunięto legacy admin\controls\ShopOrder i admin\factory\ShopOrder.
Aktualizacja 2026-02-17 (ver. 0.290): frontend /shop_order/* korzysta z Domain\Order\OrderRepository przez front\Controllers\ShopOrderController; usunięto legacy front\controls\ShopOrder, front\factory\ShopOrder, front\view\ShopOrder. Callery (ShopBasketController, ClientRepository, shop\Order, cron-turstmate) przepięte na OrderRepository.
pp_banners
Banery.
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Nazwa banera |
| status | 0/1 |
| date_start | Data rozpoczęcia |
| date_end | Data zakończenia |
| home_page | Czy na stronie głównej 0/1 |
Używane w: Domain\Banner\BannerRepository, front\Views\Banners
Aktualizacja 2026-02-16 (ver. 0.281): metody frontendowe banners(), mainBanner() dodane do Domain\Banner\BannerRepository. Fasady front\factory\Banners i front\view\Banners deleguja do repo/Views.
pp_banners_langs
Tłumaczenia banerów.
| Kolumna | Opis |
|---|---|
| id | PK |
| id_banner | FK do pp_banners |
| id_lang | ID języka |
| src | Ścieżka do grafiki |
| url | URL docelowy |
| html | Kod HTML |
| text | Tekst |
Używane w: Domain\Banner\BannerRepository, front\Views\Banners
pp_articles
Artykuły.
| Kolumna | Opis |
|---|---|
| id | PK |
| status | -1 = archiwum, 0 = nieaktywny, 1 = aktywny |
Używane w: admin\Controllers\ArticlesArchiveController, Domain\Article\ArticleRepository::find(), Domain\Article\ArticleRepository::listArchivedForAdmin()
pp_articles_pages
Strony artykułów.
| Kolumna | Opis |
|---|---|
| article_id | FK do pp_articles |
| page_id | FK do strony (pp_pages) |
| o | Kolejność |
Używane w: Domain\Article\ArticleRepository::find(), Domain\Article\ArticleRepository::deleteNonassignedImages()
pp_articles_langs
Tłumaczenia artykułów.
| Kolumna | Opis |
|---|---|
| article_id | FK do pp_articles |
| lang_id | ID języka (np. 'pl') |
| title | Tytuł artykułu |
| seo_link | Link SEO artykułu |
Używane w: Domain\Article\ArticleRepository::find(), Domain\Article\ArticleRepository::deleteNonassignedFiles()
pp_articles_images
Zdjęcia artykułów.
| Kolumna | Opis |
|---|---|
| article_id | FK do pp_articles |
| src | Ścieżka do pliku |
| o | Kolejność |
| id | PK (używane też do sortowania DESC) |
Używane w: Domain\Article\ArticleRepository::find()
pp_articles_files
Pliki artykułów.
| Kolumna | Opis |
|---|---|
| id | PK |
| article_id | FK do pp_articles |
| src | Ścieżka do pliku |
| name | Nazwa wyświetlana załącznika (opcjonalna) |
| to_delete | Flaga miękkiego usuwania (0/1) |
| o | Kolejność załączników (używana przez sortowanie drag&drop w adminie) |
Używane w: Domain\Article\ArticleRepository::find(), Domain\Article\ArticleRepository::saveFilesOrder()
pp_units
Jednostki/slowniki (np. jednostki produktu).
| Kolumna | Opis |
|---|---|
| id | PK |
Używane w: Domain\Dictionaries\DictionariesRepository, admin\controls\ShopProduct
pp_units_langs
Tlumaczenia jednostek (per jezyk).
| Kolumna | Opis |
|---|---|
| id | PK |
| unit_id | FK do pp_units |
| lang_id | ID jezyka (np. 'pl') |
| text | Nazwa jednostki |
Używane w: Domain\Dictionaries\DictionariesRepository
pp_users
Uzytkownicy panelu administratora.
| Kolumna | Opis |
|---|---|
| id | PK |
| login | Login / e-mail uzytkownika |
| password | Hash hasla (legacy: md5) |
| status | Status konta: 1 = aktywny, 0 = zablokowany |
| admin | Flaga dostepu do panelu admin |
| error_logged_count | Licznik nieudanych logowan |
| last_logged | Data ostatniego poprawnego logowania |
| last_error_logged | Data ostatniej nieudanej proby logowania |
| twofa_enabled | Czy wlaczone 2FA (0/1) |
| twofa_email | E-mail do wysylki kodu 2FA |
| twofa_code_hash | Hash aktualnego kodu 2FA |
| twofa_expires_at | Data waznosci kodu 2FA |
| twofa_sent_at | Data ostatniej wysylki kodu 2FA |
| twofa_failed_attempts | Liczba nieudanych prob 2FA |
Uzywane w: Domain\User\UserRepository, admin\Controllers\UsersController, admin\factory\Users
Aktualizacja 2026-02-12: uzycia pp_users sa prowadzone przez Domain\\User\\UserRepository (legacy admin\\factory\\Users usunieto).
pp_langs
Jezyki panelu i frontendu.
| Kolumna | Opis |
|---|---|
| id | PK (2-literowe ID jezyka, np. pl, en) |
| name | Nazwa jezyka |
| status | 1 = aktywny, 0 = nieaktywny |
| start | 1 = domyslny jezyk |
| o | Kolejnosc |
Uzywane w: Domain\\Languages\\LanguagesRepository, admin\\Controllers\\LanguagesController, front\\factory\\Languages
pp_langs_translations
Slownik tlumaczen panelu/frontendu.
| Kolumna | Opis |
|---|---|
| id | PK |
| text | Klucz/tekst bazowy |
| <lang_id> | Kolumny dynamiczne per jezyk (np. pl, en) |
Uzywane w: Domain\\Languages\\LanguagesRepository, admin\\Controllers\\LanguagesController, front\\factory\\Languages
Aktualizacja 2026-02-12: modul jezykow i tlumaczen (pp_langs, pp_langs_translations) obslugiwany przez Domain\\Languages\\LanguagesRepository.
pp_layouts
Szablony layoutow (HTML/CSS/JS + flagi domyslne).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Nazwa szablonu |
| html | Kod HTML |
| css | Kod CSS |
| js | Kod JS |
| m_html | Kod HTML mobilny |
| m_css | Kod CSS mobilny |
| m_js | Kod JS mobilny |
| status | Domyslny layout stron (0/1) |
| categories_default | Domyslny layout kategorii (0/1) |
Uzywane w: Domain\\Layouts\\LayoutsRepository, admin\\Controllers\\LayoutsController, front\\factory\\Layouts
pp_layouts_pages
Przypisanie layoutow do stron CMS.
| Kolumna | Opis |
|---|---|
| layout_id | FK do pp_layouts |
| page_id | FK do pp_pages |
Uzywane w: Domain\\Layouts\\LayoutsRepository, front\\factory\\Layouts
pp_layouts_categories
Przypisanie layoutow do kategorii sklepu.
| Kolumna | Opis |
|---|---|
| layout_id | FK do pp_layouts |
| category_id | FK do pp_shop_categories |
Uzywane w: Domain\\Layouts\\LayoutsRepository, front\\factory\\Layouts
Aktualizacja 2026-02-12 (ver. 0.256): modul /admin/layouts korzysta z Domain\\Layouts\\LayoutsRepository (DI kontroler + fasada legacy).
pp_newsletter
Adresy e-mail zapisane do newslettera.
| Kolumna | Opis |
|---|---|
| id | PK |
| Adres e-mail subskrybenta | |
| hash | Hash potwierdzenia/wypisu |
| status | 1 = potwierdzony, 0 = oczekujacy |
Uzywane w: Domain\\Newsletter\\NewsletterRepository, front\\Controllers\\NewsletterController
pp_newsletter_send
Kolejka wysylki newslettera.
| Kolumna | Opis |
|---|---|
| id | PK |
| Adres docelowy | |
| dates | Zakres dat artykulow (tekst) |
| id_template | FK do pp_newsletter_templates (NULL gdy brak szablonu) |
Uzywane w: Domain\\Newsletter\\NewsletterRepository
pp_newsletter_templates
Szablony tresci e-maili (uzytkownik + administracyjne/systemowe).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Nazwa/klucz szablonu |
| text | Tresc HTML szablonu |
| is_admin | 1 = szablon administracyjny/systemowy, 0 = szablon uzytkownika |
Uzywane w: Domain\\Newsletter\\NewsletterRepository, admin\\Controllers\\NewsletterController
Aktualizacja 2026-02-12 (ver. 0.257): modul /admin/newsletter korzysta z Domain\\Newsletter\\NewsletterRepository (DI kontroler + fasada legacy).
Aktualizacja 2026-02-16 (ver. 0.279): front\\factory\\Newsletter usunięta — logika przeniesiona do NewsletterRepository. Frontend korzysta z front\\Controllers\\NewsletterController (DI).
pp_scontainers
Kontenery statyczne (modul /admin/scontainers).
| Kolumna | Opis |
|---|---|
| id | PK |
| status | 1 = aktywny, 0 = nieaktywny |
| show_title | 1 = pokaz tytul, 0 = ukryj tytul |
Uzywane w: Domain\Scontainers\ScontainersRepository, admin\Controllers\ScontainersController, front\factory\Scontainers
pp_scontainers_langs
Tlumaczenia kontenerow statycznych (per jezyk).
| Kolumna | Opis |
|---|---|
| id | PK |
| container_id | FK do pp_scontainers |
| lang_id | ID jezyka (np. pl, en) |
| title | Tytul kontenera |
| text | Tresc HTML kontenera |
Uzywane w: Domain\Scontainers\ScontainersRepository, front\factory\Scontainers
Aktualizacja 2026-02-12 (ver. 0.259): modul /admin/scontainers korzysta z Domain\Scontainers\ScontainersRepository (DI kontroler + fasada legacy).
Aktualizacja 2026-02-12 (ver. 0.260): modul /admin/articles_archive korzysta z Domain\Article\ArticleRepository (listArchivedForAdmin, restore, deletePermanently) przez admin\Controllers\ArticlesArchiveController.
pp_shop_attributes
Cechy produktu (modul /admin/shop_attribute).
| Kolumna | Opis |
|---|---|
| id | PK |
| status | Status: 1 = aktywny, 0 = nieaktywny |
| type | Typ cechy: 0 = tekst, 1 = kolor, 2 = wzor |
| o | Kolejnosc wyswietlania |
Uzywane w: Domain\Attribute\AttributeRepository, admin\Controllers\ShopAttributeController, admin\controls\ShopProduct, admin\factory\ShopProduct
pp_shop_attributes_langs
Tlumaczenia cech produktu (per jezyk).
| Kolumna | Opis |
|---|---|
| id | PK |
| attribute_id | FK do pp_shop_attributes |
| lang_id | ID jezyka (np. pl, en) |
| name | Nazwa cechy |
Uzywane w: Domain\Attribute\AttributeRepository, shop\ProductAttribute
pp_shop_attributes_values
Wartosci cech produktu.
| Kolumna | Opis |
|---|---|
| id | PK |
| attribute_id | FK do pp_shop_attributes |
| is_default | Czy wartosc domyslna dla cechy (0/1) |
| impact_on_the_price | Wplyw na cene wariantu (NULL = brak) |
Uzywane w: Domain\Attribute\AttributeRepository, admin\Controllers\ShopAttributeController, admin\factory\ShopProduct
pp_shop_attributes_values_langs
Tlumaczenia wartosci cech (per jezyk).
| Kolumna | Opis |
|---|---|
| id | PK |
| value_id | FK do pp_shop_attributes_values |
| lang_id | ID jezyka (np. pl, en) |
| name | Nazwa wyswietlana |
| value | Wewnetrzna wartosc techniczna (opcjonalna) |
Uzywane w: Domain\Attribute\AttributeRepository, shop\ProductAttribute
pp_shop_products_attributes
Powiazanie kombinacji produktow z wartosciami cech.
| Kolumna | Opis |
|---|---|
| product_id | FK do pp_shop_products (kombinacja) |
| value_id | FK do pp_shop_attributes_values |
Uzywane w: Domain\Attribute\AttributeRepository::refreshCombinationPricesForValue(), admin\controls\ShopProduct, admin\factory\ShopProduct
Aktualizacja 2026-02-14 (ver. 0.271): modul /admin/shop_attribute korzysta z Domain\Attribute\AttributeRepository przez admin\Controllers\ShopAttributeController. Usunieto legacy klasy admin\controls\ShopAttribute, admin\factory\ShopAttribute, admin\view\ShopAttribute.
pp_shop_coupon
Kody rabatowe sklepu (modul /admin/shop_coupon).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Kod kuponu (UNIQUE) |
| status | Status: 1 = aktywny, 0 = nieaktywny |
| send | Czy kupon zostal wyslany (0/1) |
| used | Czy kupon zostal wykorzystany (0/1) |
| date_used | Data wykorzystania kuponu (NULL gdy brak) |
| used_count | Licznik uzyc kuponu |
| type | Typ kuponu (obecnie: 1 = rabat procentowy na koszyk) |
| amount | Wartosc kuponu (np. procent) |
| one_time | Czy kupon jednorazowy (0/1) |
| include_discounted_product | Czy obejmuje rowniez produkty przecenione (0/1) |
| categories | JSON z ID kategorii objetych kuponem (NULL = bez ograniczenia) |
Uzywane w: Domain\Coupon\CouponRepository, admin\Controllers\ShopCouponController, front\Controllers\ShopCouponController, shop\Coupon, Domain\Order\OrderRepository
Aktualizacja 2026-02-13 (ver. 0.266): modul /admin/shop_coupon korzysta z Domain\Coupon\CouponRepository przez admin\Controllers\ShopCouponController. Usunieto legacy klasy admin\controls\ShopCoupon i admin\factory\ShopCoupon.
pp_shop_promotion
Promocje sklepu (modul /admin/shop_promotion).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Nazwa promocji |
| status | Status: 1 = aktywna, 0 = nieaktywna |
| condition_type | Typ warunku promocji (slownik w shop\Promotion::$condition_type) |
| discount_type | Typ rabatu (slownik w shop\Promotion::$discount_type) |
| amount | Wartosc rabatu (np. procent) |
| date_from | Data startu promocji (NULL = aktywna od razu) |
| date_to | Data konca promocji (NULL = bez daty konca) |
| categories | JSON z ID kategorii grupy I |
| condition_categories | JSON z ID kategorii grupy II |
| include_coupon | Czy laczyc z kuponami rabatowymi (0/1) |
| include_product_promo | Czy uwzgledniac produkty przecenione (0/1) |
| min_product_count | Minimalna liczba produktow (dla wybranych warunkow) |
| price_cheapest_product | Cena najtanszego produktu (dla wybranych warunkow) |
Uzywane w: Domain\Promotion\PromotionRepository, admin\Controllers\ShopPromotionController, shop\Promotion, front\factory\ShopPromotion
Aktualizacja 2026-02-13: modul /admin/shop_promotion korzysta z Domain\Promotion\PromotionRepository przez admin\Controllers\ShopPromotionController. Usunieto legacy klasy admin\controls\ShopPromotion i admin\factory\ShopPromotion.
Aktualizacja 2026-02-13 (ver. 0.265): dodano obsluge date_from (repozytorium, formularz admin, lista admin, filtr aktywnych promocji na froncie) oraz poprawke zapisu edycji promocji po id.
pp_shop_payment_methods
Metody platnosci sklepu (modul /admin/shop_payment_method).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Nazwa metody platnosci |
| description | Opis metody platnosci (wyswietlany m.in. w checkout) |
| status | Status: 1 = aktywna, 0 = nieaktywna |
| apilo_payment_type_id | ID typu platnosci Apilo (NULL gdy brak mapowania) |
| sellasist_payment_type_id | DEPRECATED (integracja Sellasist usunieta w ver. 0.263) |
Uzywane w: Domain\PaymentMethod\PaymentMethodRepository, admin\Controllers\ShopPaymentMethodController, front\factory\ShopPaymentMethod, shop\PaymentMethod, admin\controls\ShopTransport, cron.php
Aktualizacja 2026-02-14 (ver. 0.268): modul /admin/shop_payment_method korzysta z Domain\PaymentMethod\PaymentMethodRepository przez admin\Controllers\ShopPaymentMethodController. Usunieto legacy klasy admin\controls\ShopPaymentMethod, admin\factory\ShopPaymentMethod, admin\view\ShopPaymentMethod oraz widok admin/templates/shop-payment-method/view-list.php.
pp_shop_transports
Rodzaje transportu sklepu (modul /admin/shop_transport).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Nazwa (systemowa, readonly) |
| name_visible | Nazwa widoczna dla klienta |
| description | Opis metody transportu |
| status | Status: 1 = aktywny, 0 = nieaktywny |
| cost | Koszt dostawy (PLN) |
| max_wp | Maksymalna waga paczki (NULL = bez limitu) |
| default | Domyslna forma dostawy (0/1) |
| delivery_free | Czy obsluguje darmowa dostawe (0/1) |
| apilo_carrier_account_id | ID konta przewoznika w Apilo (NULL gdy brak mapowania) |
| o | Kolejnosc wyswietlania |
Uzywane w: Domain\Transport\TransportRepository, admin\Controllers\ShopTransportController, front\factory\ShopTransport
pp_shop_transport_payment_methods
Powiazanie metod transportu z metodami platnosci (tabela lacznikowa).
| Kolumna | Opis |
|---|---|
| id_transport | FK do pp_shop_transports |
| id_payment_method | FK do pp_shop_payment_methods |
Uzywane w: Domain\Transport\TransportRepository, Domain\PaymentMethod\PaymentMethodRepository::forTransport()
Aktualizacja 2026-02-14 (ver. 0.269): modul /admin/shop_transport korzysta z Domain\Transport\TransportRepository przez admin\Controllers\ShopTransportController. Usunieto legacy klasy admin\controls\ShopTransport, admin\view\ShopTransport oraz widok admin/templates/shop-transport/view-list.php.
pp_shop_apilo_settings
Ustawienia integracji Apilo (key-value).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Klucz ustawienia (np. client-id, access-token) |
| value | Wartosc ustawienia |
Uzywane w: Domain\Integrations\IntegrationsRepository, admin\Controllers\IntegrationsController, admin\factory\Integrations
pp_shop_shoppro_settings
Ustawienia integracji ShopPRO (key-value).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Klucz ustawienia (np. domain, db_name) |
| value | Wartosc ustawienia |
Uzywane w: Domain\Integrations\IntegrationsRepository, admin\Controllers\IntegrationsController, admin\factory\Integrations
Aktualizacja 2026-02-13: modul /admin/integrations/ korzysta z Domain\Integrations\IntegrationsRepository (DI kontroler + fasada legacy). Usunieto integracje Sellasist i Baselinker.
pp_shop_statuses
Statusy zamowien sklepu (modul /admin/shop_statuses). Statusy sa predefiniowane - brak dodawania/usuwania, mozliwa edycja koloru i mapowania Apilo.
| Kolumna | Opis |
|---|---|
| id | PK (zaczyna sie od 0!) |
| status | Nazwa statusu (read-only) |
| color | Kolor statusu (hex, np. #ff0000) |
| o | Kolejnosc wyswietlania |
| apilo_status_id | ID statusu w Apilo (NULL gdy brak mapowania) |
| baselinker_status_id | DEPRECATED (usuniety w ver. 0.263) |
| sellasist_status_id | DEPRECATED (usuniety w ver. 0.263) |
Uzywane w: Domain\ShopStatus\ShopStatusRepository, admin\Controllers\ShopStatusesController, front\factory\ShopStatuses, shop\Order, cron.php
Aktualizacja 2026-02-14 (ver. 0.267): modul /admin/shop_statuses korzysta z Domain\ShopStatus\ShopStatusRepository przez admin\Controllers\ShopStatusesController. Usunieto legacy klasy admin\controls\ShopStatuses i admin\factory\ShopStatuses. front\factory\ShopStatuses dziala jako fasada do repozytorium.
pp_shop_product_sets
Komplety produktow (modul /admin/shop_product_sets).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Nazwa kompletu |
| status | Status: 1 = aktywny, 0 = nieaktywny |
Uzywane w: Domain\ProductSet\ProductSetRepository, admin\Controllers\ShopProductSetsController, shop\ProductSet, shop\Product
pp_shop_product_sets_products
Powiazanie kompletow z produktami (tabela lacznikowa).
| Kolumna | Opis |
|---|---|
| id | PK |
| set_id | FK do pp_shop_product_sets |
| product_id | FK do pp_shop_products |
Uzywane w: Domain\ProductSet\ProductSetRepository, shop\Product, front\factory\ShopProduct, admin\factory\ShopProduct
Aktualizacja 2026-02-15 (ver. 0.272): modul /admin/shop_product_sets korzysta z Domain\ProductSet\ProductSetRepository przez admin\Controllers\ShopProductSetsController. Usunieto legacy klasy admin\controls\ShopProductSets i admin\factory\ShopProductSet. shop\ProductSet dziala jako fasada do repozytorium.
pp_shop_producer
Producenci produktow (modul /admin/shop_producer).
| Kolumna | Opis |
|---|---|
| id | PK |
| name | Nazwa producenta |
| status | Status: 1 = aktywny, 0 = nieaktywny |
| img | Sciezka do logo producenta (NULL gdy brak) |
Uzywane w: Domain\Producer\ProducerRepository, admin\Controllers\ShopProducerController, front\Controllers\ShopProducerController, shop\Product
pp_shop_producer_lang
Tlumaczenia producentow (per jezyk). FK kaskadowe ON DELETE CASCADE.
| Kolumna | Opis |
|---|---|
| id | PK |
| producer_id | FK do pp_shop_producer |
| lang_id | ID jezyka (np. pl, en) |
| description | Opis producenta (TEXT) |
| data | Dane producenta (TEXT, HTML) |
| meta_title | Meta title SEO (VARCHAR 255) |
Uzywane w: Domain\Producer\ProducerRepository, shop\Product
Aktualizacja 2026-02-15 (ver. 0.273): modul /admin/shop_producer korzysta z Domain\Producer\ProducerRepository przez admin\Controllers\ShopProducerController. Usunieto legacy admin\controls\ShopProducer i admin\factory\ShopProducer. shop\Producer dziala jako fasada do repozytorium.
Aktualizacja 2026-02-17 (ver. 0.291): frontend /shop_producer/* korzysta z Domain\Producer\ProducerRepository przez front\Controllers\ShopProducerController; usunięto legacy front\controls\ShopProducer i shop\Producer.