Jakiego frameworka używa WooCommerce? PHP, haki, REST API

13 minuta
What framework does WooCommerce use?

Jakiego frameworka używa WooCommerce?

Przyglądając się technologicznym podstawom WooCommerce, zobaczysz, że jest zbudowany bezpośrednio na WordPressie i używa PHP jako głównego języka programowania. Zamiast wdrażać osobny framework, WooCommerce rozszerza WordPressa przez architekturę wtyczek. Stosuje wzorzec inspirowany MVC, choć nie trzyma się ściśle klasycznej architektury Model-View-Controller.

Wtyczka organizuje kod z wyraźnym rozdzieleniem obsługi danych, logiki biznesowej i warstwy prezentacji. WooCommerce opiera się na funkcjach rdzenia WordPressa przy obsłudze bazy danych, użytkowników i interfejsów administracyjnych, dodając wyspecjalizowane możliwości e-commerce. System szablonów pozwala dostosowywać wygląd na poziomie motywu bez modyfikowania plików rdzenia, zgodnie z hierarchią szablonów WordPressa z dodatkowymi szablonami WooCommerce.

O elastyczności WooCommerce decyduje szerokie użycie systemu haków WordPressa (akcji i filtrów), który tworzy liczne punkty rozszerzeń w całym kodzie. Taka architektura pozwala developerom zmieniać niemal każdy aspekt funkcjonalności e-commerce bez edycji kodu źródłowego, co czyni ją bardzo podatną na dostosowania w projektach sklepów WooCommerce o różnej złożoności.

W skrócie: WooCommerce nie ma własnego frameworka. To wtyczka WordPress w PHP, rozszerzana przez haki, szablony i REST API, z nowszymi częściami napisanymi jako klasy z przestrzeniami nazw i w Reakcie. Dla oddzielonego frontendu może działać jako backend headless.

Czy WooCommerce jest zbudowany na WordPressie?

Tak, WooCommerce to w istocie wtyczka WordPress, a nie samodzielny framework. Ta relacja jest kluczowa przy każdym projekcie WooCommerce. Jako wtyczka WooCommerce rozszerza WordPressa, a nie działa jako niezależny system, co oznacza, że do działania wykorzystuje funkcje rdzenia WordPressa i jego strukturę bazy danych.

Ta integracja daje kilka zalet. Po pierwsze, opiera się na dojrzałych możliwościach zarządzania treścią WordPressa, systemie użytkowników i panelu administracyjnym. Po drugie, dziedziczy ogromny ekosystem motywów i wtyczek WordPressa. WooCommerce podpina się bezpośrednio do funkcji rdzenia WordPressa przy krytycznych operacjach, takich jak uwierzytelnianie użytkowników, zarządzanie uprawnieniami, obsługa bazy danych i renderowanie panelu administracyjnego.

Od strony bazy danych WooCommerce rozszerza schemat bazy WordPressa o dodatkowe tabele dla e-commerce. Tworzy własne tabele dla pozycji zamówień, stawek podatkowych, sesji, uprawnień do pobierania i danych wyszukiwania, a dzięki High-Performance Order Storage (HPOS) także dla zamówień. Nadal używa istniejących tabel WordPressa dla wpisów (produkty), użytkowników (klienci) i komentarzy (opinie). To hybrydowe podejście pozwala zachować zgodność z ekosystemem WordPressa przy wyspecjalizowanych strukturach danych e-commerce. Więcej w artykule jakiej bazy danych używa WooCommerce.

Zrozumienie tej relacji jest kluczowe przy tworzeniu lub dostosowywaniu sklepów WooCommerce, bo wszelkie zmiany muszą respektować wzorce architektury WordPressa i WooCommerce, aby zapewnić zgodność i łatwość utrzymania.

Jak WooCommerce współpracuje z PHP?

WooCommerce intensywnie używa PHP, stosując nowoczesne zasady programowania obiektowego w całej architekturze. Kod jest zorganizowany w logiczne klasy obsługujące różne aspekty e-commerce, od zarządzania produktami po proces zamówienia. Nowszy kod znajduje się w klasach z przestrzeniami nazw w przestrzeni Automattic\WooCommerce. Podejście obiektowe sprzyja ponownemu użyciu kodu i łatwości utrzymania.

