{"id":13968,"date":"2026-09-30T18:26:05","date_gmt":"2026-09-30T14:26:05","guid":{"rendered":"https:\/\/monodigital.solutions\/?post_type=work&#038;p=13968"},"modified":"2026-09-30T18:26:07","modified_gmt":"2026-09-30T14:26:07","slug":"migracja-z-cakephp-do-wordpressa-cargobus","status":"publish","type":"work","link":"https:\/\/monodigital.solutions\/pl\/work\/migracja-z-cakephp-do-wordpressa-cargobus\/","title":{"rendered":"Cargobus.ee \u2014 migracja systemu i integracja API"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Cargobus mia\u0142 ju\u017c dzia\u0142aj\u0105c\u0105 platform\u0119 cyfrow\u0105, ale oparta na CakePHP konfiguracja utrudnia\u0142a rutynowe zmiany tre\u015bci i zarz\u0105dzanie przysz\u0142ymi integracjami. Projekt koncentrowa\u0142 si\u0119 wi\u0119c na zmianie podstawy technicznej bez naruszania znanej dotychczasowym u\u017cytkownikom struktury po stronie klienta. Rozwi\u0105zaniem by\u0142a migracja z CakePHP do WordPressa. <\/p>\n\n<p class=\"wp-block-paragraph\">Mono przebudowa\u0142o witryn\u0119 na WordPressie, zachowa\u0142o ustalone wzorce stron i interakcji, a nast\u0119pnie po\u0142\u0105czy\u0142o now\u0105 platform\u0119 z API City Carrier, aby funkcje dotycz\u0105ce przesy\u0142ek dzia\u0142a\u0142y przez witryn\u0119 zamiast jako odizolowane procesy zaplecza.<\/p>\n\n<h2 class=\"wp-block-heading\">Wyzwanie<\/h2>\n\n<p class=\"wp-block-paragraph\">Istniej\u0105cy system CakePHP obs\u0142ugiwa\u0142 podstawowe funkcje witryny, lecz typowe aktualizacje by\u0142y mocno zale\u017cne od prac programistycznych. Ogranicza\u0142o to mo\u017cliwo\u015b\u0107 samodzielnego zarz\u0105dzania stronami przez zesp\u00f3\u0142 marketingowy i komplikowa\u0142o dalsz\u0105 rozbudow\u0119. <\/p>\n\n<p class=\"wp-block-paragraph\">Wymaganiem nie by\u0142a zmiana wygl\u0105du. Cargobus potrzebowa\u0142 mo\u017cliwie wiernego odtworzenia istniej\u0105cego \u015brodowiska na \u0142atwiejszej w zarz\u0105dzaniu platformie, przy zachowaniu znanych \u015bcie\u017cek u\u017cytkownika i stworzeniu przestrzeni dla g\u0142\u0119bszych integracji operacyjnych. <\/p>\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"532\" src=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-old-hero-1024x532.webp\" alt=\"Stary interfejs witryny Cargobus oparty na systemie CakePHP przed migracj&#x105;\" class=\"wp-image-6508\" srcset=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-old-hero-1024x532.webp 1024w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-old-hero-300x156.webp 300w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-old-hero-768x399.webp 768w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-old-hero-1536x798.webp 1536w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-old-hero.webp 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Pierwotna witryna oparta na CakePHP przed migracj\u0105 do skalowalnego systemu<\/figcaption><\/figure>\n\n<h2 class=\"wp-block-heading\">Kontrolowana migracja z CakePHP do WordPressa<\/h2>\n\n<p class=\"wp-block-paragraph\">Pierwszym etapem by\u0142a kontrolowana migracja z CakePHP do WordPressa. Struktur\u0119 frontendu przebudowano z du\u017c\u0105 dok\u0142adno\u015bci\u0105 wizualn\u0105, aby po zmianie platformy klienci nadal korzystali ze znanego interfejsu. <\/p>\n\n<p class=\"wp-block-paragraph\">WordPress zapewni\u0142 wewn\u0119trznemu zespo\u0142owi praktyczniejsz\u0105 warstw\u0119 zarz\u0105dzania tre\u015bci\u0105, zachowuj\u0105c struktur\u0119 potrzebn\u0105 w dotychczasowej \u015bcie\u017cce obs\u0142ugi. Migracj\u0119 potraktowano jako zmian\u0119 fundamentu, a nie projekt przeobra\u017cenia wygl\u0105du. <\/p>\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"507\" src=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-new-hero-2-1024x507.webp\" alt=\"Nowy interfejs witryny Cargobus na WordPressie po migracji systemu\" class=\"wp-image-6511\" srcset=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-new-hero-2-1024x507.webp 1024w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-new-hero-2-300x149.webp 300w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-new-hero-2-768x380.webp 768w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-new-hero-2-1536x761.webp 1536w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Cargobus-new-hero-2.webp 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Interfejs przebudowany na WordPressie, zachowuj\u0105cy struktur\u0119 i oferuj\u0105cy wi\u0119ksz\u0105 elastyczno\u015b\u0107<\/figcaption><\/figure>\n\n<h2 class=\"wp-block-heading\">Po\u0142\u0105czenie witryny z operacjami logistycznymi<\/h2>\n\n<p class=\"wp-block-paragraph\">Po uruchomieniu podstawy WordPress projekt wykroczy\u0142 poza zarz\u0105dzanie tre\u015bci\u0105. Integracja API City Carrier po\u0142\u0105czy\u0142a witryn\u0119 z operacjami dotycz\u0105cymi przesy\u0142ek i aktualnymi danymi dostaw. <\/p>\n\n<p class=\"wp-block-paragraph\">Integracja obs\u0142ugiwa\u0142a procesy tworzenia przesy\u0142ek i synchronizacj\u0119 danych na poziomie zam\u00f3wie\u0144. Ka\u017cdy status przesy\u0142ki oraz \u015bledzenie w czasie rzeczywistym opiera\u0142y si\u0119 na aktualnych danych. Dzi\u0119ki temu publiczna witryna mog\u0142a dzia\u0142a\u0107 jako operacyjny interfejs klienta, a nie tylko prezentowa\u0107 statyczne informacje o us\u0142ugach. <\/p>\n\n<h2 class=\"wp-block-heading\">\u015aledzenie przesy\u0142ek<\/h2>\n\n<h3 class=\"wp-block-heading\">Wyszukiwanie i wskaz\u00f3wki<\/h3>\n\n<p class=\"wp-block-paragraph\">Klienci mog\u0105 rozpocz\u0105\u0107 \u015bledzenie, podaj\u0105c numer przesy\u0142ki lub zam\u00f3wienia. Interfejs wej\u015bciowy koncentruje zadanie na informacjach potrzebnych do zlokalizowania dostawy. <\/p>\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Entry-Screen-1024x300.webp\" alt=\"Interfejs wyszukiwania przesy&#x142;ki Cargobus z polem numeru zam&#xF3;wienia\" class=\"wp-image-6514\" srcset=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Entry-Screen-1024x300.webp 1024w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Entry-Screen-300x88.webp 300w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Entry-Screen-768x225.webp 768w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Entry-Screen-1536x451.webp 1536w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Entry-Screen.webp 1629w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Pocz\u0105tkowy ekran \u015bledzenia, na kt\u00f3rym u\u017cytkownicy wpisuj\u0105 numer przesy\u0142ki lub zam\u00f3wienia<\/figcaption><\/figure>\n\n<p class=\"wp-block-paragraph\">Pomoc kontekstowa pokazuje u\u017cytkownikom, gdzie znajduj\u0105 si\u0119 odpowiednie numery zam\u00f3wienia i przesy\u0142ki. Wskaz\u00f3wk\u0119 wbudowano bezpo\u015brednio w proces \u015bledzenia, dzi\u0119ki czemu cz\u0119st\u0105 w\u0105tpliwo\u015b\u0107 mo\u017cna wyja\u015bni\u0107 bez opuszczania interfejsu. <\/p>\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"569\" src=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Where-can-I-find-it-modal-1024x569.webp\" alt=\"Okno pomocy w &#x15B;ledzeniu przesy&#x142;ki pokazuj&#x105;ce po&#x142;o&#x17C;enie kodu kreskowego i numeru zam&#xF3;wienia\" class=\"wp-image-6516\" srcset=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Where-can-I-find-it-modal-1024x569.webp 1024w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Where-can-I-find-it-modal-300x167.webp 300w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Where-can-I-find-it-modal-768x427.webp 768w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Where-can-I-find-it-modal-1536x854.webp 1536w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Where-can-I-find-it-modal.webp 1643w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Wbudowana wskaz\u00f3wka pokazuj\u0105ca, gdzie znale\u017a\u0107 numer przesy\u0142ki lub zam\u00f3wienia<\/figcaption><\/figure>\n\n<h3 class=\"wp-block-heading\">Przebieg aktywnej dostawy<\/h3>\n\n<p class=\"wp-block-paragraph\">W przypadku dostaw b\u0119d\u0105cych w toku dane w czasie rzeczywistym z API s\u0105 prezentowane jako uporz\u0105dkowana o\u015b czasu. Interfejs mo\u017ce pokazywa\u0107 takie etapy jak przypisanie kuriera, odbi\u00f3r, aktualizacje z sortowni, transport i dotarcie do miejsca przeznaczenia. <\/p>\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"545\" src=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/In-Process-Order-1024x545.webp\" alt=\"O&#x15B; czasu aktywnej dostawy w interfejsie statusu przesy&#x142;ki\" class=\"wp-image-6515\" srcset=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/In-Process-Order-1024x545.webp 1024w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/In-Process-Order-300x160.webp 300w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/In-Process-Order-768x409.webp 768w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/In-Process-Order-1536x818.webp 1536w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/In-Process-Order.webp 1644w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">O\u015b czasu pokazuj\u0105ca w uporz\u0105dkowany spos\u00f3b bie\u017c\u0105cy przebieg dostawy<\/figcaption><\/figure>\n\n<h3 class=\"wp-block-heading\">Zako\u0144czone dostawy<\/h3>\n\n<p class=\"wp-block-paragraph\">Dostarczone przesy\u0142ki s\u0105 oddzielone od aktywnych, co pozwala klientom prze\u0142\u0105cza\u0107 si\u0119 mi\u0119dzy dostawami bie\u017c\u0105cymi i zako\u0144czonymi bez \u0142\u0105czenia obu widok\u00f3w.<\/p>\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"570\" src=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Completed-Order-1024x570.webp\" alt=\"Widok dostarczonych przesy&#x142;ek i zako&#x144;czonych zam&#xF3;wie&#x144; w systemie &#x15B;ledzenia\" class=\"wp-image-6513\" srcset=\"https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Completed-Order-1024x570.webp 1024w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Completed-Order-300x167.webp 300w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Completed-Order-768x428.webp 768w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Completed-Order-1536x856.webp 1536w, https:\/\/monodigital.solutions\/wp-content\/uploads\/2026\/04\/Completed-Order.webp 1648w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Zako\u0144czone dostawy wy\u015bwietlane osobno dla wi\u0119kszej przejrzysto\u015bci<\/figcaption><\/figure>\n\n<h2 class=\"wp-block-heading\">Priorytety wdro\u017cenia<\/h2>\n\n<p class=\"wp-block-paragraph\">Na wdro\u017cenie wp\u0142ywa\u0142o kilka ogranicze\u0144.<\/p>\n\n<p class=\"wp-block-paragraph\">Istniej\u0105ca struktura i \u015bcie\u017cka u\u017cytkownika musia\u0142y pozosta\u0107 rozpoznawalne. Nowe zaplecze WordPress mia\u0142o zapewni\u0107 wewn\u0119trznemu zespo\u0142owi wi\u0119ksz\u0105 kontrol\u0119 nad rutynowymi aktualizacjami tre\u015bci. Funkcje po\u0142\u0105czone z API musia\u0142y dzia\u0142a\u0107 w tym samym \u015brodowisku klienta, a informacje o przesy\u0142kach pozosta\u0107 powi\u0105zane z bie\u017c\u0105cymi danymi operacyjnymi, zamiast by\u0107 powielane jako statyczna tre\u015b\u0107 witryny.  <\/p>\n\n<p class=\"wp-block-paragraph\">Te wymagania sprawi\u0142y, \u017ce projekt dotyczy\u0142 migracji i integracji, a nie konwencjonalnego przeprojektowania strony. Powsta\u0142a platforma logistyczna zachowuj\u0105ca dotychczasowe wzorce obs\u0142ugi, a migracja z CakePHP do WordPressa nie zmieni\u0142a znanego klientom \u015brodowiska.<\/p>\n\n<h2 class=\"wp-block-heading\">Rezultat<\/h2>\n\n<p class=\"wp-block-paragraph\">Uko\u0144czona platforma przenios\u0142a Cargobus z mniej elastycznej konfiguracji CakePHP na edytowaln\u0105 podstaw\u0119 WordPress po\u0142\u0105czon\u0105 bezpo\u015brednio z procesami logistycznymi.<\/p>\n\n<p class=\"wp-block-paragraph\">Zesp\u00f3\u0142 marketingowy zyska\u0142 \u0142atwiejsze w zarz\u0105dzaniu \u015brodowisko tre\u015bci, a klienci zachowali znan\u0105 struktur\u0119 witryny i uzyskali dost\u0119p do bie\u017c\u0105cych funkcji tworzenia oraz \u015bledzenia przesy\u0142ek w tym samym interfejsie. Architektura stworzy\u0142a te\u017c czytelniejsz\u0105 podstaw\u0119 do dodawania przysz\u0142ych funkcji i integracji bez przebudowy ca\u0142ej platformy. <\/p>\n\n<p class=\"wp-block-paragraph\">Faktyczna podstawa od\u015bwie\u017conego artyku\u0142u \u2014 obejmuj\u0105ca migracj\u0119 z CakePHP do WordPressa, przebudow\u0119 na WordPressie, integracj\u0119 API City Carrier, \u015bledzenie na \u017cywo i wynikaj\u0105ce z nich funkcje operacyjne \u2014 zosta\u0142a udokumentowana bezpo\u015brednio w istniej\u0105cym studium przypadku.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cargobus przeszed\u0142 z CakePHP na edytowaln\u0105 platform\u0119 WordPress z integracj\u0105 API City Carrier do tworzenia przesy\u0142ek, \u015bledzenia na \u017cywo i obs\u0142ugi status\u00f3w dostawy.<\/p>\n","protected":false},"featured_media":13962,"template":"","meta":{"footnotes":""},"work_type":[183],"industry":[192],"class_list":["post-13968","work","type-work","status-publish","has-post-thumbnail","hentry","work_type-budowa-systemow","industry-logistyka-dostawa-przesylek"],"_links":{"self":[{"href":"https:\/\/monodigital.solutions\/pl\/wp-json\/wp\/v2\/work\/13968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodigital.solutions\/pl\/wp-json\/wp\/v2\/work"}],"about":[{"href":"https:\/\/monodigital.solutions\/pl\/wp-json\/wp\/v2\/types\/work"}],"version-history":[{"count":0,"href":"https:\/\/monodigital.solutions\/pl\/wp-json\/wp\/v2\/work\/13968\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/monodigital.solutions\/pl\/wp-json\/wp\/v2\/media\/13962"}],"wp:attachment":[{"href":"https:\/\/monodigital.solutions\/pl\/wp-json\/wp\/v2\/media?parent=13968"}],"wp:term":[{"taxonomy":"work_type","embeddable":true,"href":"https:\/\/monodigital.solutions\/pl\/wp-json\/wp\/v2\/work_type?post=13968"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/monodigital.solutions\/pl\/wp-json\/wp\/v2\/industry?post=13968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}