Magento 2 Allegro Integration module
Magento 2 Allegro Integration module. Supports Magento 2 >= v2.3. Currently is not working with current Allegro API.
Moduł nie jest kompatybilny z najnowszą zmianą w Allegro.pl dotyczącą łączenia ofert z Katalogiem Produktów - wpis: Od dzisiaj nowe oferty w wybranych działach wystawisz dopiero, gdy połączysz je z Katalogiem produktów.
W efekcie wystawienie ofert z tego modułu na Allegro jest niemożliwe. Jest to związane ze zmianą, którą wprowadził serwis Allegro.
Jesteśmy otwarci na zgłoszenia pull-request w zakresie rozwiązania tego problemu.
🚀 Dalszy rozwój rozszerzenia oferujemy odpłatnie.
Zapraszmy do kontaktu - Magento 2 & Allegro by Macopedia
Our partners helps to develop this project.
If you like to help our project - please let us know at sales@macopedia.com
Magento 2 - Allegro Integration Module source code is completely free and released under the MIT License.
Import zamówień powinien zostać włączony, dopiero gdy wszystkie produkty są już powiązane z ofertami na Allegro - w przeciwnym wypadku zamówienie może zostać pominięte z powodu braku produktu, który odpowiadałby ofercie na Allegro.
Aby połączyć sklep Magento z aplikacją Allegro należy wykonać następujące kroki:
Przed włączeniem importu zamówień należy powiązać już istniejące oferty na Allegro z odpowiadającymi im produktami w sklepie Magento, aby to zrobić należy wykonać następujące kroki:
Jednym z wielu zadań wtyczki jest dopilnowanie, aby liczba danego produktu na sklepie Magento,
powiązanego z odpowiednią ofertą w Allegro była stale taka sama zarówno na sklepie, jak i w
Allegro. Zadanie to spełnia realizując poniższe czynności:
Synchronizację stanów magazynowych można włączyć w konfiguracji wtyczki.
Wtyczka oferuję również możliwość synchronizacji cen produktów Magento z cenami ofert na Allegro. Każdorazowa zmiana ceny produktu jest przesyłana do odpowiedniej oferty na Allegro. Można ustawić, aby ceny były wyższe na Allegro niż w Magento o odpowiedni procent (procent jest jednakowy dla każdej oferty).
Synchronizację cen można włączyć w konfiguracji wtyczki.
Po nawiązaniu połączenia sklepu z aplikacją Allegro możemy włączyć w konfiguracji import zamówień.
Po włączeniu tej opcji API Allegro będzie odpytywane co 5 minut o zdarzenia dotyczące zamówień. W ramach tego zapytania wszystkie opłacone zamówienia będą importowane do Magento. Jeżeli zamówienie nie zostało jeszcze zapłacone, to zostanie dla niego złożona rezerwacja. Aktualne rezerwacje można zobaczyć, wchodząc na Sprzedaż->Rezerwacje Allegro. Jeśli istnieje już rezerwacja dla danego zamówienia i zostanie ono opłacone, to importer usunie rezerwacje oraz złoży zamówienie w Magento.
Proces składania rezerwacji można w dowolnym momencie włączyć oraz wyłączyć w konfiguracji wtyczki (sklepy->Konfiguracja->Allegro->Konfiguracja->Import zamówień).
W konfiguracji możemy również ustawić widok sklepu, do którego zamówienia z Allegro będą importowane.
W ramach importu zamówień z Allegro w sklepie Magento zapisywane są informacje o cenie i ilości zamówionego produktu, dane zamawiającego, dane o płatności i wysyłce oraz wiadomość do sprzedającego, która trafia do zakładki “Historia komentarzy” na stronie zamówienia.
Moduł obsługuje standardową logikę dla składania zamówień w Magento. Dostosowanie importowanych produktów można w projekcie przeprowadzić poprzez utworzenie obserwera dla eventu z nazwą “allegro_order_import_before_quote_save”. Obserwer ten ma przekazane w parametrze wszystkie informacje udostępniane przez API Allegro dla zapytania o szczegóły zamówienia (https://developer.allegro.pl/en/orders/#04).
Jeżeli z jakiegoś powodu nie uda się zaimportować zamówienia, to informacja o niepowodzeniu trafia do tabeli allegro_orders_with_errors
. Można ją podejrzeć wchodząc Sprzedaż->Allegro zamówienia z błędami.
Znajdują się tam informacje na temat powodu błędu, ilości prób zaimportowania, daty pierwszej oraz ostatniej próby zaimportowania oraz ID zamówienia. Aby spróbować zaimportować ponownie zamówienia należy wybrać interesujące nas rekordy a następnie rozwinąć listę akcji i wybrać Importuj
W konfiguracji wtyczki możemy definiować mapowanie statusów zamówień pomiędzy Magento i Allegro.
Po dodaniu odpowiedniego mapowania zmiana statusu zamówienia w Magento spowoduje również zmianę statusu na Allegro.
W konfiguracji wtyczki możemy definiować mapowanie metod płatności dla zamówień przychodzących z Allegro do sklepu Magento.
Dla mapowania metod dostawy mamy do dyspozycji dynamiczną listę, do której możemy dodawać kolejne pozycje, w których wybieramy w liście po lewej stronę jedną z metod dostawy dostępnych w Allegro, a w liście po prawej stronie nazwę metody dostawy dostępnej i aktywnej w konfiguracji sklepu Magento. Poniżej dynamicznej listy możemy wybrać domyślną metodę dostawy, która będzie przypisana do zamówienia w momencie, gdy z Allegro otrzymamy metodę, dla której nie zdefiniowaliśmy mapowania.
Dla mapowania metod płatności mamy do dyspozycji dwie listy rozwijane, w których możemy wybrać po jednej z dostępnych i aktywnych w konfiguracji sklepu Magento metod płatności - dla zamówień przychodzących z Allegro z płatnością online i dla zamówień z płatnością przy pobraniu.
Aby klient mógł śledzić przesyłkę z jego zamówieniem należy wprowadzić w Allegro jej numer oraz informacje o przewoźniku. Dzięki wtyczce można, to zrobić z poziomu Magento:
Wysyłkę numerów przesyłek można włączać lub wyłączać w konfiguracji wtyczki.
Za pomocą wtyczki możemy wystawiać produkty z Magento na Allegro. Aby to zrobić należy:
Po wprowadzeniu wymaganych danych można zacząć wystawiać oferty z poziomu Magento.
Należy wybrać produkt, który chcemy wstawić, wejść na jego stronę i wybrać zdjęcie do oferty Allegro. Żeby, to zrobić wystarczy kliknąć zdjęcie, zaznaczyć rolę ‘Allegro’, a następnie zapisać produkt.
Teraz wystarczy już kliknąć przycisk “Dodaj na Allegro”.
Zostaniemy przekierowani na stronę formularza wystawiania aukcji, na którym znajdują się pola:
Wszystkie pola w formularzu mają walidację, niektóre parametry mogą być wymagane do wystawienia aukcji.
Oferta wystawiana jest ze zdjęciami pobranymi z produktu.
Po uzupełnieniu wszystkich pół i kliknięciu “Zapisz” - zostanie wystawiony szkic oferty na Allegro i zostaniemy przekierowani na stronę edycji oferty. Teraz wystarczy kliknąć “Opublikuj”, aby oferta stała się aktywna. W każdej chwili możemy edytować ofertę, zakończyć ją, a potem następnie aktywować. Produkt jest już teraz powiązany z ofertą na Allegro.
W konfiguracji jest opcja włączenia zadania cron, które będzie usuwać z produktu ID oferty, która już nie istnieje na Allegro (Sklepy->Konfiguracja->Allegro->Konfiguracja->Import zamówień->Cron do czyszczenia starych rezerwacji jest włączony).
Wtyczka oferuje możliwość logowania wszystkich danych przesyłanych do i z API Allegro. Włączyć ją można na stronie konfiguracji (sklepy->Konfiguracja->Allegro->Konfiguracja->Debug mode)
Dane logowane są do pliku /var/log/allegro-http-request.log
Import konkretnego zamówienia o danym ID:macopedia
order-import -c [CHECKOUT_FORM_ID]
Import wszystkich zamówień:macopedia
orders-import
Import zamówień z błędami:macopedia
orders-with-errors-import
Usunięcie mapowań produktów z nieistniejącymi ofertami:macopedia
clean-offers-mapping
konfiguracja w pliku config.php
<?php
return [
'modules' => [
// ...
'Magento_Amqp' => 0, // important disable rabbitmq
'Magento_MysqlMq' => 1,
// ...
]
konfiguracja kolejki w pliku env.php
'queue' => [
'topics' => [
'allegro.change.stock.db' => [
'schema' => [
'schema_value' => 'Macopedia\Allegro\Api\Consumer\MessageInterface'
],
'response_schema' => [
'schema_value' => 'Macopedia\Allegro\Api\Consumer\MessageInterface'
],
'publisher' => 'allegro.change.stock.db',
],
],
'publishers' => [
'allegro.change.stock.db' => [
'name' => 'allegro.change.stock.db',
]
],
'consumers' => [
'allegro.change.stock.db' => [
'queue' => 'allegro.api', // `name` from db table `queue`
'name' => 'allegro.change.stock.db',
'handlers' => [
[
'type' => 'Macopedia\Allegro\Model\Consumer',
'method' => 'processMessage'
]
],
'consumerInstance' => 'Magento\Framework\MessageQueue\Consumer',
'instance_type' => 'Magento\Framework\MessageQueue\Consumer',
'connection' => 'db',
'maxMessages' => 2000,
'max_messages' => 2000
]
],
'exchange_topic_to_queues_map' => [
'allegro.change.stock.db--allegro.change.stock.db' => [
'allegro.api' // `name` from db table `queue`
]
]
],
konfiguracja consumera w pliku env.php
'cron_consumers_runner' => [
'cron_run' => true,
'max_messages' => 20000,
'consumers' => [
'AllegroApiQueueDb'
]
]
konfiguracja w pliku config.php
<?php
return [
'modules' => [
// ...
'Magento_Amqp' => 1, // important enable rabbitmq
// ...
]
konfiguracja kolejki w pliku env.php
'queue' => [
'amqp' => [
'host' => 'amqp',
'port' => '5672',
'user' => 'guest',
'password' => 'guest',
],
],
konfiguracja consumera w pliku env.php
'cron_consumers_runner' => [
'cron_run' => true,
'max_messages' => 20000,
'consumers' => [
'AllegroApiQueue'
]
]