W swoim rdzeniu WooCommerce implementuje rozbudowany system haków oparty na wzorcu akcji i filtrów WordPressa. Haki tworzą liczne punkty dostosowania, pozwalając developerom zmieniać funkcjonalność bez modyfikowania plików rdzenia. Na przykład, aby dostosować proces zamówienia, developerzy mogą użyć haków takich jak woocommerce_checkout_process lub woocommerce_checkout_create_order, zamiast edytować kod kasy bezpośrednio. Starszy hak woocommerce_checkout_update_order_meta nadal istnieje, ale nowy kod powinien pracować na obiekcie zamówienia.

Struktura szablonów ma przejrzysty wzorzec, w którym każdy komponent frontendu ma odpowiadający plik szablonu PHP. Dzięki temu łatwo go nadpisać na poziomie motywu. Przy pracy z WooCommerce kluczowa jest znajomość struktury plików:

  • includes/: podstawowe klasy i funkcje
  • src/: nowsze klasy z przestrzeniami nazw
  • templates/: domyślne pliki szablonów
  • assets/: JavaScript, CSS i obrazy
  • includes/admin/: funkcjonalność panelu administracyjnego
  • includes/class-wc-{component}.php: główne klasy komponentów

Developerzy PHP pracujący z WooCommerce muszą znać nie tylko składnię PHP, ale także standardy kodowania WordPressa i wzorce implementacji WooCommerce, aby tworzyć skuteczne, łatwe w utrzymaniu dostosowania. O zasadach projektowania, które za tym stoją, przeczytasz w artykule dobre praktyki programowania oparte na SOLID i KISS.

Jakich języków programowania używa WooCommerce?

Choć PHP jest fundamentem WooCommerce, platforma używa wielu języków, tworząc pełny stos technologiczny. Zrozumienie tego wielojęzycznego ekosystemu jest kluczowe dla kompleksowego developmentu WooCommerce.

Po stronie backendu PHP obsługuje podstawową logikę biznesową, przetwarzanie danych i integrację z WordPressem. MySQL (lub MariaDB) stanowi warstwę bazy danych i przechowuje informacje o produktach, zamówieniach, klientach i inne krytyczne dane e-commerce, zarówno w natywnych tabelach WordPressa, jak i własnych tabelach WooCommerce.

Doświadczenie frontendowe opiera się głównie na HTML i CSS dla struktury i stylów. WooCommerce dostarcza domyślne szablony generujące semantyczny HTML, który można dostosować na poziomie motywu. Dla elementów interaktywnych ważną rolę odgrywa JavaScript, a jQuery nadal jest używany w części kodu. Nowoczesny WooCommerce coraz częściej używa Reacta: bloki Koszyka i Kasy oraz duża część panelu administracyjnego są na nim zbudowane.

Oto jak te języki współdziałają w typowej operacji WooCommerce:

  1. PHP przetwarza żądanie i pobiera dane z bazy MySQL
  2. pliki szablonów łączą logikę PHP ze strukturą HTML
  3. CSS stylizuje warstwę prezentacji
  4. JavaScript wzbogaca interfejs o dynamiczną funkcjonalność
  5. wywołania AJAX, REST API lub Store API mogą wracać do punktów końcowych PHP dla operacji w czasie rzeczywistym

Ta wielojęzyczna architektura oznacza, że pełne opanowanie WooCommerce wymaga biegłości w całym stosie, choć wielu developerów specjalizuje się w wybranych aspektach platformy.

Czy WooCommerce można używać z innymi frameworkami?

Coraz częściej developerzy wdrażają układy headless WooCommerce, oddzielając backend od warstwy prezentacji frontendu. Taka architektura pozwala WooCommerce zarządzać produktami, magazynem i zamówieniami, udostępniając tę funkcjonalność przez swoje API frontendowym frameworkom. Zobacz, czy WooCommerce działa bez WordPressa.

Frameworki JavaScript, takie jak React, Vue i Angular, mogą komunikować się z endpointami API WooCommerce, tworząc własne doświadczenia zakupowe. W takich układach sklep zwykle używa Store API do produktów, koszyka i kasy, a REST API obsługuje integracje zaplecza. To podejście jest szczególnie cenne dla firm potrzebujących unikalnych interfejsów lub chcących wdrożyć progresywne aplikacje webowe (PWA) dla lepszej wydajności mobilnej. Przeczytaj, czym są endpointy WooCommerce.

