{"id":11378,"date":"2021-08-25T13:20:09","date_gmt":"2021-08-25T11:20:09","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=11378"},"modified":"2023-06-14T08:49:23","modified_gmt":"2023-06-14T06:49:23","slug":"case-study-urbanista-jak-w-krotkim-czasie-programisci-sii-zrealizowali-migracje-do-magento-2-4-2","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/case-study-urbanista-jak-w-krotkim-czasie-programisci-sii-zrealizowali-migracje-do-magento-2-4-2\/","title":{"rendered":"Case Study Urbanista \u2013 jak w kr\u00f3tkim czasie programi\u015bci Sii zrealizowali migracj\u0119 do Magento 2.4.2"},"content":{"rendered":"\n<p>Jak szybko mo\u017cna dokona\u0107 aktualizacji systemu Magento 2 do jego najnowszej wersji? Czy to skomplikowany proces? Z takimi pytaniami do ekspert\u00f3w z Sii zwraca si\u0119 wiele firm. <\/p>\n\n\n\n<p>Zapraszam do zapoznania si\u0119 z poni\u017cszym case study, w kt\u00f3rym, na przyk\u0142adzie wsp\u00f3\u0142pracy z mark\u0105 Urbanista, na nie odpowiadam.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wprowadzenie<\/h2>\n\n\n\n<p>Urbanista to marka stworzona w 2010 roku w Sztokholmie. Jest cz\u0119\u015bci\u0105 Stax Limited&nbsp;\u2013 japo\u0144skiego przedsi\u0119biorstwa, produkuj\u0105cego wysokiej klasy s\u0142uchawki elektrostatyczne oraz dopasowane akcesoria, np. wzmacniacze. W swoim asortymencie Urbanista oferuje produkty audio z aktywn\u0105 redukcj\u0105 szum\u00f3w, stworzone z \u201emi\u0142o\u015bci do muzyki\u201d i z my\u015bl\u0105 o \u017cyciu w ruchu.<\/p>\n\n\n\n<p>Nasz zesp\u00f3\u0142 e-commerce zaproponowa\u0142 marce <strong>aktualizacj\u0119 systemu Magento do wersji 2.4.2.<\/strong> Taka zmiana niesie ze sob\u0105 szereg usprawnie\u0144 \u2013 zar\u00f3wno biznesowych (m.in. popraw\u0119 bezpiecze\u0144stwa, ochron\u0119 danych u\u017cytkownik\u00f3w), jak i technicznych (np. ulepszenia infrastruktury dla modu\u0142\u00f3w). Ponadto, Magento 2.4.2 zwi\u0119ksza <strong>stabilno\u015b\u0107 strony e-commerce<\/strong>, a co za tym idzie \u2013 poprawia wydajno\u015b\u0107 systemu. Nowa wersja platformy zawiera r\u00f3wnie\u017c dodatkowe funkcje, dzi\u0119ki kt\u00f3rym w\u0142a\u015bciciele sklep\u00f3w mog\u0105 pomaga\u0107 klientom w zakupach.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Przebieg pracy<\/h2>\n\n\n\n<p>Jakie zadania sta\u0142y przed programistami Sii?<\/p>\n\n\n\n<p><strong>Wyzwania:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>75 wirtualnych sklep\u00f3w na jednej instancji Magento<\/li>\n\n\n\n<li>zachowanie obs\u0142ugi wielu j\u0119zyk\u00f3w z wysy\u0142k\u0105 do kilkudziesi\u0119ciu kraj\u00f3w<\/li>\n\n\n\n<li>dostosowanie przekierowa\u0144 URL<\/li>\n<\/ul>\n\n\n\n<p><strong>Cel:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>aktualizacja i migracja do Magento 2.4.2<\/li>\n<\/ul>\n\n\n\n<p><strong>Realizacja:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>b\u0142yskawiczna aktualizacja \u2013 dwa tygodnie z testami i wdro\u017ceniem na produkcj\u0119<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Wyzwania<\/h2>\n\n\n\n<p>Celem naszego zespo\u0142u by\u0142a aktualizacja i migracja systemu do najnowszego rozwi\u0105zania Magento 2.4.2, przy jednoczesnym zachowaniu funkcjonalno\u015bci i UX klienta w procesie zakupowym.<\/p>\n\n\n\n<p>Platforma e-commerce marki Urbanista oparta o Adobe\/Magento posiada \u0142\u0105cznie 75 sklep\u00f3w (stores). Migracja do Magento 2.4.2 musia\u0142a uwzgl\u0119dni\u0107 ci\u0105g\u0142o\u015b\u0107 dzia\u0142ania biznesu oraz dostosowanie do zmian nie tylko w ramach architektury systemu.<\/p>\n\n\n\n<p>Jednym z wyzwa\u0144, jakie stan\u0119\u0142y przed nami, by\u0142a <strong>poprawa sposobu dzia\u0142ania i reindeksacji URL<\/strong> (u\u017cywane do tej pory domy\u015blne rozwi\u0105zanie nie radzi\u0142o sobie z tym najlepiej). Zastosowali\u015bmy w\u0142asny modu\u0142 Sii Url_rewrite, kt\u00f3ry usuwa duplikaty i sprawia, \u017ce produkty dzia\u0142aj\u0105 poprawnie przy zapisie w backoffice. Od strony frontendu konieczne by\u0142o dostosowanie do zmian UX w nowych szablonach check out, w kt\u00f3rych zmiany zosta\u0142y naniesione \u2013 w przypadku rozwi\u0105za\u0144 customowych jest to zawsze do\u015b\u0107 z\u0142o\u017cony proces.<\/p>\n\n\n\n<p><strong>Szymon Nag\u00f3rski, Frontend developer, Sii:<\/strong> \u201eNie lada wyzwaniem by\u0142o dostosowanie asynchronicznych zapyta\u0144 i blokowanie z CORS (Cross-Origin Resource Sharing) \u2013 rozwi\u0105zanie przez zewn\u0119trzne zapytania (rozwi\u0105zanie dedykowane Sii)\u201d.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Realizacja<\/h2>\n\n\n\n<p>Prace deweloperskie obejmowa\u0142y stworzenie lokalnej kopii systemu 1:1 wraz z dost\u0119pem do integracji zewn\u0119trznej (ERP), gdzie odbywa\u0142a si\u0119 migracja i wi\u0119kszo\u015b\u0107 pracy.<\/p>\n\n\n\n<p><strong>Daniel Lenkiewicz, In\u017cynier ds. oprogramowania, Sii:<\/strong> \u201ePrzechodzili\u015bmy krok po kroku przygotowan\u0105 \u015bcie\u017ck\u0105 przez zapytania REST, sprawdzaj\u0105c poszczeg\u00f3lne endpointy do integracji, np. Navision. Sama aktualizacja do wersji 2.4.2 tak\u017ce by\u0142a do\u015b\u0107 z\u0142o\u017cona. W trakcie prac pojawia\u0142y si\u0119 wewn\u0119trzne b\u0142\u0119dy platformy Magento zwi\u0105zane z baz\u0105 danych w patchu MC-40700, kt\u00f3re oczywi\u015bcie naprawili\u015bmy\u201d.<\/p>\n\n\n\n<p>Nast\u0119pny etap stanowi\u0142y prace w \u015brodowisku testowym: testy UAT, backup i testy funkcjonalne. Tu tak\u017ce dokonali\u015bmy drobnych poprawek (uwzgl\u0119dniaj\u0105cych dane ze \u015brodowiska produkcyjnego) przed finalnym wdro\u017ceniem na produkcj\u0119.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dzia\u0142ania dodatkowe<\/h2>\n\n\n\n<p>Jak zawsze wa\u017cnym aspektem (poza sam\u0105 aktualizacj\u0105 i migracj\u0105) jest dla nas wydajno\u015b\u0107. Chcemy, aby system dzia\u0142a\u0142 p\u0142ynnie i by\u0142 dostosowany zar\u00f3wno do potrzeb u\u017cytkownik\u00f3w ko\u0144cowych, jak r\u00f3wnie\u017c u\u017cytkownik\u00f3w back office. O tym, w jaki spos\u00f3b performance mo\u017ce by\u0107 obj\u0119ty audytem, opowiadali\u015bmy ju\u017c m.in. <a href=\"https:\/\/sii.pl\/aktualnosci\/jak-uchronic-biznes-e-commerce-przed-kleska-urodzaju-eksperci-sii-opowiedza-podczas-e-commerce-trends-2019-w-warszawie\/\">na przyk\u0142adzie Black Friday podczas konferencji E-commerce Trends.<\/a><\/p>\n\n\n\n<p>Podczas migracji dla marki Urbanista przeanalizowali\u015bmy modu\u0142y w wydaniu Magento 2.4.2 i wy\u0142\u0105czyli\u015bmy 147 z nich (w tym Magento Inventory) ze wzgl\u0119du na brak konieczno\u015bci stosowania ich w projekcie. Dzi\u0119ki temu system zosta\u0142 dodatkowo odci\u0105\u017cony.<\/p>\n\n\n\n<p>Poni\u017cej przedstawiamy por\u00f3wnanie wersji przed aktualizacj\u0105 oraz po aktualizacji do Magento 2.4.2:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>por\u00f3wnanie czas\u00f3w operacji w testach dodawania nowych produkt\u00f3w, u\u017cytkownik\u00f3w i atrybut\u00f3w na istniej\u0105cej ju\u017c bazie produktowej (opartych na Magento Performance Toolkit):\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter wp-image-11396 size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Ryc1.KrotszeCzasyIndeksacji-1.png\"><img decoding=\"async\" width=\"856\" height=\"538\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Ryc1.KrotszeCzasyIndeksacji-1.png\" alt=\"Kr\u00f3tsze czasy indeksacji\" class=\"wp-image-11396\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Ryc1.KrotszeCzasyIndeksacji-1.png 856w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Ryc1.KrotszeCzasyIndeksacji-1-300x189.png 300w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Kr\u00f3tsze czasy indeksacji<\/figcaption><\/figure>\n\n\n\n<p>Powy\u017csze wyniki pokazuj\u0105, \u017ce czas reindeksacji uleg\u0142 wyra\u017anemu skr\u00f3ceniu po aktualizacji Magento do wersji 2.4.2.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>por\u00f3wnanie czas\u00f3w operacji na reindeksacji:\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter wp-image-11398 size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Ryc2.KrotszeCzasyOperacji.png\"><img decoding=\"async\" width=\"839\" height=\"538\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Ryc2.KrotszeCzasyOperacji.png\" alt=\"Kr\u00f3tsze czasy operacji\" class=\"wp-image-11398\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Ryc2.KrotszeCzasyOperacji.png 839w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Ryc2.KrotszeCzasyOperacji-300x192.png 300w\" sizes=\"(max-width: 839px) 100vw, 839px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Kr\u00f3tsze czasy operacji<\/figcaption><\/figure>\n\n\n\n<p>W tym przypadku nast\u0105pi\u0142 niemal dwukrotny \u0142\u0105czny wzrost wydajno\u015bci przy pe\u0142nej reindeksacji<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Infrastruktura<\/h2>\n\n\n\n<p>Po przeprowadzeniu test\u00f3w na \u015brodowisku testowym, wydali\u015bmy w\u0142a\u015bciwe wdro\u017cenie na produkcj\u0119, kt\u00f3ra mia\u0142a przygotowany backup (do wykorzystania w razie konieczno\u015bci odtworzenia systemu). Przy aktualizacji Magento do wersji 2.4.2 niezb\u0119dna by\u0142a r\u00f3wnie\u017c zmiana Elasticsearch do najnowszej wersji oraz podbicie PHP 7.3.x wraz z analiz\u0105 zastosowanych modu\u0142\u00f3w zewn\u0119trznych (np. CMS).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter wp-image-11412\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Urbanista-ecommerce-2.jpg\"><img decoding=\"async\" width=\"1892\" height=\"928\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Urbanista-ecommerce-2.jpg\" alt=\"E-commerce Urbanista\" class=\"wp-image-11412\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Urbanista-ecommerce-2.jpg 1892w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Urbanista-ecommerce-2-300x147.jpg 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Urbanista-ecommerce-2-1024x502.jpg 1024w\" sizes=\"(max-width: 1892px) 100vw, 1892px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 3 E-commerce Urbanista<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Co u\u0142atwi\u0142o nam realizacj\u0119 zadania?<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>nasze do\u015bwiadczenie z platform\u0105 Magento<\/li>\n\n\n\n<li>znajomo\u015b\u0107 optymalnych rozwi\u0105za\u0144 hostingowych w chmurze<\/li>\n\n\n\n<li>modu\u0142y Sii dotycz\u0105ce dedykowanych rozwi\u0105za\u0144 i usprawniaj\u0105cych performance Magento<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Efekt<\/h2>\n\n\n\n<p>Marka Urbanista jest usatysfakcjonowana efektami naszych dzia\u0142a\u0144 i wdro\u017conej przez nas aktualizacji Magento do wersji 2.4.2. Klient zwr\u00f3ci\u0142 uwag\u0119 na fakt, \u017ce po wprowadzonych zmianach zauwa\u017cy\u0142 znaczn\u0105 r\u00f3\u017cnic\u0119 dzia\u0142ania systemu:<\/p>\n\n\n\n<p><strong>Urbanista:<\/strong> \u201eDzi\u0119ki dokonaniu migracji, back office zacz\u0105\u0142 dzia\u0142a\u0107 p\u0142ynniej, co jest zauwa\u017calne podczas wykonywania codziennych operacji\u201d.<\/p>\n\n\n\n<p>Ponadto, efektami migracji do Magento 2.4.2. by\u0142a r\u00f3wnie\u017c <strong>reindeksacja produkt\u00f3w oraz og\u00f3lna stabilizacja systemu<\/strong> (280 core fix, 35 patchy bezpiecze\u0144stwa) wraz z aktualizacjami zasad bezpiecze\u0144stwa.<\/p>\n\n\n\n<p><strong>Ca\u0142y projekt migracji do Magento 2.4.2<\/strong> (uwzgl\u0119dniaj\u0105c: przygotowanie planu, development i przeprowadzenie test\u00f3w) <strong>zaj\u0105\u0142 programistom Sii 1 sprint \u2013 tj. 2 tygodnie pracy<\/strong>. Wdro\u017cenie zosta\u0142o zrealizowane pod koniec marca 2021.<\/p>\n\n\n\n<p><em>Masz dodatkowe pytania odno\u015bnie wdro\u017cenia? Mo\u017ce zainteresowa\u0142 Ci\u0119 konkretny aspekt wprowadzonych zmian? Podziel si\u0119 swoj\u0105 opini\u0105 w komentarzach, ch\u0119tnie odpowiem na wszystkie pytania.<\/em><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;11378&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;6&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5 ( votes: 6)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Case Study Urbanista \u2013 jak w kr\u00f3tkim czasie programi\u015bci Sii zrealizowali migracj\u0119 do Magento 2.4.2&quot;,&quot;width&quot;:&quot;139.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 139.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            5\/5 ( votes: 6)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Jak szybko mo\u017cna dokona\u0107 aktualizacji systemu Magento 2 do jego najnowszej wersji? Czy to skomplikowany proces? Z takimi pytaniami do &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/case-study-urbanista-jak-w-krotkim-czasie-programisci-sii-zrealizowali-migracje-do-magento-2-4-2\/\">Continued<\/a><\/p>\n","protected":false},"author":467,"featured_media":11386,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":3,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1316],"tags":[1032,930,852],"class_list":["post-11378","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-miekko","tag-case-study","tag-e-commerce","tag-magento"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/08\/Case-Study-Urbanista-gotowe.png","category_names":["Development na mi\u0119kko"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/11378"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/467"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=11378"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/11378\/revisions"}],"predecessor-version":[{"id":22221,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/11378\/revisions\/22221"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/11386"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=11378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=11378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=11378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}