Plugin znajdziesz na Adobe Commerce Marketplace pod nazwą Ecomail Email Marketing lub klikając tutaj.
Niektóre zaawansowane funkcje e-commerce, na przykład śledzenie zachowań (behavioral tracking), obsługa zamówień oraz porzuconych koszyków, mogą wymagać odpowiedniego taryfy Ecomail.
Co znajdziesz w artykule?
Ecomail wtyczka Magento 2.x
1. Co potrafi plugin
Synchronizuje zapisy i wypisy kontaktów między newsletterem Magento a wybraną listą w Ecomailu.
Przekazuje nowe kontakty oraz opcjonalne dane klienta.
Może tworzyć lub aktualizować kontakt na podstawie danych z zamówienia.
Wysyła nowe i historyczne zamówienia jako transakcje.
Przekazuje zawartość koszyka do obsługi porzuconych koszyków.
Śledzi odwiedziny stron oraz wyświetlenia produktów.
Potrafi respektować natywną zgodę na cookies w Magento.
Wstawia do sklepu formularz utworzony w Ecomailu.
Przekazuje język sklepu do pola niestandardowego
MAGENTO_LANGUAGE.Przekazuje tagi
magento,magento_newsletteroraz opcjonalnie grupę klienta.Oferuje webhook do przekazywania z powrotem statusu zapisu z Ecomailu do Magento.
Umożliwia uruchomienie początkowej synchronizacji istniejących klientów i zamówień w tle.
Wyświetla status synchronizacji oraz ostatnie zapytania do API Ecomailu.
2. Jakie dane są przesyłane
W zależności od włączonych ustawień plugin może wysyłać do Ecomailu:
adres e-mail;
imię i nazwisko;
firmę, telefon oraz adres pocztowy;
datę urodzenia;
grupę klienta w formie tagu;
wersję językową sklepu;
źródło kontaktu;
status zapisu do newslettera;
zamówienia oraz ich pozycje;
zawartość koszyka zakupowego;
odwiedziny stron oraz wyświetlenia produktów.
Przesyłaj wyłącznie te dane, które są rzeczywiście potrzebne i do których masz odpowiednią podstawę prawną lub zgodę.
Etykiety kontaktów
Plugin może dodawać następujące tagi:
Tag | Kiedy zostaje dodany |
| Do kontaktów przekazanych z Magento. |
| Jeśli kontakt jest zapisany do newslettera Magento. |
Grupa klienta | Jeśli włączysz opcję Customer groups to tags. Spacje są zastępowane podkreśleniami, np. |
Podczas standardowej synchronizacji pojedynczego kontaktu plugin najpierw pobiera jego dotychczasowe tagi w Ecomailu, a następnie dodaje do nich nowe tagi. Podczas masowej synchronizacji początkowej przekazywanie tagów jest osobną opcją do wyboru, ponieważ może ono zastąpić dotychczasowe tagi kontaktu w Ecomailu.
3. Wymagania przed instalacją
Przygotuj:
sklep na Magento Open Source lub Adobe Commerce 2.4.x;
PHP w wersji obsługiwanej przez Twoją instalację Magento;
aktywne rozszerzenie PHP cURL;
konto w Ecomailu, klucz API oraz co najmniej jedną listę kontaktów;
dostęp do plików sklepu oraz do wiersza poleceń SSH;
działający cron Magento;
aktualną kopię zapasową plików i bazy danych.
Instalację na sklepie produkcyjnym zalecamy powierzyć administratorowi Magento lub programiście. Przed instalacją zawsze wykonaj kopię zapasową.
4. Instalacja pluginu
Magento od wersji 2.4 do instalacji rozszerzeń wykorzystuje wiersz poleceń. Po pobraniu bezpłatnego pluginu z Adobe Commerce Marketplace użyj kluczy dostępu Marketplace powiązanych z daną instalacją Magento.
Instalacja przez Composer
W terminalu przejdź do głównego folderu Magento i uruchom:
composer require ecomailcz/magento2-ecomail php bin/magento module:enable Ecomail_Ecomail php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento setup:static-content:deploy -f php bin/magento cache:flush
Jeśli na Twoim serwerze bin/magento działa jako plik wykonywalny, możesz podać te polecenia również bez php:
bin/magento module:enable Ecomail_Ecomail bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy -f bin/magento cache:flush
Jeśli pojawi się komunikat Permission denied, używaj wariantu zaczynającego się od php bin/magento albo pełnej ścieżki do PHP, którą poda Ci hosting.
Ręczne wgranie plików
Jeśli pakiet instalacyjny otrzymałeś bezpośrednio od wsparcia Ecomailu, wgraj jego zawartość do:
app/code/Ecomail/Ecomail
Następnie uruchom polecenia Magento z poprzedniej sekcji, zaczynając od module:enable.
5. Podstawowe połączenie z Ecomailem
W panelu administracyjnym Magento przejdź do:
Stores > Configuration > Customers > Ecomail
Ustaw Enabled na Yes.
Wklej API Key z Ecomailu. Znajdziesz go w Ecomailu w sekcji Zarządzaj kontem –> Dla programistów. Szczegóły znajdziesz również w artykule API do pracy z Ecomailem.
Zapisz ustawienia.
Kliknij Load Subscriber Lists.
Wybierz listę w polu Subscriber List.
Dostosuj pozostałe opcje do potrzeb Twojego sklepu.
Kliknij Save Config.
Po pomyślnym połączeniu w polu Status pojawi się informacja o aktywnym połączeniu.
Jeśli korzystasz z wielu witryn lub widoków sklepu, sprawdź w przełączniku Store View w lewym górnym rogu, dla którego poziomu zapisujesz konfigurację. Poszczególne sklepy mogą używać innego klucza API, innej listy oraz innych ustawień.
6. Przegląd wszystkich ustawień
General
Ustawienie | Wyjaśnienie |
Status | Sprawdza, czy plugin jest włączony i czy przy użyciu zapisanego klucza API udało się połączyć z Ecomailem. |
Enabled | Włącza lub wyłącza komunikację pluginu z Ecomailem. |
API Key | Klucz API Twojego konta Ecomail. Magento po zapisaniu przechowuje go w formie zaszyfrowanej. |
Subscriber List | Lista w Ecomailu, do której będą synchronizowane kontakty. Nowo utworzona lista może pojawić się na liście wyboru z opóźnieniem. |
Load Subscriber Lists | Ponownie pobiera dostępne listy z Ecomailu. Użyj po wklejeniu klucza API lub utworzeniu nowej listy. |
Skip Double opt-in | Przy ustawieniu Yes pomija e-mail potwierdzający w przypadku standardowo dodawanych kontaktów. Włączaj tylko wtedy, gdy zgodę kontaktu masz zapewnioną w inny sposób. |
Trigger Autoresponders | Przy nowym, pojedynczym zapisie pozwala uruchomić powiązane automatyzacje. Masowa synchronizacja początkowa nie uruchamia automatyzacji. |
Contact source | Źródło zapisywane przy kontakcie w Ecomailu. Wartość domyślna to magento_plugin; można wpisać własne oznaczenie do 64 znaków. |
Allow initial sync | Przełącznik bezpieczeństwa, który udostępnia synchronizację początkową istniejących klientów i zamówień. |
Update existing contacts during initial sync | Określa, czy synchronizacja początkowa może aktualizować kontakty, które już istnieją na wybranej liście. |
Send tags during initial sync | Przekazuje podczas synchronizacji początkowej tagi z Magento. W przypadku istniejących kontaktów może dojść do zastąpienia ich obecnych tagów w Ecomailu. |
Subscriber sync batch size | Liczba kontaktów w jednym zapytaniu API: 100, 250, 500, 1000 lub 3000. Wartość domyślna i maksymalna to 3000. |
Transaction sync batch size | Liczba zamówień w jednym zapytaniu API: 100, 250, 500 lub 1000. Wartość domyślna i maksymalna to 1000. |
Initial Sync | Panel do uruchamiania synchronizacji oraz śledzenia statusu, przebiegu, liczby przetworzonych rekordów i czasu ostatniej zmiany. |
Webhook Token | Tajny, losowy ciąg znaków, który zabezpiecza przychodzący webhook. Wygeneruj go przyciskiem i zapisz konfigurację. |
Webhook URL | Automatycznie wygenerowany adres do zwrotnej synchronizacji statusu kontaktu. Przyciskiem skopiujesz go do Ecomailu. |
Checkout opt-out text | Tekst przy polu wyboru w kasie, za pomocą którego klient rezygnuje z zapisu do newslettera. Maksymalnie 160 znaków. |
Personal Information
Ustawienie | Wyjaśnienie |
Customer name | Przekazuje imię i nazwisko klienta. |
Customer address | Przekazuje firmę, ulicę, miasto, kod pocztowy, kraj oraz telefon, jeśli są dostępne. |
Address type | Określa, czy zostanie użyty adres dostawy czy adres do faktury. Jeśli wybrany adres nie jest dostępny, plugin spróbuje użyć dostępnego adresu z zamówienia. |
Customer DOB | Przekazuje datę urodzenia, jeśli klient ma ją uzupełnioną w Magento. |
Send order transactions | Wysyła zamówienia oraz ich pozycje do Ecomailu jako transakcje. |
Update contacts from order data | Przy nowym zamówieniu tworzy lub aktualizuje kontakt na podstawie danych z zamówienia, o ile klient nie zrezygnował z newslettera w kasie. |
Cart items | Wysyła zawartość koszyka znanego kontaktu na potrzeby automatyzacji porzuconego koszyka. |
Customer groups to tags | Dodaje grupę klienta jako tag bez spacji. Grupa NOT LOGGED IN nie jest przekazywana. |
Store locale custom field | Zapisuje język sklepu w polu niestandardowym MAGENTO_LANGUAGE, np. |
Behavior Tracking
Ustawienie | Wyjaśnienie |
Enabled | Włącza tracking odwiedzin stron Ecomail. Wymaga poprawnego App ID. |
Respect Magento cookie consent | Jeśli w Magento włączony jest Cookie Restriction Mode, skrypty trackingowe zostaną załadowane dopiero po wyrażeniu przez odwiedzającego zgody na cookies. Zalecamy pozostawienie ustawienia Yes. |
App ID | Nazwa Twojego konta Ecomail wykorzystywana przez skrypt trackingowy. Znajdziesz ją również w adresie URL po zalogowaniu do Ecomailu. |
Track product views | Na stronie szczegółów produktu wysyła zdarzenie |
Enable Ecomail form widget | Włącza wyświetlanie formularza utworzonego w Ecomailu. |
Ecomail Form ID | Wartość |
Ecomail Account Name | Nazwa konta Ecomail używana w kodzie formularza. |
Logs
Ustawienie | Wyjaśnienie |
Recent API Requests | Wyświetla ostatnie 10 zapytań do API Ecomail wraz z ich godziną, endpointem, wynikiem, statusem HTTP oraz czasem trwania. Nie zapisuje klucza API ani pełnych przesyłanych danych. |
7. Jak działa synchronizacja bieżąca
Po zapisaniu konfiguracji plugin reaguje na nowe zdarzenia w sklepie:
Zapis do newslettera: kontakt zostaje dodany do wybranej listy w Ecomailu.
Wypisanie z newslettera: zmiana zostaje wysłana do Ecomailu.
Edycja konta lub adresu: jeśli kontakt jest zapisany do newslettera, aktualizowane są dozwolone dane.
Nowe zamówienie: plugin może zaktualizować kontakt oraz wysłać transakcję wraz z pozycjami zamówienia.
Zmiana koszyka: dla znanego kontaktu wysyłana jest aktualna zawartość koszyka.
Odwiedziny strony lub produktu: przy włączonym trackingu wysyłane są zdarzenia behawioralne.
Jeśli klient w kasie zaznaczy pole rezygnacji z newslettera, plugin nie utworzy ani nie zaktualizuje na podstawie tego zamówienia kontaktu newsletterowego. Wysyłanie zamówienia jako transakcji podlega osobnemu ustawieniu Send order transactions.
Przy standardowym dodawaniu lub aktualizacji kontaktu plugin zachowuje jego dotychczasowe tagi w Ecomailu i dodaje do nich tagi z Magento.
8. Jak działa synchronizacja początkowa
Synchronizacja początkowa służy do przekazania klientów i zamówień, które istniały w Magento już przed instalacją pluginu.
Uruchomienie
Sprawdź, czy na serwerze regularnie działa cron Magento.
Ustaw Allow initial sync na Yes.
Wybierz, czy mają być aktualizowane istniejące kontakty i wysyłane tagi.
Ustaw wielkość paczki kontaktów i transakcji.
Zapisz konfigurację.
W panelu Initial Sync wybierz żądane dane i kliknij Start Sync.
Przetwarzanie w tle
Synchronizację przetwarza cron Magento, więc możesz zamknąć lub odświeżyć stronę.
Przy jednym uruchomieniu zadania cron przetwarzana jest jedna paczka kontaktów lub jedna paczka zamówień.
Najpierw przetwarzane są kontakty, następnie zamówienia.
Domyślna paczka zawiera do 3000 kontaktów lub 1000 zamówień.
Na wolniejszym hostingu można ustawić mniejsze paczki.
W danej chwili może działać tylko jedna synchronizacja początkowa.
Jeśli zapytanie masowe zostanie odrzucone z powodu jednego błędnego rekordu, plugin automatycznie dzieli paczkę i próbuje wysłać pozostałe rekordy. Dlatego w przypadku błędu może powstać więcej zapytań API.
Status i przebieg pozostają zapisane również po odświeżeniu strony administracyjnej.
Przykład: przy 6500 klientach i paczce wielkości 3000 potrzeba co najmniej trzech przebiegów cron dla kontaktów. Zamówienia zaczną być przetwarzane w jednym z kolejnych przebiegów. Jeśli hosting uruchamia cron co pięć minut, każdy kolejny krok będzie następował po około pięciu minutach.
Statusy synchronizacji
Status | Znaczenie |
| Zadanie czeka na najbliższe uruchomienie crona Magento. |
| Aktualnie przetwarzana jest paczka. |
| Wszystkie wybrane rekordy zostały przetworzone. |
| Synchronizację zatrzymał błąd. Szczegóły znajdziesz w ostatniej wiadomości oraz w logu. |
Masowy import transakcji nie uruchamia automatyzacji Ecomailu z triggerem „Provedl nákup / Makes an order”.
9. Ustawienia webhooka
Webhook zapewnia zwrotne przekazywanie statusu zapisu z Ecomailu do newslettera Magento. Gdy kontakt wypisze się w Ecomailu, zmiana może zostać przeniesiona również do Magento.
W ustawieniach pluginu kliknij Generate Token.
Kliknij Save Config. Bez zapisania nowy token nie będzie ważny.
Kliknij Copy URL.
W Ecomailu otwórz listę kontaktów używaną dla Magento.
Przejdź do Ustawienia listy > Ustawienia webhooka.
Włącz wysyłanie informacji na webhook i wklej skopiowany URL.
Zapisz ustawienia listy.
Webhook zmienia status wyłącznie u kontaktu, który już istnieje w newsletterze Magento. Wygenerowanego tokenu nie przesyłaj nikomu ani nie publikuj go.
10. Tracking, cookies i formularze
Tracking
Po włączeniu Behavior Tracking plugin ładuje skrypt trackingowy Ecomail i wysyła informacje o odwiedzinach stron. Opcja Track product views dodaje zdarzenie wyświetlenia produktu na podstawie jego SKU.
Cookies
Jeśli korzystasz z natywnego Magento Cookie Restriction Mode, pozostaw Respect Magento cookie consent ustawione na Yes. Skrypty Ecomail zostaną wtedy załadowane dopiero po zapisaniu zgody odwiedzającego.
Jeśli korzystasz z zewnętrznego paska cookies, sprawdź jego powiązanie ze zgodą Magento. Sam plugin śledzi natywną zgodę na cookies user_allowed_save_cookie.
Formularz Ecomail
W Ecomailu utwórz i opublikuj formularz.
W jego kodzie instalacyjnym znajdź wartość
js.idoraz nazwę konta.W Magento włącz Enable Ecomail form widget.
Uzupełnij Ecomail Form ID oraz Ecomail Account Name.
Zapisz konfigurację i wyczyść cache Magento.
11. Kontrola działania i logi
Po skonfigurowaniu zalecamy przeprowadzenie następującego testu:
Zapisz testowy adres e-mail do newslettera w Magento.
Sprawdź kontakt na wybranej liście w Ecomailu.
Zmień imię lub adres testowego klienta.
Dodaj produkt do koszyka jako znany kontakt.
Utwórz testowe zamówienie.
Otwórz stronę produktu i zweryfikuj tracking.
Przetestuj wypisanie się przez webhook.
W sekcji Recent API Requests sprawdź ostatnie zapytania.
Plugin wyświetla ostatnie 10 zapytań. Wpisy są przechowywane maksymalnie przez siedem dni, a log w bazie danych jest ograniczony do 10 000 wierszy. Nie są zapisywane pełne payloady ani klucze API.
Jeśli błąd powstanie jeszcze przed wysłaniem zapytania do API, może nie pojawić się w panelu. Administrator sklepu może go odszukać również w standardowych logach Magento w folderze var/log.
12. Aktualizacja pluginu
Przed aktualizacją wykonaj kopię zapasową plików i bazy danych. W głównym folderze Magento uruchom:
composer update ecomailcz/magento2-ecomail php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento setup:static-content:deploy -f php bin/magento cache:flush
Polecenie module:enable nie jest potrzebne przy zwykłej aktualizacji, jeśli moduł nie był wyłączony.
Po aktualizacji sprawdź konfigurację, status połączenia, jeden testowy kontakt oraz jedno testowe zamówienie.
13. Najczęstsze problemy
a) Listy kontaktów się nie ładują
Sprawdź klucz API.
Najpierw zapisz konfigurację, a następnie kliknij Load Subscriber Lists.
Sprawdź, czy serwer może komunikować się z API Ecomailu.
Nowo utworzona lista może być dostępna z opóźnieniem.
b) Synchronizacja początkowa pozostaje w stanie Pending
Cron Magento nie działa lub uruchamiany jest pod inną wersją PHP niż sklep. Poproś hosting o sprawdzenie, czy php bin/magento cron:run uruchamia się regularnie.
c) Synchronizacja przebiega wolno
Każdy przebieg crona przetwarza jedną paczkę. Szybkość zależy więc od interwału crona Magento oraz ustawionej wielkości paczki. Na stabilnym hostingu używaj domyślnych wartości 3000 kontaktów i 1000 transakcji.
d) Kontakt lub zamówienie nie zostały przekazane
Sprawdź Recent API Requests. Czerwony wpis zawiera status HTTP oraz skróconą wiadomość błędu. W przypadku błędu lokalnego sprawdź również logi Magento.
e) Webhook nie zmienił statusu kontaktu
Sprawdź, czy po wygenerowaniu tokenu zapisałeś konfigurację.
Skopiuj ponownie cały URL.
Sprawdź poprawną listę oraz Store View.
Kontakt musi już istnieć w newsletterze Magento.
f) Tracking się nie ładuje
Sprawdź Behavior Tracking, App ID oraz ustawienia cookies.
Po zmianie uruchom wyczyszczenie cache oraz ewentualnie wdrożenie treści statycznych.
Jeśli używasz innego paska cookies, sprawdź, czy ustawia on natywną zgodę Magento.
g) Polecenie bin/magento zwraca Permission denied
Użyj polecenia z PHP:
php bin/magento cache:flush
Na niektórych hostingach konieczne jest podanie pełnej ścieżki do PHP, np. /opt/alt/php82/usr/bin/php. Prawidłową ścieżkę poda dostawca hostingu.
h) Kompilacja nie może usunąć generated/code/Magento
Zwykle chodzi o uprawnienia lub własność plików utworzonych przez innego użytkownika lub inną wersję PHP. Nie kontynuuj usuwania na oślep; poproś administratora serwera o poprawienie własności plików i bezpieczne wyczyszczenie folderu generated.
❓
Masz pytanie? Napisz do nas na [email protected]