WooCommerce REST API udostępnia obszerne endpointy do zarządzania:

  • produktami i kategoriami
  • zamówieniami i ich statusami
  • klientami i ich danymi
  • kuponami i promocjami
  • raportami i analityką

Poza frameworkami JavaScript WooCommerce może integrować się z innymi systemami przez API. Umożliwia to połączenia z aplikacjami mobilnymi, oprogramowaniem desktopowym lub innymi usługami webowymi. Na przykład firma może użyć Reacta dla sklepu, utrzymując synchronizację magazynu z zewnętrznym systemem ERP, a wszystko komunikuje się z WooCommerce jako centralnym silnikiem e-commerce. O budowie własnych endpointów przeczytasz w artykule jak zbudować własne API w WooCommerce.

Choć układy headless dają elastyczność, wymagają dodatkowej wiedzy developerskiej i starannego planowania architektury, aby wszystkie systemy skutecznie się komunikowały.

Jak rozszerzalny jest framework WooCommerce?

Architektura WooCommerce jest zaprojektowana z rozszerzalnością jako zasadą podstawową, co czyni ją bardzo podatną na dostosowania. Rozszerzalność zapewniają głównie trzy mechanizmy: haki, REST API i system szablonów.

System haków, zapożyczony i rozszerzony z WordPressa, daje liczne punkty akcji i filtrów w całym kodzie. Akcje pozwalają dodawać funkcjonalność w określonych miejscach przepływu wykonania, a filtry modyfikować dane, zanim zostaną użyte. Na przykład, aby dodać treść po podsumowaniu produktu, developer może użyć:

// Dodaj treść po każdym produkcie w pętli sklepu
add_action( 'woocommerce_after_shop_loop_item', 'custom_function', 10 );
function custom_function() {
    echo '<p class="delivery-note">Darmowa dostawa od 200 zł</p>';
}

REST API daje programistyczny dostęp do większości danych i funkcji WooCommerce, umożliwiając integrację z systemami zewnętrznymi lub własnymi aplikacjami. Takie podejście API-first oznacza, że developerzy mogą tworzyć zupełnie własne interfejsy, opierając się na backendzie WooCommerce.

Poza tymi podstawowymi mechanizmami rozszerzeń WooCommerce oferuje kilka wyspecjalizowanych sposobów rozszerzania funkcjonalności:

  • Payment Gateway API do dodawania własnych metod płatności
  • Shipping Method API do wdrażania nowych kalkulatorów wysyłki
  • framework Product Type do tworzenia wyspecjalizowanych typów produktów
  • system dostosowania e-maili do zmiany e-maili transakcyjnych
  • system webhooków do powiadomień o zdarzeniach w czasie rzeczywistym

Ta szeroka rozszerzalność oznacza, że developerzy mogą dostosować większość aspektów WooCommerce bez modyfikowania kodu rdzenia, co zapewnia zgodność z aktualizacjami i pozwala dostarczać rozwiązania dopasowane do konkretnych wymagań biznesowych.

Czym są szablony WooCommerce i jak działają?

WooCommerce używa systemu szablonów, który pozwala na kompleksowe dostosowanie wyglądu sklepu bez modyfikowania plików rdzenia. To podejście zachowuje zgodność z aktualizacjami i pozwala twórcom motywów tworzyć unikalne doświadczenia zakupowe.

Hierarchia szablonów ma określony wzorzec nadpisywania. Gdy WooCommerce ma wyświetlić treść, najpierw sprawdza w aktywnym motywie dostosowaną wersję szablonu, a jeśli jej nie ma, korzysta z szablonów domyślnych. Sprawdzenie odbywa się w określonej kolejności:

  1. /motyw-potomny/woocommerce/konkretny-szablon.php (jeśli aktywny jest motyw potomny)
  2. /motyw-nadrzedny/woocommerce/konkretny-szablon.php
  3. /woocommerce/templates/konkretny-szablon.php (domyślny)

Aby dostosować szablony, developerzy zwykle kopiują pliki z katalogu templates wtyczki WooCommerce do folderu „woocommerce” w aktywnym motywie, zachowując tę samą strukturę plików. Skopiowane szablony można potem modyfikować, by zmienić znaczniki HTML, dodać klasy lub dostosować logikę prezentacji. Nadpisane szablony mają numer wersji, a WooCommerce oznacza nieaktualne nadpisania w WooCommerce > Status, więc przeglądaj je po aktualizacjach.

