Wspieramy społeczność WordPress w Kopenhadze
Nie jesteśmy tylko zdalną agencją. Jesteśmy aktywną częścią ekosystemu. Wierzymy w Open Source i wnosimy wkład w społeczność, która napędza ponad 40% sieci (W3Techs).
Kontekst lokalny: Skalowalna architektura, wysoki poziom bezpieczeństwa oraz integracje z systemami enterprise dopasowane do wymagań lokalnego rynku.
- Członek WordPress Copenhagen
Nawiązywanie kontaktów z innymi programistami w regionie Kopenhaga.
Dołącz do nas na następnym spotkaniu →
Programista WordPress & WooCommerce w Kopenhadze
W Kopenhadze, gdzie konkurencja jest wysoka, szybkość strony to Twój najważniejszy atut SEO. Nasz stack Astro + Headless WP gwarantuje wyniki, które zostawiają konkurencję w tyle.
Dla firm w Kopenhadze obsługujących sektor Design i green tech, bezpieczeństwo danych jest priorytetem. Architektura Headless wirtualnie eliminuje najczęstsze wektory ataków na WordPressa.
Sklep WooCommerce w Kopenhadze stoi obok sklepu merchu green tech z Ørestad z checkoutem w DKK i dostawą PostNord do biura, hurtowni B2B z Nordhavn z cenami według ról i fakturą z numerem CVR, subskrypcji produktów cyfrowych z Bloxhub rozliczanej cyklicznie przez Stripe, albo sklepu gadżetów eventowych przed TechBBQ, który w szczycie tygodnia konferencyjnego musi przeżyć skok ruchu bez gubienia webhooków MobilePay. To nie jest powód, żeby Woo udawało ERP korporacji z Indre By albo platformę rezerwacji spotkań inwestorskich. To powód, żeby checkout, bramki Stripe i MobilePay, moms, dostawa i integracje magazynowe były napisane tak, jak oczekuje duński dział compliance, magazyn w aglomeracji stołecznej albo zespół prawny, który czyta GDPR i wytyczne Datatilsynet, a nie tylko wynik Lighthouse na stronie kategorii.
WPPoland realizuje programowanie WooCommerce z polskiego zespołu seniorów dla firm w Kopenhadze i w szerszej Danii. Zakres to checkout, Stripe, MobilePay, Dankort, PayPal, strefy dostaw, logika podatkowa moms, hooki zamiast modyfikacji rdzenia i QA end-to-end na ścieżkach zamówień. Motyw WordPress, abonament opieki i kontakt są osobnymi tematami, z linkami na końcu.
Checkout WooCommerce w Kopenhadze
Kopenhaga to stolica Danii i jeden z najważniejszych ośrodków designu, green tech i cyfrowej gospodarki w Skandynawii. Aglomeracja stołeczna łączy Bloxhub przy Refshaleøen, klastry firm zrównoważonego rozwoju w Ørestad, biura korporacyjne w Nordhavn, ekosystem agencji kreatywnych wokół Nørrebro oraz Indre By. Sklep WooCommerce w tym układzie często nie jest wizytówką z koszykiem, tylko kanałem sprzedaży gadżetów employer branding, katalogiem B2B dla dystrybutorów usług IT, subskrypcją produktów cyfrowych albo sklepem D2C dla marki, która właśnie ogłosiła premierę przed TechBBQ.
Brief od klienta w Kopenhadze często brzmi: mamy Elementor i trzydzieści wtyczek, checkout trwa wieczność, MobilePay działa losowo, a po aktualizacji Woo zamówienia wiszą na oczekującym. To jest problem architektury checkoutu i webhooków Stripe, nie problem szablonu z marketplace. Typowy projekt, który trafia do seniorów Kopenhadze, nie brzmi zróbcie sklep. Brzmi: odziedziczony Woo z page builderem, MobilePay skonfigurowana przez agencję trzy lata temu, magazyn klei statusy ręcznie po TechBBQ, a dział prawny pyta, czy checkbox zgody w checkout i polityka prywatności da się obronić przed Datatilsynet. To jest dług integracyjny, który wychodzi we wrześniu przy konferencji, nie w audycie SEO.
WordPress Copenhagen Meetup spotyka się regularnie w ekosystemie kopenhaskim. To nie jest kanał sprzedaży. To sygnał, że lokalna społeczność zna WordPress Coding Standards i widzi różnicę między checkoutem z WooCommerce Blocks a page builderem generującym shortcode’y w treści. Sklepy, które tu stawiamy albo naprawiamy, zwykle łączą dwa rytmy: codzienną sprzedaż B2C z dostawą PostNord do aglomeracji stołecznej, oraz skoki katalogu przed premierą produktu albo kampanią rekrutacyjną, gdy magazyn w Ørestad albo fulfilment w okolicach Kopenhagi musi wyjechać paletami GLS, a nie listem poleconym.
Prace trzymają się WooCommerce. Customizacje idą przez hooki action i filter oraz własną wtyczkę, nigdy przez edycję plików rdzenia. Granica między rdzeniem Woo, kodem wtyczki i motywem zapada na audycie i trafia do runbooka.
Płatności na checkoucie w Danii w 2026
Duński koszyk zaczyna się od waluty. Sklep w Kopenhadze sprzedaje w DKK albo w EUR, w zależności od segmentu: B2C lokalny zwykle w koronach, B2B i eksport często w euro. Stripe pokrywa większość scenariuszy międzynarodowych: karta z 3D Secure, Apple Pay, Google Pay i portfel PayPal. MobilePay to duńska metoda, którą kupujący w Kopenhadze znają z telefonu w metrze i w sklepie stacjonarnym; integracja Woo z MobilePay wymaga osobnego runbooku webhooków i testów sandbox. Dankort to krajowa sieć kart debetowych, często obsługiwana przez Stripe albo lokalnego acquirera. Klient z aglomeracji stołecznej oczekuje, że kwota na checkoucie, w mailu potwierdzającym i na wyciągu bankowym będzie zgodna z wybraną walutą, z jawną stawką moms.
Dla każdej bramki w runbooku zostaje: obsługiwane flow (jednorazowe, cykliczne, capture, zwrot pełny, zwrot częściowy), adres webhooka, lista zdarzeń które zmieniają status, matryca kont sandbox i historia idempotencji. Stripe zgłasza payment_intent.succeeded i charge.refunded osobnymi zdarzeniami. MobilePay wymaga osobnej decyzji, czy capture idzie od razu, czy po nadaniu przesyłki - przy produktach fizycznych z magazynu w Nordhavn druga opcja chroni przed pobraniem pieniędzy za SKU, którego nie ma na stanie.
Kolejność metod na checkoucie ustawiamy pod duńskie nawyki: MobilePay i karta przez Stripe wysoko, Apple Pay tam gdzie Safari dominuje w ruchu mobilnym z tygodnia konferencyjnego, PayPal przy koszyku powyżej kilkuset koron, przelew bankowy tylko w ścieżce B2B z jasnym komunikatem o czasie księgowania. Domyślny szablon Woo z kartą na górze i bez MobilePay pracuje wbrew nawykom rynku duńskiego, w tym kupującego w Kopenhadze, który woli portfel mobilny przy codziennym zakupie.
Sklepy sprzedające do innych krajów UE muszą osobno rozwiązać VAT OSS albo lokalną rejestrację w kraju docelowym. Woo sam z siebie nie jest modułem OSS. Albo wtyczka podatkowa liczy stawki destynacji, albo ERP jest źródłem podatku, a Woo tylko zbiera adres i kwoty. Mieszanie obu źródeł to najczęstszy rozjazd w deklaracji moms, który wychodzi dopiero na fakturze, a nie w koszyku.
Strefy dostaw: PostNord, GLS i DAO
Krajowa dostawa z Danii w 2026 to przede wszystkim PostNord, GLS, DAO i DHL. PostNord obsługuje paczki do standardowego gabarytu w aglomeracji stołecznej. GLS daje kuriera do drzwi i sieć punktów odbioru w Kopenhadze: Ørestad, Nordhavn, Nørrebro, Frederiksberg, Indre By. Strefy Woo rozdzielamy nie tylko na Danię / UE / reszta świata, ale na wagę i wymiar: do progu listu, do progu paczki standardowej, powyżej kurier paletowy dla gabarytów.
Integracja z kurierem wymaga mapowania produktów Woo na usługi przewoźnika: PostNord MyPack, GLS Business Parcel, DAO Home Delivery. Wtyczka kuriera nie dodaje osobnej metody do listy stref Woo. Przypina się ją do istniejącej stawki ryczałtowej albo darmowej dostawy, a potem mapuje produkty w ustawieniach API. Ręczne klejenie etykiet w portalu PostNord przy liczbie zamówień po TechBBQ nie skaluje się.
Etykieta i numer śledzenia wracają do zamówienia Woo i do maila klienta. Generowanie etykiety po payment_complete zdejmujemy do Action Scheduler (as_enqueue_async_action), żeby handler webhooka oddał 200 zanim API kuriera policzy routing. Lokalny odbiór w aglomeracji (Bloxhub, magazyn w Ørestad) ma osobną metodę z jasnym adresem punktu.
Moms i pole CVR
Stawka moms w Danii w 2026 to standardowe 25 procent na większość towarów i usług, z wyjątkami obniżonymi na wybrane kategorie (np. część produktów żywnościowych, książki, transport). Koszyk mieszany jest codziennością przy sklepie B2B green tech albo eventowym, który sprzedaje katalog targowy obok gadżetu. Woo musi liczyć podatek per pozycja, a nie weź najwyższą stawkę koszyka. Błąd w klasie podatkowej produktu wychodzi dopiero na fakturze moms.
B2B wewnątrz Danii z ważnym numerem CVR idzie jako transakcja z odwrotnym obciążeniem albo z zerową stawką tam, gdy przepisy na to pozwalają, o ile numer przejdzie walidację VIES i sklep zapisuje dowód sprawdzenia przy zamówieniu. Pole CVR na checkoucie, walidacja i przełączenie klasy podatkowej to nie ozdoba formularza. Przy płatności przelewem B2B to samo pole decyduje, czy faktura w ogóle ma szansę przejść u księgowości w Kopenhadze.
Granicę co liczy podatek i wystawia dokument zapisujemy w runbooku: WooCommerce Tax, osobny silnik faktur (E-conomic, Billy, własna integracja), albo system księgowy klienta. Jedno źródło numeracji. Dwa źródła dają podwójne numery albo dziury, a audyt podatkowy tego nie wybacza.
Webhooki, rezerwacja stanu i HPOS
Najczęstsza wada sklepów, które wracają do naprawy w Kopenhadze, nie leży w wyglądzie checkoutu. Leży w tym, co dzieje się po kliknięciu Betal med MobilePay albo Gennemfør ordre. Sklep z magazynu w Nordhavn, który sprzedaje równolegle przez własne Woo i przez marketplace, płaci za ten błąd dwa razy: raz zamówieniem w limbo, drugi raz nadsprzedażą SKU, który był już zarezerwowany w drugim kanale.
Status zamówienia ustala serwer, nie powrót klienta
Status zamówienia ustala powiadomienie serwer do serwera. Powrót klienta na stronę podziękowania nie jest źródłem prawdy. Endpoint order-received to zdarzenie przeglądarki. Przeglądarka jest zawodna: po autoryzacji MobilePay klient zamyka kartę w metrze między Nørreport a Kongens Nytorv, traci sieć w parkingowym domu przy lotnisku Kastrup, wraca z cache. Hook woocommerce_thankyou służy do wyświetlenia treści. Nie zmienia statusu płatności.
O pieniądzach decyduje callback bramki. W Woo odbiera go własny adres zwrotny z parametrem wc-api, czyli akcja z rodziny woocommerce_api_ rejestrowana przez wtyczkę bramki. Handler po weryfikacji sygnatury wywołuje payment_complete na obiekcie zamówienia i przenosi je z pending do processing. Sygnaturę sprawdzamy na surowym ciele żądania ze strumienia php://input, zanim cokolwiek zostanie sparsowane. Cięższą pracę po weryfikacji - synchronizację magazynu, wystawienie faktury, nadanie PostNord albo GLS - zdejmujemy do Action Scheduler, żeby odpowiedź 200 wracała szybko i Stripe albo MobilePay nie zaczęły ponawiać.
Powtórzony sygnał z bramki jest normą, nie awarią. Identyfikator zdarzenia zapisujemy w meta zamówienia i sprawdzamy przed przetworzeniem. Zamówienie już opłacone nie zmienia statusu drugi raz. Dostaje notatkę o zignorowanym duplikacie.
Płatność odrzucona i zwrot częściowy to dwie osobne ścieżki. Odrzucenie ustawia status failed, nie cancelled, bo zamówienie ma nadal dać się opłacić: klient dostaje link z get_checkout_payment_url. Zwrot częściowy idzie przez wc_create_refund z listą pozycji i kwot oraz z flagą zwrotu na bramce. Zamówienie zostaje w processing albo completed, a zwróconą kwotę czyta się z get_total_refunded, nie ze statusu.
Rezerwacja magazynu i sprzedaż wielokanałowa
Stan rezerwujemy w momencie rozpoczęcia płatności, nie po jej potwierdzeniu. WooCommerce od wersji 4.3 zapisuje rezerwację w tabeli wp_wc_reserved_stock przez wc_reserve_stock_for_order, zwalnia ją przez wc_release_stock_for_order, a czas trzymania bierze z opcji woocommerce_hold_stock_minutes. Bez tego dwoje kupujących wchodzi w MobilePay na ostatnią sztukę limitowanego SKU przed TechBBQ i oboje dostają potwierdzenie.
Przy sprzedaży wielokanałowej rezerwacja Woo nie wie nic o Zalando, Amazon albo innym kanale. Źródłem prawdy zostaje wspólna pula w ERP albo w warstwie fulfilment, a Woo trzyma stan przez synchronizację. Hold stock przy płatności przelewem B2B ustawia się dłużej niż przy MobilePay: przelew z banku potrafi iść do następnego dnia roboczego.
Tabele wp_wc_orders i tryb zgodności
High-Performance Order Storage jest domyślny dla nowych instalacji od WooCommerce 8.2. Zamówienia żyją wtedy w wp_wc_orders, wp_wc_order_addresses, wp_wc_order_operational_data i wp_wc_orders_meta, a nie jako wpisy shop_order w wp_posts. Sklepy postawione wcześniej przełączają się świadomie: najpierw tryb zgodności, potem HPOS jako magazyn autorytatywny, na końcu wyłączenie dual-write gdy raporty i wtyczki przestaną się rozjeżdżać.
Diagnostyka i raporty idą przez wc_get_orders oraz OrderUtil, nie przez SQL w wp_posts. Wtyczka, która w 2026 nadal szuka zamówień wyłącznie w postmeta, na HPOS pokazuje puste listy i gubi zwroty. Oficjalne Stripe, PayPal, MobilePay, PostNord i GLS są na HPOS od dawna. Problemem są stare konektory magazynowe i autorskie crony.
GDPR, Datatilsynet i formularze w duńskim kontekście
Dania stosuje rozporządzenie UE 2016/679 (GDPR) wraz z krajową ustawą Databeskyttelsesloven, nadzorowaną przez Datatilsynet (duński organ ochrony danych osobowych). Dla sklepu WooCommerce w Kopenhadze to nie jest abstrakcyjny paragraf prawny. To decyzje w formularzach, w wtyczkach consent, w polityce prywatności i w logach audytowych.
Co wpisujemy w brief i w kod:
- Formularze zbierające dane osobowe (konto klienta, newsletter, zapytania B2B, checkout z zapisem do konta) dostają jawną podstawę prawną, checkbox zgody tam, gdzie consent jest wymagany, i minimalizację pól. Pola, których nie potrzebujesz do celu formularza, nie istnieją.
- Wtyczki consent (Cookie Information, Cookiebot, popularne w Danii) konfigurujemy tak, żeby skrypty marketingowe nie ładowały się przed akceptacją. Wytyczne Datatilsynet wymagają świadomej zgody przed nieistotnymi plikami cookie. To jest decyzja w motywie i w kolejności enqueue, nie ticket opieki po pierwszym raporcie organu nadzorczego.
- Polityka prywatności i cookie policy są szablonami z polami, nie blokami, które redaktor może usunąć z drzewa. W Kopenhadze te strony są elementem compliance, nie stopką marketingową. Numer CVR w stopce zgodnie z duńską praktyką identyfikacji podmiotu gospodarczego.
- Integracje z CRM (HubSpot, Salesforce, Pipedrive) dostają dokumentację przepływu danych: co trafia do systemu zewnętrznego, jak długo, kto jest administratorem. Umowy powierzenia przetwarzania to decyzja klienta, ale konfiguracja Woo musi umożliwiać realizację tej decyzji.
- Logi audytowe dla formularzy i zmian w panelu admina pomagają przy incydentach. Jeśli ktoś pyta kto zmienił ustawienia formularza checkout w piątek przed TechBBQ, odpowiedź nie może być nie wiemy.
Zespół nie obiecuje zgodności z GDPR bez właściciela procesu po stronie klienta. Nie składa raportu do Datatilsynet za klienta. Obiecuje konfigurację techniczną, którą właściciel może opisać w dokumentacji i włożyć do zgłoszenia naruszenia w 72 godziny, gdy procedura tego wymaga. Datatilsynet publikuje wytyczne i narzędzia audytowe na datatilsynet.dk; runbook checkoutu powinien być z nimi zgodny co do tego, co agencja dokumentuje, a co zostaje po stronie administratora danych.
Hosting w UE
Dane osobowe pod GDPR ciągną pytanie: w której jurysdykcji stoi serwer. AWS w Sztokholmie (eu-north-1), Hetzner w Falkenstein (Niemcy), Scaleway we Francji albo hosting u duńskiego providera to różne odpowiedzi dla compliance officer, ale wszystkie mieszczą się w UE albo EOG. Ashburn albo Hillsboro to Stany i zwykle veto bez Standard Contractual Clauses albo innej podstawy transferu.
Pytanie czy hosting jest w Kopenhadze wraca rzadziej niż czy w UE. Odpowiedź operacyjna jest dwuczęściowa. Jurysdykcja: UE, kopia nie wyjeżdża nocą na bucket w regionie US bez uzgodnienia. Latencja: origin w aglomeracji stołecznej albo Sztokholm plus CDN z terminałem TLS w UE zwykle wystarcza dla użytkowników Danii i w Europie Północnej.
Zwroty i prawo konsumenckie jako operacje sklepu
Poniższe akapity opisują skutki w sklepie. Nie są poradą prawną. Teksty terms and conditions, privacy policy i polityki zwrotów zatwierdza kancelaria albo odpowiedzialny w firmie. Zadaniem Woo jest spiąć ten tekst z koszykiem, z przyciskiem, z mailem i z magazynem.
Konsument w Danii ma prawo odstąpić od umowy zawartej na odległość w ciągu 14 dni na podstawie duńskiej implementacji dyrektywy konsumenckiej. Termin zaczyna biec, gdy klient otrzymał towar. Dla magazynu w Nordhavn to nie ciekawostka prawna. To SKU, którego nie wolno sprzedać drugi raz, bo może wrócić za trzy kwartały.
Ścieżka operacyjna, którą budujemy:
- Klient składa zwrot z numerem zamówienia albo danymi, które pozwalają je znaleźć w
wp_wc_orders. - Sklep ustawia status RMA, wysyła potwierdzenie i etykietę zwrotną PostNord albo instrukcję nadania GLS.
- Przyjęcie na magazynie zdejmuje blokadę SKU i dopiero wtedy idzie
wc_create_refundna Stripe, MobilePay, PayPal albo przelew zwrotny przy przelewie B2B. - Częściowy zwrot (jedna pozycja z trzech) nie zamyka całego zamówienia i nie zwraca kosztów wysyłki w ciemno; kwoty bierze się z pozycji, nie z ręcznego zwróć wszystko.
- Towar wyłączony ze zwrotu (higiena, personalizacja, treść cyfrowa po rozpoczęciu) musi mieć tę informację przy SKU przed zakupem.
Sezon po świętach i po TechBBQ to test tej ścieżki. Sklep, który w listopadzie ręcznie klika zwroty w panelu MobilePay, a stany poprawia w Excelu, rozjeżdża raport moms i nadsprzedaje wracający towar.
Katalog i checkout pod kalendarz TechBBQ
TechBBQ to jedna z największych konferencji startupowych w Europie Północnej, odbywająca się co roku w Kopenhadze. W tygodniu konferencji setki firm green tech, fintech i B2B patrzą na landingi produktowe, formularze zapisu na spotkania, integracje z systemami CRM i treści wielojęzyczne DA/EN. W tych oknach ruch na stronie rośnie wielokrotnie, newslettery idą w setkach tysięcy, a każda zmiana na produkcji jest ryzykiem. Dlatego w runbooku zapisujemy freeze wdrożeń: w tygodniu TechBBQ nie idą aktualizacje wtyczek, nie idą nowe bloki, nie idą zmiany w motywie. środowisko testowe dostaje zmiany, produkcja czeka do kilku dni po szczycie.
Katalog, który przez jedenaście miesięcy ma osiemset pozycji, przed konferencją dostaje warstwę limitowanych zestawów, cen obowiązujących do wyczerpania zapasu i wariantów, których nie ma w stałej ofercie. Woo musi to udźwignąć bez zgonu strony kategorii.
Nowa architektura checkoutu, przełączenie HPOS albo zmiana mapy stref PostNord i GLS nie wchodzi na produkcję w oknie konferencyjnym. Tydzień przed TechBBQ produkcja nie dostaje drobnej aktualizacji SEO. Drobna aktualizacja SEO w piątek przed szczytem potrafi nadpisać robots, wyciąć landing merchu z indeksu albo zepsuć cache strony promocyjnej.
Warianty trzymamy jako prawdziwe variation z własnym SKU, wagą i klasą podatkową, nie jako pole tekstowe wpisz kolor. Duża macierz (rozmiar × kolor × materiał przy merchu eventowym) dostaje własne zapytania i cache fragmentów.
Preorder przed premierą produktu: SKU jest widoczny, płatność schodzi, ale fulfillment stoi aż do daty. Status on-hold albo własny status warte na magazyn musi blokować etykietę kuriera. Inaczej wtyczka GLS nada pustą paczkę pod punkt odbioru przy Bloxhub.
Ceny netto / brutto na checkoucie B2B (netto plus moms) i B2C (brutto) to dwa szablony, nie przełącznik CSS. Kupujący z CVR w Kopenhadze oczekuje netto. Konsument z aglomeracji oczekuje brutto.
Kopenhaga jako kontekst rynkowy, nie jako ozdobnik
Bloxhub przy Refshaleøen to hub dla startupów i firm green tech w Kopenhadze. Tu siedzą zespoły pracujące nad energią odnawialną, cyrkularną gospodarką i rozwiązaniami klimatycznymi. Sklep WooCommerce często obsługuje merch eventowy, katalog produktów B2B albo subskrypcję materiałów technicznych. Awaria checkoutu w tygodniu TechBBQ to nie problem marketingu. To problem compliance i często temat dla działu prawnego, który pyta o hosting w UE i zgodność z duńskim GDPR.
Ørestad i Nordhavn to dwa różne profile klientów Kopenhadze. W Ørestad dominują firmy technologiczne i green tech z nowoczesnymi biurami i międzynarodowymi zespołami. W Nordhavn siedzą korporacje, agencje i firmy B2B z długim cyklem sprzedaży. Oba sektory mają wspólny problem: skoki ruchu i presja compliance, która nie wybacza awarii w szczycie.
Agencje designu z Nørrebro i Frederiksberg mają inny profil niż green tech z Ørestad. Więcej treści wizualnych, więcej materiałów multimedialnych, więcej pytań o dostępność i mniej o integrację z systemem magazynowym. WooCommerce w tym środowisku to sklep z produktami designerskimi, kalendarz wydarzeń albo strona studia, która zbiera zapytania B2B i musi respektować GDPR w formularzach.
Typowy brief, który trafia do seniorów Kopenhadze, nie brzmi zróbcie ładny sklep. Brzmi: odziedziczony Woo z trzydziestoma wtyczkami, checkout który gubi webhook MobilePay, magazyn w Ørestad synchronizowany ręcznie z Excela, księgowość czeka na eksport do E-conomic, a za tydzień startuje TechBBQ. To jest problem checkoutu, webhooków i HPOS, nie problem szablonu z marketplace.
Subskrypcje, B2B i WooCommerce Blocks
WooCommerce Subscriptions w Kopenhadze spotykamy przy boxach D2C, subskrypcjach produktów cyfrowych albo abonamentach B2B z rozliczeniem cyklicznym przez Stripe. Subskrypcja wymaga osobnego runbooku: retry płatności, grace period, anulowanie, upgrade planu, synchronizacja z CRM. Webhook invoice.payment_failed od Stripe musi trafić do Woo i zmienić status subskrypcji, nie tylko wysłać maila.
B2B w Kopenhadze to ceny według ról, minimalne wielkości zamówień, procesy zapytań ofertowych i dedykowane portale do zarządzania kontami klientów biznesowych. WooCommerce B2B albo własna warstwa ról musi współgrać z CVR i płatnością przelewem. Portal B2B, który pokazuje ceny netto bez walidacji roli, to wyciek cennika hurtowego na front publiczny.
WooCommerce Blocks Checkout ma sens, gdy checkout ma być lekki i nie ciągnąć całego page buildera. Bloki checkoutu renderują się serwerowo tam, gdzie to możliwe. Skrypty Stripe, MobilePay i GLS Location Finder ładujemy wtedy, gdy checkout jest na ekranie, z preconnect do ich domen, nie w stopce każdej strony kategorii.
Wydajność koszyka i checkoutu
Checkout jest dynamiczny. Pełny page cache na cart i checkout serwuje cudzy koszyk albo pusty fragment mini-cart. Warstwa cache (Redis, Cloudflare) omija te ścieżki albo stosuje segmentację. Fragmenty mini-cart liczymy osobno.
Obrazy katalogu idą w AVIF / WebP z srcset. Kampanie eventowe generują ciężkie JPEG ze stoiska; bez przetwarzania LCP na karcie produktu spada, zanim kupujący zobaczy przycisk MobilePay. Query Monitor na stagingu pokazuje, czy wtyczka kuriera i bramka nie dokładają po N zapytań na każdy request koszyka.
Pomiar: Lighthouse i dane terenowe na URL produktu, kategorii i checkoutu, przed i po. TechBBQ to test infrastruktury, nie średnia z kwartału. Monitoring z jednego regionu USA kłamie, gdy goście stoją w kolejce przy wejściu na konferencję. Punkt pomiaru w UE jest częścią kryteriów odbioru.
Core Web Vitals są czynnikiem rankingowym Google i jednocześnie czynnikiem konwersji na stronie, która zbiera zamówienia w szczycie kampanii. Nie obiecujemy konkretnej delty procentowej przed audytem, bo skala poprawy zależy od stanu wejściowego konkretnej instalacji. Budżety wydajnościowe ustalamy na starcie projektu i weryfikujemy je na danych terenowych z raportu CrUX, nie tylko w pomiarze laboratoryjnym.
Zakres prac, QA i przekazanie
Audyt na wejściu obejmuje: taksonomię i klasy podatkowe moms, kolejność metod płatności Stripe, MobilePay i PayPal, strefy PostNord i GLS, HPOS i listę wtyczek czytających zamówienia, webhooki, hold stock, ścieżkę zwrotu, eksport do E-conomic albo systemu księgowego, baseline Lighthouse, kalendarz TechBBQ w harmonogramie wydań, konfigurację GDPR, cookie consent pod Datatilsynet. Na tym etapie zapada, co jest źródłem stanu, podatku i numeru dokumentu.
Implementacja idzie gałęziami funkcyjnymi. Każda bramka ma scenariusz sandbox: Stripe test mode, PayPal sandbox, MobilePay test environment, Apple Pay w środowisku testowym. PostNord i GLS mają środowiska testowe etykiet. QA kończy się zamówieniem, które przechodzi: koszyk mieszany ze stawkami moms, punkt GLS, webhook, notatka w zamówieniu, etykieta, mail, a potem zwrot częściowy na tę samą bramkę.
Przekazanie to runbook bramek, mapa stref, opis zwrotu po stronie sklepu, instrukcja eksportu księgowego i zapis decyzji HPOS. Wycena jest indywidualna i na piśmie przed startem. Zmiany zakresu omawiamy z konsekwencją dla terminu. Nie publikujemy cennika SKU na tej stronie.
Kiedy ta strona, a kiedy opieka albo programista WordPress
Ta strona zostaje przy sklepie: katalog, checkout, płatność, dostawa, stan, dokument, zwrot. Motyw bloga, Gutenberg, intranet albo strona korporacyjna centrali w Nordhavn nie są tutaj tematem - to programista WordPress w Kopenhadze. Monitoring, aktualizacje rdzenia i kopie zapasowe bez przebudowy checkoutu to opieka techniczna WordPress w Kopenhadze. Szerszy opis utrzymania bez miasta: utrzymanie stron WordPress. Wspólny filar e-commerce: programista WooCommerce.
Bloxhub, Ørestad i TechBBQ tłumaczą, skąd biorą się sklepy B2B z CVR i płatnością przelewem. Nie tłumaczą, czemu webhook MobilePay bez idempotencji zostawia zamówienie w pending po konferencji.
Rozpocznij projekt sklepu WooCommerce w Kopenhadze
Do kontaktu wystarczy krótki opis: czy sklep już stoi, jakie bramki są włączone (Stripe, MobilePay, PayPal), skąd leci dostawa (PostNord, GLS, odbiór w aglomeracji), czy HPOS jest włączony, jaki jest magazyn (Ørestad, 3PL, centrala w Nordhavn), czy księgowość czeka na eksport do E-conomic, czy cookie consent blokuje tagi przed zgodą, i które daty TechBBQ blokują wydanie. Na tej podstawie widać, czy potrzebna jest przebudowa checkoutu, czy zestawienie webhooków i stanów.
WPPoland pracuje przy WooCommerce od strony zamówienia, nie od strony slajdu. Kopenhaga dostaje ten sam rygor inżynierski co każdy inny sklep, tylko ze stackiem, którego kupujący w Danii naprawdę używa, i z kalendarzem TechBBQ wpisanym w harmonogram wydań.
Mapa w Kopenhadze i okolic
Obsługujemy klientów w Kopenhadze i pobliskich miejscowościach.
Ta strona zawiera informacje przygotowane specjalnie dla Kopenhaga.
Sklep WooCommerce w Kopenhadze stoi obok sklepu merchu green tech z Ørestad z checkoutem w DKK i dostawą PostNord do biura, hurtowni B2B z Nordhavn z cenami według ról i fakturą z numerem CVR, subskrypcji produktów cyfrowych z Bloxhub rozliczanej cyklicznie przez Stripe, albo sklepu gadżetów eventowych przed TechBBQ, który w szczycie tygodnia konferencyjnego musi przeżyć skok ruchu bez gubienia webhooków MobilePay. To nie jest powód, żeby Woo udawało ERP korporacji z Indre By albo platformę rezerwacji spotkań inwestorskich. To powód, żeby checkout, bramki Stripe i MobilePay, moms, dostawa i integracje magazynowe były napisane tak, jak oczekuje duński dział compliance, magazyn w aglomeracji stołecznej albo zespół prawny, który czyta GDPR i wytyczne Datatilsynet, a nie tylko wynik Lighthouse na stronie kategorii.
WPPoland realizuje programowanie WooCommerce z polskiego zespołu seniorów dla firm w Kopenhadze i w szerszej Danii. Zakres to checkout, Stripe, MobilePay, Dankort, PayPal, strefy dostaw, logika podatkowa moms, hooki zamiast modyfikacji rdzenia i QA end-to-end na ścieżkach zamówień. Motyw WordPress, abonament opieki i kontakt są osobnymi tematami, z linkami na końcu.
Checkout WooCommerce w Kopenhadze
Kopenhaga to stolica Danii i jeden z najważniejszych ośrodków designu, green tech i cyfrowej gospodarki w Skandynawii. Aglomeracja stołeczna łączy Bloxhub przy Refshaleøen, klastry firm zrównoważonego rozwoju w Ørestad, biura korporacyjne w Nordhavn, ekosystem agencji kreatywnych wokół Nørrebro oraz Indre By. Sklep WooCommerce w tym układzie często nie jest wizytówką z koszykiem, tylko kanałem sprzedaży gadżetów employer branding, katalogiem B2B dla dystrybutorów usług IT, subskrypcją produktów cyfrowych albo sklepem D2C dla marki, która właśnie ogłosiła premierę przed TechBBQ.
Brief od klienta w Kopenhadze często brzmi: mamy Elementor i trzydzieści wtyczek, checkout trwa wieczność, MobilePay działa losowo, a po aktualizacji Woo zamówienia wiszą na oczekującym. To jest problem architektury checkoutu i webhooków Stripe, nie problem szablonu z marketplace. Typowy projekt, który trafia do seniorów Kopenhadze, nie brzmi zróbcie sklep. Brzmi: odziedziczony Woo z page builderem, MobilePay skonfigurowana przez agencję trzy lata temu, magazyn klei statusy ręcznie po TechBBQ, a dział prawny pyta, czy checkbox zgody w checkout i polityka prywatności da się obronić przed Datatilsynet. To jest dług integracyjny, który wychodzi we wrześniu przy konferencji, nie w audycie SEO.
WordPress Copenhagen Meetup spotyka się regularnie w ekosystemie kopenhaskim. To nie jest kanał sprzedaży. To sygnał, że lokalna społeczność zna WordPress Coding Standards i widzi różnicę między checkoutem z WooCommerce Blocks a page builderem generującym shortcode’y w treści. Sklepy, które tu stawiamy albo naprawiamy, zwykle łączą dwa rytmy: codzienną sprzedaż B2C z dostawą PostNord do aglomeracji stołecznej, oraz skoki katalogu przed premierą produktu albo kampanią rekrutacyjną, gdy magazyn w Ørestad albo fulfilment w okolicach Kopenhagi musi wyjechać paletami GLS, a nie listem poleconym.
Prace trzymają się WooCommerce. Customizacje idą przez hooki action i filter oraz własną wtyczkę, nigdy przez edycję plików rdzenia. Granica między rdzeniem Woo, kodem wtyczki i motywem zapada na audycie i trafia do runbooka.
Płatności na checkoucie w Danii w 2026
Duński koszyk zaczyna się od waluty. Sklep w Kopenhadze sprzedaje w DKK albo w EUR, w zależności od segmentu: B2C lokalny zwykle w koronach, B2B i eksport często w euro. Stripe pokrywa większość scenariuszy międzynarodowych: karta z 3D Secure, Apple Pay, Google Pay i portfel PayPal. MobilePay to duńska metoda, którą kupujący w Kopenhadze znają z telefonu w metrze i w sklepie stacjonarnym; integracja Woo z MobilePay wymaga osobnego runbooku webhooków i testów sandbox. Dankort to krajowa sieć kart debetowych, często obsługiwana przez Stripe albo lokalnego acquirera. Klient z aglomeracji stołecznej oczekuje, że kwota na checkoucie, w mailu potwierdzającym i na wyciągu bankowym będzie zgodna z wybraną walutą, z jawną stawką moms.
Dla każdej bramki w runbooku zostaje: obsługiwane flow (jednorazowe, cykliczne, capture, zwrot pełny, zwrot częściowy), adres webhooka, lista zdarzeń które zmieniają status, matryca kont sandbox i historia idempotencji. Stripe zgłasza payment_intent.succeeded i charge.refunded osobnymi zdarzeniami. MobilePay wymaga osobnej decyzji, czy capture idzie od razu, czy po nadaniu przesyłki - przy produktach fizycznych z magazynu w Nordhavn druga opcja chroni przed pobraniem pieniędzy za SKU, którego nie ma na stanie.
Kolejność metod na checkoucie ustawiamy pod duńskie nawyki: MobilePay i karta przez Stripe wysoko, Apple Pay tam gdzie Safari dominuje w ruchu mobilnym z tygodnia konferencyjnego, PayPal przy koszyku powyżej kilkuset koron, przelew bankowy tylko w ścieżce B2B z jasnym komunikatem o czasie księgowania. Domyślny szablon Woo z kartą na górze i bez MobilePay pracuje wbrew nawykom rynku duńskiego, w tym kupującego w Kopenhadze, który woli portfel mobilny przy codziennym zakupie.
Sklepy sprzedające do innych krajów UE muszą osobno rozwiązać VAT OSS albo lokalną rejestrację w kraju docelowym. Woo sam z siebie nie jest modułem OSS. Albo wtyczka podatkowa liczy stawki destynacji, albo ERP jest źródłem podatku, a Woo tylko zbiera adres i kwoty. Mieszanie obu źródeł to najczęstszy rozjazd w deklaracji moms, który wychodzi dopiero na fakturze, a nie w koszyku.
Strefy dostaw: PostNord, GLS i DAO
Krajowa dostawa z Danii w 2026 to przede wszystkim PostNord, GLS, DAO i DHL. PostNord obsługuje paczki do standardowego gabarytu w aglomeracji stołecznej. GLS daje kuriera do drzwi i sieć punktów odbioru w Kopenhadze: Ørestad, Nordhavn, Nørrebro, Frederiksberg, Indre By. Strefy Woo rozdzielamy nie tylko na Danię / UE / reszta świata, ale na wagę i wymiar: do progu listu, do progu paczki standardowej, powyżej kurier paletowy dla gabarytów.
Integracja z kurierem wymaga mapowania produktów Woo na usługi przewoźnika: PostNord MyPack, GLS Business Parcel, DAO Home Delivery. Wtyczka kuriera nie dodaje osobnej metody do listy stref Woo. Przypina się ją do istniejącej stawki ryczałtowej albo darmowej dostawy, a potem mapuje produkty w ustawieniach API. Ręczne klejenie etykiet w portalu PostNord przy liczbie zamówień po TechBBQ nie skaluje się.
Etykieta i numer śledzenia wracają do zamówienia Woo i do maila klienta. Generowanie etykiety po payment_complete zdejmujemy do Action Scheduler (as_enqueue_async_action), żeby handler webhooka oddał 200 zanim API kuriera policzy routing. Lokalny odbiór w aglomeracji (Bloxhub, magazyn w Ørestad) ma osobną metodę z jasnym adresem punktu.
Moms i pole CVR
Stawka moms w Danii w 2026 to standardowe 25 procent na większość towarów i usług, z wyjątkami obniżonymi na wybrane kategorie (np. część produktów żywnościowych, książki, transport). Koszyk mieszany jest codziennością przy sklepie B2B green tech albo eventowym, który sprzedaje katalog targowy obok gadżetu. Woo musi liczyć podatek per pozycja, a nie weź najwyższą stawkę koszyka. Błąd w klasie podatkowej produktu wychodzi dopiero na fakturze moms.
B2B wewnątrz Danii z ważnym numerem CVR idzie jako transakcja z odwrotnym obciążeniem albo z zerową stawką tam, gdy przepisy na to pozwalają, o ile numer przejdzie walidację VIES i sklep zapisuje dowód sprawdzenia przy zamówieniu. Pole CVR na checkoucie, walidacja i przełączenie klasy podatkowej to nie ozdoba formularza. Przy płatności przelewem B2B to samo pole decyduje, czy faktura w ogóle ma szansę przejść u księgowości w Kopenhadze.
Granicę co liczy podatek i wystawia dokument zapisujemy w runbooku: WooCommerce Tax, osobny silnik faktur (E-conomic, Billy, własna integracja), albo system księgowy klienta. Jedno źródło numeracji. Dwa źródła dają podwójne numery albo dziury, a audyt podatkowy tego nie wybacza.
Webhooki, rezerwacja stanu i HPOS
Najczęstsza wada sklepów, które wracają do naprawy w Kopenhadze, nie leży w wyglądzie checkoutu. Leży w tym, co dzieje się po kliknięciu Betal med MobilePay albo Gennemfør ordre. Sklep z magazynu w Nordhavn, który sprzedaje równolegle przez własne Woo i przez marketplace, płaci za ten błąd dwa razy: raz zamówieniem w limbo, drugi raz nadsprzedażą SKU, który był już zarezerwowany w drugim kanale.
Status zamówienia ustala serwer, nie powrót klienta
Status zamówienia ustala powiadomienie serwer do serwera. Powrót klienta na stronę podziękowania nie jest źródłem prawdy. Endpoint order-received to zdarzenie przeglądarki. Przeglądarka jest zawodna: po autoryzacji MobilePay klient zamyka kartę w metrze między Nørreport a Kongens Nytorv, traci sieć w parkingowym domu przy lotnisku Kastrup, wraca z cache. Hook woocommerce_thankyou służy do wyświetlenia treści. Nie zmienia statusu płatności.
O pieniądzach decyduje callback bramki. W Woo odbiera go własny adres zwrotny z parametrem wc-api, czyli akcja z rodziny woocommerce_api_ rejestrowana przez wtyczkę bramki. Handler po weryfikacji sygnatury wywołuje payment_complete na obiekcie zamówienia i przenosi je z pending do processing. Sygnaturę sprawdzamy na surowym ciele żądania ze strumienia php://input, zanim cokolwiek zostanie sparsowane. Cięższą pracę po weryfikacji - synchronizację magazynu, wystawienie faktury, nadanie PostNord albo GLS - zdejmujemy do Action Scheduler, żeby odpowiedź 200 wracała szybko i Stripe albo MobilePay nie zaczęły ponawiać.
Powtórzony sygnał z bramki jest normą, nie awarią. Identyfikator zdarzenia zapisujemy w meta zamówienia i sprawdzamy przed przetworzeniem. Zamówienie już opłacone nie zmienia statusu drugi raz. Dostaje notatkę o zignorowanym duplikacie.
Płatność odrzucona i zwrot częściowy to dwie osobne ścieżki. Odrzucenie ustawia status failed, nie cancelled, bo zamówienie ma nadal dać się opłacić: klient dostaje link z get_checkout_payment_url. Zwrot częściowy idzie przez wc_create_refund z listą pozycji i kwot oraz z flagą zwrotu na bramce. Zamówienie zostaje w processing albo completed, a zwróconą kwotę czyta się z get_total_refunded, nie ze statusu.
Rezerwacja magazynu i sprzedaż wielokanałowa
Stan rezerwujemy w momencie rozpoczęcia płatności, nie po jej potwierdzeniu. WooCommerce od wersji 4.3 zapisuje rezerwację w tabeli wp_wc_reserved_stock przez wc_reserve_stock_for_order, zwalnia ją przez wc_release_stock_for_order, a czas trzymania bierze z opcji woocommerce_hold_stock_minutes. Bez tego dwoje kupujących wchodzi w MobilePay na ostatnią sztukę limitowanego SKU przed TechBBQ i oboje dostają potwierdzenie.
Przy sprzedaży wielokanałowej rezerwacja Woo nie wie nic o Zalando, Amazon albo innym kanale. Źródłem prawdy zostaje wspólna pula w ERP albo w warstwie fulfilment, a Woo trzyma stan przez synchronizację. Hold stock przy płatności przelewem B2B ustawia się dłużej niż przy MobilePay: przelew z banku potrafi iść do następnego dnia roboczego.
Tabele wp_wc_orders i tryb zgodności
High-Performance Order Storage jest domyślny dla nowych instalacji od WooCommerce 8.2. Zamówienia żyją wtedy w wp_wc_orders, wp_wc_order_addresses, wp_wc_order_operational_data i wp_wc_orders_meta, a nie jako wpisy shop_order w wp_posts. Sklepy postawione wcześniej przełączają się świadomie: najpierw tryb zgodności, potem HPOS jako magazyn autorytatywny, na końcu wyłączenie dual-write gdy raporty i wtyczki przestaną się rozjeżdżać.
Diagnostyka i raporty idą przez wc_get_orders oraz OrderUtil, nie przez SQL w wp_posts. Wtyczka, która w 2026 nadal szuka zamówień wyłącznie w postmeta, na HPOS pokazuje puste listy i gubi zwroty. Oficjalne Stripe, PayPal, MobilePay, PostNord i GLS są na HPOS od dawna. Problemem są stare konektory magazynowe i autorskie crony.
GDPR, Datatilsynet i formularze w duńskim kontekście
Dania stosuje rozporządzenie UE 2016/679 (GDPR) wraz z krajową ustawą Databeskyttelsesloven, nadzorowaną przez Datatilsynet (duński organ ochrony danych osobowych). Dla sklepu WooCommerce w Kopenhadze to nie jest abstrakcyjny paragraf prawny. To decyzje w formularzach, w wtyczkach consent, w polityce prywatności i w logach audytowych.
Co wpisujemy w brief i w kod:
- Formularze zbierające dane osobowe (konto klienta, newsletter, zapytania B2B, checkout z zapisem do konta) dostają jawną podstawę prawną, checkbox zgody tam, gdzie consent jest wymagany, i minimalizację pól. Pola, których nie potrzebujesz do celu formularza, nie istnieją.
- Wtyczki consent (Cookie Information, Cookiebot, popularne w Danii) konfigurujemy tak, żeby skrypty marketingowe nie ładowały się przed akceptacją. Wytyczne Datatilsynet wymagają świadomej zgody przed nieistotnymi plikami cookie. To jest decyzja w motywie i w kolejności enqueue, nie ticket opieki po pierwszym raporcie organu nadzorczego.
- Polityka prywatności i cookie policy są szablonami z polami, nie blokami, które redaktor może usunąć z drzewa. W Kopenhadze te strony są elementem compliance, nie stopką marketingową. Numer CVR w stopce zgodnie z duńską praktyką identyfikacji podmiotu gospodarczego.
- Integracje z CRM (HubSpot, Salesforce, Pipedrive) dostają dokumentację przepływu danych: co trafia do systemu zewnętrznego, jak długo, kto jest administratorem. Umowy powierzenia przetwarzania to decyzja klienta, ale konfiguracja Woo musi umożliwiać realizację tej decyzji.
- Logi audytowe dla formularzy i zmian w panelu admina pomagają przy incydentach. Jeśli ktoś pyta kto zmienił ustawienia formularza checkout w piątek przed TechBBQ, odpowiedź nie może być nie wiemy.
Zespół nie obiecuje zgodności z GDPR bez właściciela procesu po stronie klienta. Nie składa raportu do Datatilsynet za klienta. Obiecuje konfigurację techniczną, którą właściciel może opisać w dokumentacji i włożyć do zgłoszenia naruszenia w 72 godziny, gdy procedura tego wymaga. Datatilsynet publikuje wytyczne i narzędzia audytowe na datatilsynet.dk; runbook checkoutu powinien być z nimi zgodny co do tego, co agencja dokumentuje, a co zostaje po stronie administratora danych.
Hosting w UE
Dane osobowe pod GDPR ciągną pytanie: w której jurysdykcji stoi serwer. AWS w Sztokholmie (eu-north-1), Hetzner w Falkenstein (Niemcy), Scaleway we Francji albo hosting u duńskiego providera to różne odpowiedzi dla compliance officer, ale wszystkie mieszczą się w UE albo EOG. Ashburn albo Hillsboro to Stany i zwykle veto bez Standard Contractual Clauses albo innej podstawy transferu.
Pytanie czy hosting jest w Kopenhadze wraca rzadziej niż czy w UE. Odpowiedź operacyjna jest dwuczęściowa. Jurysdykcja: UE, kopia nie wyjeżdża nocą na bucket w regionie US bez uzgodnienia. Latencja: origin w aglomeracji stołecznej albo Sztokholm plus CDN z terminałem TLS w UE zwykle wystarcza dla użytkowników Danii i w Europie Północnej.
Zwroty i prawo konsumenckie jako operacje sklepu
Poniższe akapity opisują skutki w sklepie. Nie są poradą prawną. Teksty terms and conditions, privacy policy i polityki zwrotów zatwierdza kancelaria albo odpowiedzialny w firmie. Zadaniem Woo jest spiąć ten tekst z koszykiem, z przyciskiem, z mailem i z magazynem.
Konsument w Danii ma prawo odstąpić od umowy zawartej na odległość w ciągu 14 dni na podstawie duńskiej implementacji dyrektywy konsumenckiej. Termin zaczyna biec, gdy klient otrzymał towar. Dla magazynu w Nordhavn to nie ciekawostka prawna. To SKU, którego nie wolno sprzedać drugi raz, bo może wrócić za trzy kwartały.
Ścieżka operacyjna, którą budujemy:
- Klient składa zwrot z numerem zamówienia albo danymi, które pozwalają je znaleźć w
wp_wc_orders. - Sklep ustawia status RMA, wysyła potwierdzenie i etykietę zwrotną PostNord albo instrukcję nadania GLS.
- Przyjęcie na magazynie zdejmuje blokadę SKU i dopiero wtedy idzie
wc_create_refundna Stripe, MobilePay, PayPal albo przelew zwrotny przy przelewie B2B. - Częściowy zwrot (jedna pozycja z trzech) nie zamyka całego zamówienia i nie zwraca kosztów wysyłki w ciemno; kwoty bierze się z pozycji, nie z ręcznego zwróć wszystko.
- Towar wyłączony ze zwrotu (higiena, personalizacja, treść cyfrowa po rozpoczęciu) musi mieć tę informację przy SKU przed zakupem.
Sezon po świętach i po TechBBQ to test tej ścieżki. Sklep, który w listopadzie ręcznie klika zwroty w panelu MobilePay, a stany poprawia w Excelu, rozjeżdża raport moms i nadsprzedaje wracający towar.
Katalog i checkout pod kalendarz TechBBQ
TechBBQ to jedna z największych konferencji startupowych w Europie Północnej, odbywająca się co roku w Kopenhadze. W tygodniu konferencji setki firm green tech, fintech i B2B patrzą na landingi produktowe, formularze zapisu na spotkania, integracje z systemami CRM i treści wielojęzyczne DA/EN. W tych oknach ruch na stronie rośnie wielokrotnie, newslettery idą w setkach tysięcy, a każda zmiana na produkcji jest ryzykiem. Dlatego w runbooku zapisujemy freeze wdrożeń: w tygodniu TechBBQ nie idą aktualizacje wtyczek, nie idą nowe bloki, nie idą zmiany w motywie. środowisko testowe dostaje zmiany, produkcja czeka do kilku dni po szczycie.
Katalog, który przez jedenaście miesięcy ma osiemset pozycji, przed konferencją dostaje warstwę limitowanych zestawów, cen obowiązujących do wyczerpania zapasu i wariantów, których nie ma w stałej ofercie. Woo musi to udźwignąć bez zgonu strony kategorii.
Nowa architektura checkoutu, przełączenie HPOS albo zmiana mapy stref PostNord i GLS nie wchodzi na produkcję w oknie konferencyjnym. Tydzień przed TechBBQ produkcja nie dostaje drobnej aktualizacji SEO. Drobna aktualizacja SEO w piątek przed szczytem potrafi nadpisać robots, wyciąć landing merchu z indeksu albo zepsuć cache strony promocyjnej.
Warianty trzymamy jako prawdziwe variation z własnym SKU, wagą i klasą podatkową, nie jako pole tekstowe wpisz kolor. Duża macierz (rozmiar × kolor × materiał przy merchu eventowym) dostaje własne zapytania i cache fragmentów.
Preorder przed premierą produktu: SKU jest widoczny, płatność schodzi, ale fulfillment stoi aż do daty. Status on-hold albo własny status warte na magazyn musi blokować etykietę kuriera. Inaczej wtyczka GLS nada pustą paczkę pod punkt odbioru przy Bloxhub.
Ceny netto / brutto na checkoucie B2B (netto plus moms) i B2C (brutto) to dwa szablony, nie przełącznik CSS. Kupujący z CVR w Kopenhadze oczekuje netto. Konsument z aglomeracji oczekuje brutto.
Kopenhaga jako kontekst rynkowy, nie jako ozdobnik
Bloxhub przy Refshaleøen to hub dla startupów i firm green tech w Kopenhadze. Tu siedzą zespoły pracujące nad energią odnawialną, cyrkularną gospodarką i rozwiązaniami klimatycznymi. Sklep WooCommerce często obsługuje merch eventowy, katalog produktów B2B albo subskrypcję materiałów technicznych. Awaria checkoutu w tygodniu TechBBQ to nie problem marketingu. To problem compliance i często temat dla działu prawnego, który pyta o hosting w UE i zgodność z duńskim GDPR.
Ørestad i Nordhavn to dwa różne profile klientów Kopenhadze. W Ørestad dominują firmy technologiczne i green tech z nowoczesnymi biurami i międzynarodowymi zespołami. W Nordhavn siedzą korporacje, agencje i firmy B2B z długim cyklem sprzedaży. Oba sektory mają wspólny problem: skoki ruchu i presja compliance, która nie wybacza awarii w szczycie.
Agencje designu z Nørrebro i Frederiksberg mają inny profil niż green tech z Ørestad. Więcej treści wizualnych, więcej materiałów multimedialnych, więcej pytań o dostępność i mniej o integrację z systemem magazynowym. WooCommerce w tym środowisku to sklep z produktami designerskimi, kalendarz wydarzeń albo strona studia, która zbiera zapytania B2B i musi respektować GDPR w formularzach.
Typowy brief, który trafia do seniorów Kopenhadze, nie brzmi zróbcie ładny sklep. Brzmi: odziedziczony Woo z trzydziestoma wtyczkami, checkout który gubi webhook MobilePay, magazyn w Ørestad synchronizowany ręcznie z Excela, księgowość czeka na eksport do E-conomic, a za tydzień startuje TechBBQ. To jest problem checkoutu, webhooków i HPOS, nie problem szablonu z marketplace.
Subskrypcje, B2B i WooCommerce Blocks
WooCommerce Subscriptions w Kopenhadze spotykamy przy boxach D2C, subskrypcjach produktów cyfrowych albo abonamentach B2B z rozliczeniem cyklicznym przez Stripe. Subskrypcja wymaga osobnego runbooku: retry płatności, grace period, anulowanie, upgrade planu, synchronizacja z CRM. Webhook invoice.payment_failed od Stripe musi trafić do Woo i zmienić status subskrypcji, nie tylko wysłać maila.
B2B w Kopenhadze to ceny według ról, minimalne wielkości zamówień, procesy zapytań ofertowych i dedykowane portale do zarządzania kontami klientów biznesowych. WooCommerce B2B albo własna warstwa ról musi współgrać z CVR i płatnością przelewem. Portal B2B, który pokazuje ceny netto bez walidacji roli, to wyciek cennika hurtowego na front publiczny.
WooCommerce Blocks Checkout ma sens, gdy checkout ma być lekki i nie ciągnąć całego page buildera. Bloki checkoutu renderują się serwerowo tam, gdzie to możliwe. Skrypty Stripe, MobilePay i GLS Location Finder ładujemy wtedy, gdy checkout jest na ekranie, z preconnect do ich domen, nie w stopce każdej strony kategorii.
Wydajność koszyka i checkoutu
Checkout jest dynamiczny. Pełny page cache na cart i checkout serwuje cudzy koszyk albo pusty fragment mini-cart. Warstwa cache (Redis, Cloudflare) omija te ścieżki albo stosuje segmentację. Fragmenty mini-cart liczymy osobno.
Obrazy katalogu idą w AVIF / WebP z srcset. Kampanie eventowe generują ciężkie JPEG ze stoiska; bez przetwarzania LCP na karcie produktu spada, zanim kupujący zobaczy przycisk MobilePay. Query Monitor na stagingu pokazuje, czy wtyczka kuriera i bramka nie dokładają po N zapytań na każdy request koszyka.
Pomiar: Lighthouse i dane terenowe na URL produktu, kategorii i checkoutu, przed i po. TechBBQ to test infrastruktury, nie średnia z kwartału. Monitoring z jednego regionu USA kłamie, gdy goście stoją w kolejce przy wejściu na konferencję. Punkt pomiaru w UE jest częścią kryteriów odbioru.
Core Web Vitals są czynnikiem rankingowym Google i jednocześnie czynnikiem konwersji na stronie, która zbiera zamówienia w szczycie kampanii. Nie obiecujemy konkretnej delty procentowej przed audytem, bo skala poprawy zależy od stanu wejściowego konkretnej instalacji. Budżety wydajnościowe ustalamy na starcie projektu i weryfikujemy je na danych terenowych z raportu CrUX, nie tylko w pomiarze laboratoryjnym.
Zakres prac, QA i przekazanie
Audyt na wejściu obejmuje: taksonomię i klasy podatkowe moms, kolejność metod płatności Stripe, MobilePay i PayPal, strefy PostNord i GLS, HPOS i listę wtyczek czytających zamówienia, webhooki, hold stock, ścieżkę zwrotu, eksport do E-conomic albo systemu księgowego, baseline Lighthouse, kalendarz TechBBQ w harmonogramie wydań, konfigurację GDPR, cookie consent pod Datatilsynet. Na tym etapie zapada, co jest źródłem stanu, podatku i numeru dokumentu.
Implementacja idzie gałęziami funkcyjnymi. Każda bramka ma scenariusz sandbox: Stripe test mode, PayPal sandbox, MobilePay test environment, Apple Pay w środowisku testowym. PostNord i GLS mają środowiska testowe etykiet. QA kończy się zamówieniem, które przechodzi: koszyk mieszany ze stawkami moms, punkt GLS, webhook, notatka w zamówieniu, etykieta, mail, a potem zwrot częściowy na tę samą bramkę.
Przekazanie to runbook bramek, mapa stref, opis zwrotu po stronie sklepu, instrukcja eksportu księgowego i zapis decyzji HPOS. Wycena jest indywidualna i na piśmie przed startem. Zmiany zakresu omawiamy z konsekwencją dla terminu. Nie publikujemy cennika SKU na tej stronie.
Kiedy ta strona, a kiedy opieka albo programista WordPress
Ta strona zostaje przy sklepie: katalog, checkout, płatność, dostawa, stan, dokument, zwrot. Motyw bloga, Gutenberg, intranet albo strona korporacyjna centrali w Nordhavn nie są tutaj tematem - to programista WordPress w Kopenhadze. Monitoring, aktualizacje rdzenia i kopie zapasowe bez przebudowy checkoutu to opieka techniczna WordPress w Kopenhadze. Szerszy opis utrzymania bez miasta: utrzymanie stron WordPress. Wspólny filar e-commerce: programista WooCommerce.
Bloxhub, Ørestad i TechBBQ tłumaczą, skąd biorą się sklepy B2B z CVR i płatnością przelewem. Nie tłumaczą, czemu webhook MobilePay bez idempotencji zostawia zamówienie w pending po konferencji.
Rozpocznij projekt sklepu WooCommerce w Kopenhadze
Do kontaktu wystarczy krótki opis: czy sklep już stoi, jakie bramki są włączone (Stripe, MobilePay, PayPal), skąd leci dostawa (PostNord, GLS, odbiór w aglomeracji), czy HPOS jest włączony, jaki jest magazyn (Ørestad, 3PL, centrala w Nordhavn), czy księgowość czeka na eksport do E-conomic, czy cookie consent blokuje tagi przed zgodą, i które daty TechBBQ blokują wydanie. Na tej podstawie widać, czy potrzebna jest przebudowa checkoutu, czy zestawienie webhooków i stanów.
WPPoland pracuje przy WooCommerce od strony zamówienia, nie od strony slajdu. Kopenhaga dostaje ten sam rygor inżynierski co każdy inny sklep, tylko ze stackiem, którego kupujący w Danii naprawdę używa, i z kalendarzem TechBBQ wpisanym w harmonogram wydań.
Społeczność WordPress w Kopenhadze
Współorganizujemy WordCamp Gdynia od 2015 i pracujemy w zespole organizacyjnym WordCamp Europe od 2024. To, czego uczymy się na tych wydarzeniach, wraca do kodu, który piszemy dla klientów.
Projekty WooCommerce zrealizowane w Kopenhadze i Dania
Zobacz wybrane realizacje, które wspierają biznes naszych klientów.
zafriko.pl - Projekt WordPress | WPPoland
Zafriko.pl to projekt w moim portfolio programisty WordPress, który rozwijałem jako platformę społeczności...
Airhelp - Projekt WordPress | WPPoland
AirHelp powstało w 2013 roku jako start-up, by stać się globalnym liderem w obronie praw pasażerów lotniczych, pomagając ponad 13 milionom osób zrozumieć ich...
alextg.pl - Projekt WordPress | WPPoland
Witaj na alextg.pl, stronie, która jest dowodem na to, jak WordPress może wspierać firmy pomagające klientom w uzyskaniu finansowania. Jako programista Word...
Wsparcie techniczne WordPress w Kopenhadze
Przewodniki metodyczne (SEO, GEO, compliance)
Te materiały opisują, jak pracujemy nad cytowaniami w modelach językowych, modernizacją WooCommerce B2B oraz odpornością operacyjną pod NIS2 i przetargi - niezależnie od miasta realizacji.
Zobacz też w innych miastach Dania
Co wyróżnia w Kopenhadze
Lokalna ekspertyza: - Checkout WooCommerce w Kopenhadze w DKK i EUR przez Stripe, MobilePay, Dankort i PayPal z 3DS i webhookami - Strefy dostaw PostNord, GLS i DAO z punktami odbioru w aglomeracji stołecznej - HPOS w tabelach wp_wc_orders, rezerwacja stanu i idempotencja webhooków płatności Nasz zespół rozumie specyfikę rynku w Kopenhadze i dostosowuje rozwiązania do lokalnych potrzeb biznesowych. Największą przewagą jest połączenie technicznej jakości z lokalnym kontekstem biznesowym Kopenhadze.
Potrzebujesz usługi: Programista WooCommerce w Kopenhadze?
Porozmawiajmy o tym, jak możemy wprowadzić Twoją stronę na wyższy poziom wydajności.
Umów bezpłatną konsultację w KopenhadzeFAQ - Programista WooCommerce w Kopenhadze
Czego zwykle dotyczy brief z Kopenhadze?
Zlecenia idą przede wszystkim od: Design i green tech. Skalowalna architektura, wysoki poziom bezpieczeństwa oraz integracje z systemami enterprise dopasowane do wymagań lokalnego rynku. Lista odbioru dla rynku Dania obejmuje GDPR, NIS2 oraz EAA. Nic z tego nie dotyczy wyłącznie Kopenhadze, obowiązuje na całym rynku, ale wpisane w zakres kosztuje mniej niż dokładane po starcie.
Gdzie w Kopenhadze spotyka się środowisko webowe?
Lokalny meetup to WordPress Copenhagen, strona grupy: https://www.meetup.com/Copenhagen-WordPress-Meetup/. Zapytaj tam, zanim podpiszesz cokolwiek, ze mną też. Sala ludzi, którzy już kogoś lokalnie zatrudnili, weryfikuje szybciej niż jakiekolwiek portfolio.
Jak wygląda długoterminowe utrzymanie i przekazanie?
Żyjąca dokumentacja dla managerów sklepu, redaktorów i programistów; runbook dla każdej bramki i każdej nietrywialnej integracji; pisemny zapis decyzji architektonicznych; sesja przekazania na koniec zlecenia. Sklep może trafić do zespołu klienta albo na opcjonalną opiekę z tą samą dokumentacją. Aktualizacje checkoutu w oknie TechBBQ opisuje osobna strona opieki.
Technologie i Specjalizacje - w Kopenhadze
Specjalizujemy się w:
Wspominamy o:
Sprawdź inne usługi WordPress i bazę wiedzy
Wzmocnij swój biznes dzięki profesjonalnemu wsparciu technicznemu w kluczowych obszarach ekosystemu WordPress.
Sklepy, checkout i logika sprzedażowa.
Awaria sklepu, wolny checkout, chaos po aktualizacji.
Opieka, monitoring i przewidywalna dostępność WooCommerce.
Checklisty UE dla sklepu: VAT, dostępność, dowody zgodności.
White-label development WordPress dla agencji.
Synchronizacja WooCommerce z ERP i hurtownią.
Powiązane kategorie
Artykuły wspierające temat

Architektura sklepu WooCommerce na Astro 7. Co zostaje w wp-admin, które wtyczki umierają z motywem, Store API kontra GraphQL i dlaczego kasy nie odpinasz od WooCommerce.

Decyzja Shopify Plus vs WooCommerce headless w 2026 nie jest już binarnym wyborem "platforma vs custom". Obie platformy działają w trybie headless, obie integrują AI, obie renderują na edge. Realne osie to kontrola, koszt całkowity przez pięć lat oraz strategia wyjścia. Ten artykuł przechodzi przez macierz decyzyjną z potwierdzonymi faktami platformowymi.

Kiedy migrować z Magento Adobe Commerce do WooCommerce headless w 2026: kryteria, ścieżka techniczna i typowe błędy polskiego handlu.