Gdzie przechowywać kopie zapasowe WooCommerce?
Kopia zapisana tylko na tym samym serwerze co sklep nie chroni przed awarią serwera, włamaniem ani błędem hostingu. Dokumentacja WordPressa zaleca trzymanie co najmniej 3-5 ostatnich kopii i przechowywanie ich w różnych miejscach i na różnych nośnikach, np. na hostingu, w chmurze i na dysku lokalnym. W praktyce sklepy często stosują zasadę, w której jedna kopia leży na serwerze, druga w zewnętrznej chmurze, a trzecia, rzadsza, w osobnym archiwum.
Kopia na hostingu - najszybsza do odtworzenia, ale znika razem z serwerem lub kontem.
Zewnętrzna chmura - np. Dropbox, Google Drive lub Amazon S3. Chroni przed awarią serwera i pozwala odtworzyć sklep u innego dostawcy.
Archiwum offline lub osobne konto - rzadsza kopia, do której nie ma dostępu ten sam login co do sklepu, co utrudnia jej usunięcie przy włamaniu.
Pamiętaj, że kopia sklepu zawiera dane osobowe klientów, a często także dane do logowania w bazie i klucze integracji w plikach konfiguracyjnych. Dostęp do magazynu kopii ogranicz do osób, które go potrzebują, a zasady przechowywania i usuwania kopii z danymi klientów ustal ze specjalistą od ochrony danych.
Narzędzia do kopii zapasowych WooCommerce
Backup możesz zrobić ręcznie, wtyczką albo narzędziem hostingu. Dokumentacja WooCommerce opisuje ręczną procedurę w trzech krokach: eksport treści z WordPressa, pobranie katalogu wp-content przez FTP lub SFTP i eksport bazy danych przez phpMyAdmin w formacie SQL. To dobra metoda awaryjna, ale przy codziennej sprzedaży ręczne kopie szybko przestają być robione regularnie. Dlatego zwykle stawia się na automatyzację.
Jetpack VaultPress Backup
Dokumentacja WooCommerce podaje Jetpack VaultPress Backup jako przykład automatycznego rozwiązania, które kopiuje pliki i bazę danych. Ważna cecha dla sklepów: według dokumentacji Jetpack na płatnych planach zamówienia i produkty WooCommerce są kopiowane w czasie rzeczywistym, a przy odtworzeniu witryny do wcześniejszego stanu zamówienia złożone po tym momencie zostają zachowane. Jetpack zaznacza jednak, że ta ochrona nie obejmuje stanów magazynowych, a subskrypcje mogą wymagać ponownej aktywacji po odtworzeniu.
UpdraftPlus i inne wtyczki
UpdraftPlus to popularna wtyczka z repozytorium wordpress.org. W wersji darmowej pozwala planować kopie co 2, 4, 8 lub 12 godzin albo codziennie, co tydzień lub co miesiąc, wysyłać je m.in. do Dropboxa, Google Drive, Amazon S3 lub na FTP oraz odtwarzać wybrane elementy, np. samą bazę danych albo wtyczki. Kopie przyrostowe i dodatkowe miejsca zapisu są w wersji płatnej. Przy wyborze dowolnej wtyczki sprawdź datę ostatniej aktualizacji, zgodność z Twoją wersją WooCommerce i to, czy kopie trafiają poza serwer.
Kopie zapasowe hostingu
Większość firm hostingowych robi własne kopie kont. To przydatna dodatkowa warstwa, ale zanim się na niej oprzesz, sprawdź w umowie lub panelu, jak często kopie powstają, jak długo są przechowywane, czy obejmują bazę danych, ile trwa odtworzenie i czy jest płatne. Taką kopię warto traktować jako uzupełnienie własnego backupu, a nie jedyne zabezpieczenie. Zwróć też uwagę, czy kopia hostingu nie leży na tym samym koncie co sklep - przy zawieszeniu konta albo sporze z dostawcą możesz stracić dostęp jednocześnie do sklepu i do jego kopii.
[#chart:woo66b]
Problem zamówień przy odtwarzaniu kopii WooCommerce
Odtworzenie sklepu z kopii przywraca bazę danych do stanu z chwili backupu. Wszystko, co wydarzyło się później, znika: nowe zamówienia, rejestracje klientów, zmiany stanów. W zwykłej stronie firmowej to drobna strata, w sklepie - realny problem, bo klienci zapłacili za zamówienia, których w panelu już nie ma.
Dlatego przed odtworzeniem kopii na działającym sklepie zrób najpierw kopię bieżącego stanu, nawet uszkodzonego. Potem wyeksportuj zamówienia złożone po dacie backupu albo sprawdź je w panelu operatora płatności i w systemie do obsługi zamówień. Jeśli sklep jest połączony z Base albo innym systemem, zamówienia są tam zwykle zapisane niezależnie od WooCommerce, co ułatwia ich odtworzenie. Podobnie działa integracja z systemem sprzedaży i magazynem - przykład opisujemy we wpisie o tym, jak działa integracja WooCommerce z Subiekt GT i synchronizacja stanów.
Jak testować odtwarzanie kopii zapasowej WooCommerce?
Test odtwarzania to sprawdzenie, czy z kopii da się zbudować działający sklep, ile to trwa i czego brakuje. Najlepiej robić go na kopii testowej sklepu albo na osobnym serwerze, nigdy na produkcji. Dokumentacja WordPressa przypomina, by trzymać razem bazę i pliki z tego samego momentu oraz przy odtwarzaniu najpierw wgrać pliki, a potem zaimportować bazę. Przykładowa procedura testu:
[#chart:woo66c]
Przy teście zwróć uwagę na rzeczy, które często wychodzą dopiero przy odtwarzaniu: brak zdjęć, bo katalog z obrazami był wykluczony z kopii; zbyt duży plik bazy dla limitów hostingu; brak dostępu do magazynu kopii, bo hasło miała osoba, która już nie pracuje w firmie. Zanotuj, ile trwał cały proces - to realny czas, przez który sklep może nie sprzedawać po awarii.
[#uwaga] Na kopii testowej wyłącz wysyłkę e-maili, ustaw bramki płatności w tryb testowy i odłącz integracje z marketplace'ami, systemem fakturowym i kurierami. Inaczej odtworzony sklep może wysłać klientom stare powiadomienia, wystawić podwójne faktury albo zmienić stany w ofertach.
Backup przed importem i dużymi zmianami
Najwięcej awarii powodują nie hakerzy, tylko zmiany wprowadzane przez sam zespół: import produktów z błędnym mapowaniem pól, masowa zmiana cen, aktualizacja kilku wtyczek naraz. Przed każdą taką operacją zrób ręczną kopię bazy i zapisz, kiedy powstała. Jak przygotować sam import, opisujemy w tekście o tym, jak importować produkty do WooCommerce z CSV i XML bez błędów.
Backup dużego sklepu - rozmiar kopii i obciążenie serwera
W sklepie z tysiącami produktów katalog ze zdjęciami potrafi zajmować wiele gigabajtów, a baza danych rośnie z każdym zamówieniem, notatką i zaplanowaną akcją. Pełna kopia robiona kilka razy dziennie obciąża wtedy serwer i może spowalniać sklep w godzinach sprzedaży. Rozwiązaniem jest rozdzielenie harmonogramów: częste kopie samej bazy, rzadsze kopie plików oraz uruchamianie pełnych kopii w nocy. Pomagają też kopie przyrostowe, które dopisują tylko zmiany od poprzedniego backupu - w UpdraftPlus to funkcja wersji płatnej. Sprawdź także, czy hosting nie ma limitów czasu wykonywania skryptów, przez które kopia przerywa się w połowie bez wyraźnego komunikatu.
Kopia zapasowa po włamaniu
Po włamaniu odruchowo odtwarza się ostatnią kopię. To ryzykowne, bo złośliwy kod mógł trafić do sklepu wiele dni wcześniej i znajdować się także w kopiach. Dlatego przy incydencie bezpieczeństwa warto najpierw ustalić, od kiedy strona była zainfekowana, a dopiero potem wybrać kopię sprzed tego momentu. Po odtworzeniu zmień hasła administratorów, dostęp do bazy i klucze integracji oraz zaktualizuj wtyczki, przez które mogło dojść do włamania. Przy wycieku danych klientów skonsultuj dalsze kroki ze specjalistą od ochrony danych.
Plan odtwarzania sklepu po awarii
Kopia zapasowa to połowa zabezpieczenia. Druga połowa to krótki plan, który mówi, kto co robi, gdy sklep przestaje działać. Taki dokument nie musi być długi. Wystarczy, że odpowiada na kilka pytań:
Gdzie są kopie i kto ma do nich dostęp?
Kto decyduje o odtworzeniu i jak informujemy klientów o przerwie?
Jak wstrzymujemy sprzedaż, np. tryb „Wkrótce” (Coming soon) w WooCommerce albo wyłączenie checkoutu?
Skąd odzyskujemy zamówienia złożone po ostatniej kopii?
Jak sprawdzamy sklep po odtworzeniu - lista stron i zamówienie testowe?
Plan aktualizuj przy zmianie hostingu, narzędzia do kopii albo osób w zespole. Raz na kwartał przeprowadź test odtwarzania i zanotuj wynik. Przechowuj plan poza serwerem sklepu, np. we wspólnym dokumencie zespołu - w czasie awarii panel sklepu może być niedostępny, a razem z nim notatki zapisane w WordPressie.
Jak Vinson pomaga z kopiami zapasowymi WooCommerce
W Vinson budujemy i rozwijamy sklepy na WooCommerce oraz integrujemy je z Allegro i Base. W ramach opieki nad sklepem:
dobieramy narzędzie do kopii zapasowych do wielkości sklepu i hostingu,
ustawiamy harmonogram kopii bazy i plików oraz zapis poza serwerem,
przeprowadzamy test odtwarzania na kopii testowej i spisujemy procedurę,
robimy kopię przed każdą aktualizacją, importem i większą zmianą.
Więcej informacji znajdziesz na stronie sklepy na WooCommerce z Vinson.
Najczęściej zadawane pytania
Jak zrobić kopię zapasową sklepu WooCommerce?
Potrzebujesz kopii bazy danych i katalogu wp-content z tego samego momentu. Najwygodniej zrobić ją automatycznie wtyczką, np. UpdraftPlus lub Jetpack VaultPress Backup, albo narzędziem hostingu. Ręcznie możesz wyeksportować bazę przez phpMyAdmin i pobrać pliki przez SFTP.
Czy eksport z WordPressa wystarczy jako backup sklepu?
Nie. Według dokumentacji WooCommerce plik XML z eksportu WordPressa nie zawiera tabel z zamówieniami, produktami ani ustawieniami WooCommerce. Do pełnej kopii potrzebny jest zrzut całej bazy danych i kopia plików.
Jak często robić backup WooCommerce?
Dokumentacja WordPressa zaleca kopie codzienne dla stron o dużej aktywności, a sklep z codziennymi zamówieniami do nich należy. Dodatkowo rób kopię przed każdą aktualizacją, importem i większą zmianą. W okresach dużej sprzedaży warto kopiować bazę częściej.
Czy po odtworzeniu kopii stracę zamówienia?
Zwykłe odtworzenie bazy usuwa zamówienia złożone po wykonaniu kopii. Przed odtworzeniem zabezpiecz bieżący stan i listę nowych zamówień. Niektóre narzędzia, np. Jetpack VaultPress Backup na płatnych planach, zachowują zamówienia złożone po punkcie odtworzenia.
Jak sprawdzić, czy backup sklepu działa?
Odtwórz kopię na serwerze testowym lub kopii sklepu i sprawdź stronę główną, produkty, zdjęcia, koszyk, panel i historię zamówień. Na kopii testowej wyłącz e-maile, płatności i integracje. Taki test warto powtarzać regularnie, np. raz na kwartał.
Dobrze ustawione kopie zapasowe WooCommerce sprawiają, że awaria, błąd importu czy nieudana aktualizacja kończy się kilkugodzinną przerwą, a nie utratą sklepu. Jeśli chcesz ustawić backup, przetestować odtwarzanie i spisać plan awaryjny, sprawdź sklep na WooCommerce z Vinson - zaczniemy od przeglądu obecnych kopii Twojego sklepu.