Szablony WooCommerce to pliki PHP zawierające mieszankę znaczników HTML i kodu PHP. Często używają funkcji pomocniczych WooCommerce do dostępu do danych produktów, cen i innych elementów e-commerce. Na przykład wc_get_template_part() pozwala szablonom dołączać inne części szablonów, tworząc strukturę modułową. W motywach blokowych WooCommerce udostępnia też szablony blokowe, które można edytować w Edytorze witryny.

System szablonów wzmacniają haki WooCommerce osadzone w szablonach, dające dodatkowe punkty dostosowania bez konieczności pełnego nadpisywania szablonów. Zrozumienie tego systemu jest kluczowe dla tworzenia spójnych, łatwych w utrzymaniu motywów WooCommerce.

Jak WooCommerce obsługuje strukturę bazy danych?

WooCommerce stosuje hybrydowe podejście do bazy danych, wykorzystując istniejące tabele WordPressa i dodając wyspecjalizowane tabele dla e-commerce. Taki projekt ma równoważyć wydajność ze zgodnością z ekosystemem WordPressa.

Do zarządzania produktami WooCommerce używa natywnej tabeli wpisów WordPressa, traktując produkty jako własny typ wpisu. Atrybuty, kategorie i tagi produktów korzystają z systemu taksonomii, a dane specyficzne dla produktu są zapisane w postmeta, z tabelą wyszukiwania dla szybszych zapytań o produkty. Pozwala to WooCommerce korzystać z możliwości zarządzania treścią WordPressa i dodawać metadane specyficzne dla e-commerce.

Poza tabelami WordPressa WooCommerce tworzy kilka własnych tabel dla wyspecjalizowanych danych e-commerce. Nazwy tabel mają prefiks WordPressa, domyślnie wp_:

Nazwa tabeliZastosowanie
woocommerce_order_itemsPozycje zamówień
woocommerce_order_itemmetaMetadane pozycji zamówień
woocommerce_downloadable_product_permissionsZarządzanie dostępem do produktów do pobrania
woocommerce_tax_ratesKonfiguracje podatkowe
woocommerce_sessionsZarządzanie sesjami klientów
wc_product_meta_lookupZindeksowane dane produktów dla szybszych zapytań
wc_orders, wc_orders_meta, wc_order_addresses, wc_order_operational_dataZamówienia przechowywane w HPOS

Ta architektura bazy tworzy pewne wyzwania, szczególnie w sklepach o dużym wolumenie, bo mocno opiera się na tabelach metadanych, które mogą stać się wąskimi gardłami. Aby temu zaradzić, WooCommerce wprowadził High-Performance Order Storage (HPOS), który przechowuje zamówienia w dedykowanych tabelach i jest domyślnie włączony w nowych sklepach od WooCommerce 8.2. W istniejących sklepach trzeba go włączyć i potwierdzić zgodność rozszerzeń.

Dla developerów budujących własną funkcjonalność WooCommerce zrozumienie tej struktury bazy jest kluczowe dla tworzenia wydajnych, skalowalnych rozwiązań, które właściwie integrują się ze wzorcami danych WordPressa i WooCommerce.

Jakie są kluczowe komponenty architektury WooCommerce?

Architektura WooCommerce składa się z kilku połączonych komponentów, które razem tworzą kompletny system e-commerce. Zrozumienie tych komponentów jest niezbędne do skutecznego developmentu i dostosowywania.

Fundamentem jest system zarządzania produktami, który obsługuje wszystko od produktów prostych po zmienne, grupowane i oferty subskrypcyjne. Ten komponent dostarcza modele danych i interfejsy administracyjne do tworzenia produktów i zarządzania nimi, w tym śledzenie stanów, reguły cenowe i atrybuty produktów.

Funkcjonalność koszyka zarządza doświadczeniem zakupowym, pozwalając klientom dodawać produkty, zmieniać ilości i stosować kupony. W ścisłej współpracy z systemem zarządzania sesjami koszyk utrzymuje stan przez całą ścieżkę zakupową, nawet dla gości.

