Jak dodać niestandardową płatność do Magento 2 Checkout
Opublikowany: 2021-05-11Spis treści
Jednym z największych ulepszeń Magento 2.x w stosunku do Magento 1.x jest możliwość zintegrowania niestandardowych metod płatności z kasą. W tym samouczku pokażemy Ci, jak zaimplementować renderowanie metody płatności w kasie Magento 2.
Krok 1: Utwórz plik komponentu .js
Na początek renderer metody płatności powinien działać jako komponent interfejsu użytkownika, który zależy od modułu Magento_Checkout
i rozszerza domyślny komponent metody płatności (domyślny renderer metody płatności znajduje się w <Magento_Checkout_module_dir>/view/frontend/web/js/view/payment/default.js
).
Utwórz plik .js
komponentu (program renderujący metodę płatności) w katalogu niestandardowego modułu. Musi być przechowywany w katalogu <your_module_dir>/view/frontend/web/js/view/
.
Ogólny widok modułu renderującego metodę płatności jest następujący:
definiować( ['Magento_Checkout / js / widok / płatność / domyślna' ], funkcja(Składnik) { ' użyj ścisłego'; return Component.extend({ wartości domyślne: { szablon: ' % ścieżka do szablonu % ' }, // dodaj tutaj wymaganą logikę }); } );
Aby ta nowa metoda płatności mogła uzyskać dostęp do danych konfiguracji systemu , musi zaimplementować interfejs \Magento\Checkout\Model\ConfigProviderInterface
, a implementująca ją klasa musi zostać wstrzyknięta do dostawcy konfiguracji złożonej za pośrednictwem konfiguracji interfejsu DI.
Przykładowy plik .php
implementujący \Magento\Checkout\Model\ConfigProviderInterface
:
klasa MyCustomPaymentConfigProvider implementuje \Magento\Checkout\Model\ConfigProviderInterface { ... funkcja publiczna getConfig() { zwrócić [ // 'klucz' => 'wartość' par konfiguracji ]; } ... }
A jeśli Twoja nowa metoda płatności wymaga informacji o karcie kredytowej , powinieneś użyć renderera Magento, aby zaimplementować formularz karty kredytowej (znajdujący się w <Magento_Payment_module_dir>/view/frontend/web/js/view/payment/cc-form.js
).
Krok 2: Utwórz komponent .js
rejestrujący renderer
W katalogu modułów niestandardowych utwórz komponent .js UI, który rejestruje renderer metody płatności na liście rendererów. Musi znajdować się w katalogu <your_module_dir>/view/frontend/web/js/view/
.
Zawartość pliku jest jak poniżej:
definiować( ['uiComponent', 'Magento_Checkout / js / model / payment / renderer - lista'], funkcjonować( Składnik, lista rendererów ) { ' użyj ścisłego'; rendererList.push({ wpisz: ' % payment_method_code % ', składnik: ' % js_renderer_component % ' }, // inne renderery metod płatności, jeśli są wymagane ); /** W razie potrzeby dodaj logikę widoku */ return Component.extend({}); } );
Krok 3: Utwórz szablon dla składnika metody płatności
Utwórz nowy <your_module_dir>/view/frontend/web/template/<your_template>.html
w swoim katalogu modułów. Szablon może używać składni Knockout JS.
Np. szablon do renderowania metody płatności PayPal Express:
https://github.com/magento/magento2/blob/2.4/app/code/Magento/Paypal/view/frontend/web/template/payment/paypal-express.html
Krok 4: Zadeklaruj metodę płatności w układzie
- Utwórz nowy
<your_module_dir>/view/frontend/layout/checkout_index_index.xml
w swoim katalogu modułów - Dodaj następujący kod do tego pliku
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <ciało> <referenceBlock name="checkout.root"> <argumenty> <argument name="jsLayout" xsi:type="array"> <item name="komponenty" xsi:type="array"> <item name="do kasy" xsi:type="array"> <item name="dzieci" xsi:type="array"> <item name="kroki" xsi:type="array"> <item name="dzieci" xsi:type="array"> <item name="krok rozliczeniowy" xsi:type="array"> <item name="komponent" xsi:type="string">komponent ui</item> <item name="dzieci" xsi:type="array"> <item name="płatność" xsi:type="array"> <item name="dzieci" xsi:type="array"> <!-- Zadeklaruj dodatkowe składniki przed płatnością. START --> <item name="beforeMethods" xsi:type="array"> <item name="komponent" xsi:type="string">komponent ui</item> <item name="displayArea" xsi:type="string">przedMetodami</item> <item name="dzieci" xsi:type="array"> <item name="%your_feature_name%" xsi:type="array"> <item name="komponent" xsi:type="string">%ścieżka/do/twojego/feature_js_komponent%</item> </item> </item> </item> <!-- Zadeklaruj dodatkowe składniki przed płatnością. KONIEC --> <!-- Zadeklaruj metodę płatności (składnik, który rejestruje się na liście). START --> <item name="renders" xsi:type="array"> <item name="dzieci" xsi:type="array"> <item name="%nazwa grupy metod płatności%" xsi:type="array"> <!-- Przykład wartości: Magento_Paypal/view/frontend/web/js/view/payment--> <item name="component" xsi:type="string">%component_that_registers_payment_renderer%</item> <item name="metody" xsi:type="array"> <!-- Dodaj to, jeśli metoda płatności wymaga podania adresu rozliczeniowego--> <item name="%payment_method_code%" xsi:type="array"> <item name="isBillingAddressRequired" xsi:type="boolean">prawda</item> </item> </item> </item> </item> </item> <!-- Zadeklaruj metodę płatności (składnik, który rejestruje się na liście). KONIEC --> <!-- Zadeklaruj dodatkowe składniki po dokonaniu płatności. START --> <item name="afterMethods" xsi:type="array"> <item name="komponent" xsi:type="string">komponent ui</item> <item name="displayArea" xsi:type="string">afterMethods</item> <item name="dzieci" xsi:type="array"> <item name="%your_feature_name%" xsi:type="array"> <item name="komponent" xsi:type="string">%ścieżka/do/twojego/feature_js_komponent%</item> </item> </item> </item> <!-- Zadeklaruj dodatkowe składniki po dokonaniu płatności. KONIEC --> </item> </item> </item> </item> </item> </item> </item> </item> </item> </argument> </arguments> </referenceBlock> </body> </page>
(Tylko dla trybu produkcyjnego) Krok 5: Uruchom polecenia CLI
W trybie produkcyjnym musisz uruchomić kilka dodatkowych poleceń, takich jak:
php bin/magento setup:di:kompilacja php bin/magento setup:static-content:deploy php bin/magento cache: czyste
Pakiet rozszerzeń Magento 2 do kasy
Strona kasy jest zdecydowanie najważniejszym miejscem docelowym każdej witryny internetowej, która może albo przyciągnąć klienta do konsumenta, albo odepchnąć go od punktu sprzedaży.
Na szczęście to rozszerzenie Magento 2 Checkout pomaga bez wysiłku zoptymalizować kasę.
Sprawdź garnitur już teraz!
Zobacz też:
Jak dostosować proces realizacji transakcji w Magento 2?
Jak dodać kod rabatowy do kasy w Magento?