Proces zamówienia orkiestruje jedną z najważniejszych ścieżek klienta, integrując wiele komponentów, w tym:

  • obsługę i walidację formularzy
  • integrację z bramkami płatności
  • kalkulator wysyłki
  • obliczanie podatków
  • tworzenie zamówień i zarządzanie nimi

Koszyk i Kasę można renderować klasycznymi shortcode albo blokami opartymi na Reakcie, które używają Store API. Jeśli używasz bloków, rozszerzenia muszą je obsługiwać.

Bramki płatności dają interfejsy do różnych operatorów płatności, od bezpośredniego przetwarzania kart po usługi zewnętrzne, takie jak PayPal czy Stripe. Abstrakcyjna architektura bramek pozwala developerom tworzyć własne metody płatności według ustandaryzowanej struktury.

Metody wysyłki działają podobnie, dając kalkulatory dla różnych dostawców i stawek. System podatkowy obsługuje złożone reguły podatkowe w różnych jurysdykcjach i pozwala na obliczenia zależne od lokalizacji.

Te komponenty komunikują się przez architekturę zdarzeniową WooCommerce, używając haków do uruchamiania procesów i współdzielenia danych. Modułowy projekt pozwala rozszerzać lub zastępować każdy komponent bez wpływu na cały system, co tworzy elastyczność, dzięki której WooCommerce nadaje się do różnych wymagań e-commerce.

Najważniejsze wnioski o frameworku WooCommerce dla developerów

Dla developerów zaczynających projekty WooCommerce zrozumienie kilku kluczowych zasad technicznych znacząco poprawi jakość i efektywność wdrożenia. Po pierwsze, korzystaj z architektury opartej na hakach WooCommerce: niemal każdy aspekt funkcjonalności można dostosować przez akcje i filtry, bez modyfikowania plików rdzenia. Dzięki temu dostosowania pozostają zgodne z aktualizacjami.

Budując własną funkcjonalność, trzymaj się ustalonych wzorców WooCommerce. Używaj istniejących struktur danych i konwencji nazewnictwa, by zachować spójność. Na przykład tworząc własne typy produktów, rozszerz klasę WC_Product zamiast budować zupełnie nowe struktury. Podobnie używaj obsługi sesji WooCommerce do dostosowań koszyka, zamiast tworzyć osobne systemy.

Pracuj na zamówieniach przez obiekt zamówienia WooCommerce i deklaruj zgodność wtyczki z HPOS, bo bezpośredni dostęp do post meta nie działa dla zamówień, gdy HPOS jest aktywny. Przetestuj na kopii stagingowej:

// Zadeklaruj zgodność z HPOS we wtyczce
add_action( 'before_woocommerce_init', function () {
    if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
        \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
    }
} );

// Pracuj na zamówieniach przez obiekt zamówienia, a nie get_post_meta()
$order = wc_get_order( $order_id );
$order->update_meta_data( '_my_custom_field', 'value' );
$order->save();

Optymalizacja wydajności wymaga szczególnej uwagi w developmencie WooCommerce. Hybrydowa struktura bazy może prowadzić do nieefektywnych zapytań, jeśli nie jest właściwie zarządzana. Ogranicz bezpośrednie zapytania o metadane w sekcjach o dużym ruchu, wdroż cache dla złożonych obliczeń i rozważ transients dla kosztownych operacji, które nie wymagają danych w czasie rzeczywistym. Zobacz naszą usługę optymalizacja wydajności WordPressa.

W tworzeniu motywów system nadpisywania szablonów daje czyste podejście do dostosowania. Nadmiar nadpisanych szablonów utrudnia jednak utrzymanie. Zamiast tego łącz selektywne nadpisania szablonów z dostosowaniami opartymi na hakach, aby osiągnąć pożądaną prezentację przy minimalnych konfliktach z aktualizacjami.

W WLC stosujemy te wnioski, budując skalowalne, łatwe w utrzymaniu rozwiązania WooCommerce. Nasze podejście kładzie nacisk na czystą architekturę kodu, optymalizację wydajności i zgodność w przyszłość, dzięki czemu sklepy na zamówienie mogą rozwijać się razem z potrzebami biznesu bez pełnej przebudowy. Respektując podstawowe wzorce frameworka WooCommerce i rozszerzając je odpowiednio, tworzymy rozwiązania równoważące dostosowanie ze stabilnością. Listę kontrolną znajdziesz w artykule najlepsze praktyki custom developmentu WordPress, a nasze usługi to wdrożenia WordPress.

Najczęstsze pytania o framework WooCommerce

Jakiego frameworka używa WooCommerce?

WooCommerce nie używa osobnego frameworka. To wtyczka WordPress napisana w PHP, która rozszerza WordPressa przez haki (akcje i filtry), szablony i REST API. Jej kod ma strukturę inspirowaną MVC, a nowsze części używają klas z przestrzeniami nazw i Reacta.

Czy WooCommerce działa na Laravelu lub Symfony?

Nie. WooCommerce działa na WordPressie i własnych klasach PHP, a nie na Laravelu czy Symfony. Developerzy mogą nadal używać tych frameworków w układzie headless, w którym WooCommerce jest zapleczem handlowym.

Jakich języków programowania używa WooCommerce?

PHP do logiki biznesowej, MySQL lub MariaDB do danych, HTML i CSS do prezentacji oraz JavaScript we froncie, w tym React w blokach Koszyka i Kasy oraz w panelu.

Czy z WooCommerce można używać Reacta lub Vue?

Tak. W układzie headless frontend w React, Vue lub innym JavaScript komunikuje się z WooCommerce przez Store API (koszyk i kasa) oraz REST API (dane zaplecza).

Jak dostosować WooCommerce bez edycji plików rdzenia?

Używaj haków (akcji i filtrów) do zachowania, kopiuj szablony do folderu woocommerce w motywie lub motywie potomnym dla znaczników oraz używaj REST API i API rozszerzeń, takich jak API bramek płatności i metod wysyłki.

Czym jest HPOS i czy wpływa na własny kod?

High-Performance Order Storage przechowuje zamówienia w dedykowanych tabelach zamiast w tabelach wpisów WordPressa. Własny kod musi używać obiektu zamówienia WooCommerce (wc_get_order i jego metody) zamiast get_post_meta(), a wtyczki powinny deklarować zgodność z HPOS.

Pwel Zmyslowski

Paweł Zmysłowski

CEO WLC.team

W WLC odpowiada za proces sprzedaży i zespół sprzedaży, a w przypadku bardziej złożonych projektów pełnię również rolę analityczną i doradczą.

Strona autora

Czy Twój WordPress „działa, ale jest wolny”?

WIĘCEJ ARTYKUŁÓW

Czytaj także

  • Why do my comparison tables cause layout shift?
    10 minuta

    Dlaczego moje tabele porównawcze powodują przesunięcia układu?

    Tabele porównawcze często powodują przesunięcia układu, bo ich części ładują się bez zarezerwowanego miejsca, więc treść skacze w trakcie renderowania strony. Dzieje się tak, gdy obrazy nie mają wymiarów, dane dynamiczne ładują się bez placeholderów lub własne czcionki przeformatowują tekst po pierwszym renderowaniu. Przesunięcia układu szkodzą doświadczeniu użytkownika i Core Web Vitals, które wpływają na…

    Czytaj

  • How do you implement multiple payment gateways in iGaming platforms?
    11 minuta

    Bramka płatności iGaming: integracja wielu bramek, poradnik

    Wdrożenie wielu bramek płatności w platformach iGaming polega na zintegrowaniu kilku procesorów płatności, aby oferować różne opcje płatności, zapewnić zgodność z przepisami i zmaksymalizować wskaźniki sukcesu transakcji. To podejście wymaga starannego planowania technicznego, silnych zabezpieczeń i inteligentnych systemów routingu. Proces zwykle obejmuje integracje API, zarządzanie bazą danych i dokładne testy, aby stworzyć płynne doświadczenia płatnicze…

    Czytaj

  • 1 minuta

    Rozwój działalności eksportowej na nowych rynkach zagranicznych

    White Label Coders sp. z o.o. otrzymała dofinansowanie z Unii Europejskiej na projekt „Rozwój działalności eksportowej na nowych rynkach zagranicznych”. Wsparcie w formie bonu eksportowego pochodzi z projektu „InterGlobal – internacjonalizacja przedsiębiorstw sektora MŚP z województwa śląskiego”, realizowanego przez Fundusz Górnośląski S.A. w ramach programu Fundusze Europejskie dla Śląskiego 2021–2027. Cele projektu Wejście z nowym…

    Czytaj