Magento 2'de Ödeme İşlemi Nasıl Özelleştirilir
Yayınlanan: 2018-04-23İçindekiler
Magento 2'de, ödeme süreci daha hızlı ve daha kolay bir deneyim için yeniden tasarlandı. Ödeme sayfası, müşteriyi sürecin 2 kolay adımında yönlendirir. Hesaplarına giriş yapan müşteriler, bilgilerin çoğu zaten hesaplarında olduğundan ödeme işlemini hızlı bir şekilde tamamlayabilir. Ödeme sürecinin ilk adımı, müşterinin gönderim adresi bilgilerini doldurması ve gönderim yöntemini seçmesidir. İkinci adımda, müşteri ödeme yöntemini seçer ve satın alma işlemini tamamlamak için kuponları uygular.
Magento 2'nin varsayılan ödemesini özelleştirin
Varsayılan ödemeyi kendi yönteminizle özelleştirmek için yeni bir ödeme adımı ekleyebilir veya mevcut bir ödemenin görünümünü değiştirebilirsiniz.
Yeni bir ödeme adımı ekleyin
Özel bir ödeme adımı ekleyebilirsiniz, bunun bir UI bileşeni olarak uygulanması gerekir. Uyumluluk, yükseltilebilirlik ve kolay bakım için, varsayılan Magento kodunu düzenlemeyin, özelleştirmelerinizi ayrı bir modüle ekleyin.
1. Adım: Ödeme adımı bileşeninin görünüm bölümünü oluşturun
Yeni ödeme adımının görünüm bölümünü oluşturmak için:
- Bir modül dizini ekleyin. Tüm özel dosyalar orada saklanmalıdır. Ödeme özelleştirmenizin doğru şekilde uygulanabilmesi için özel modülünüzün
Magento_Checkout
modülüne bağlı olması gerekir. Özel modül adınız içinUi
kullanmayın, çünkü yolları belirtirken gerekli olan%Vendor%_Ui
gösterimi sorunlara neden olabilir. - Görünüm modelini uygulayan
.js
dosyasını oluşturun. - Bileşen için bir
.html
şablonu oluşturun.
Her adım aşağıda ayrıntılı olarak açıklanmıştır:
1. Yeni adımı uygulayan JavaScript dosyasını ekleyin
UI bileşeni olarak yeni bir ödeme adımı uygulanmalıdır. Yani, JavaScript uygulaması bir JavaScript modülü olmalıdır.
Dosya, <your_module_dir>/view/frontend/web/js/view
dizini altında saklanmalıdır.
<your_module_dir>
gösterimi, kök dizinden modül dizininizin yolunu gösterir. Genellikle aşağıdakilerden biri olacaktır: app/code/<YourVendor>/<YourModule>
veya vendor/<yourvendor>/module-<module>-<name>
.
Yorumları içeren bir my-step-view.js
örneği aşağıdadır:
tanımlamak( ['ko', 'uiComponent', 'alt çizgi', 'Magento_Checkout / js / model / adım - gezgin'], işlev( ko, Bileşen, _, stepNavigator ) {' sıkı kullanın'; /** * * adım adım – bileşenin .html şablonunun adıdır, * <Vendor>_<Module> – modül dizininizin adıdır. * */ Component.extend({ varsayılanlar: { şablon: ' < Satıcı > _ < Modül > /mystep' }, // adımı görüntülemek için mantığınızı buraya ekleyin, isVisible: ko.observable(true), /** * * @İadeler {*} */ başlat: function() { this._super(); // adımınızı kaydedin stepNavigator.registerAdım( //adım kodu, bileşen şablonunda adım içerik kimliği olarak kullanılacak 'adım_kodu', // adım takma adı hükümsüz, //adım başlık değeri 'Adım Başlığı', // adımı görüntülerken veya adımı gizlerken mantıkla gözlemlenebilir özellik this.isGörünür, _.bind(bu.gezin, bu), /** * sıralama değeri * 'sıralama değeri' < 10: adım, sevkiyat adımından önce görüntülenir; * 10 < 'sipariş değerini sırala' < 20 : sevkiyat ve ödeme adımı arasındaki adım görüntülenir * 'sıralama değeri' > 20 : ödeme adımından sonra adım görüntülenir */ 15 ); bunu iade et; }, /** * Gezinme () yöntemi, ödeme adımı arasındaki gezinmeden sorumludur * ödeme sırasında. Özel mantık ekleyebilirsiniz, örneğin bazı koşullar * özel adımınıza geçmek için */ gezinmek: function() { }, /** * @boş döndürür */ navigasyonToNextStep: function() { stepNavigator.next(); } }); } );
2. .html şablonunu ekleyin
Modül dizininde, bileşen için .html
şablonunu ekleyin. <your_module_dir>/view/frontend/web/template
dizini altında bulunmalıdır.
Örnek bir mystep.html
aşağıdaki gibidir:
<!–.js dosyasındaki 'step_code' değeri kullanılmalıdır–> <li data-bind="fadeVisible: isVisible"> <div class="step-title" data-bind="i18n: 'Adım Başlığı'" data-role="title"></div> <div class="step-content" data-role="content"> <form data-bind="gönder: navigasyonToNextStep" novalidate="novalidate"> <div class="eylemler-araç çubuğu"> <div class="birincil"> <button data-role="opc-continue" type="submit" class="düğme eylemi birincil devam ediyor"> <span><!– ko i18n: 'Sonraki'–><!– /ko –></span> </button> </div> </div> </form> </div> </li>
2. Adım: Adımınızı Ödeme sayfası düzenine ekleyin
Sayfada görüntülenecek yeni adım için, checkout_index_index.xml
içinde tanımlanan Checkout sayfa düzeninde bildirmeniz gerekir.
Bu nedenle, aşağıdaki konuma genişleyen bir checkout_index_index.xml
düzen dosyası eklemeniz gerekir: <your_module_dir>/view/frontend/layout/checkout_index_index.xml
Örnek bir checkout_index_index.xml
aşağıdaki gibidir:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="checkout.root"> <argümanlar> <argument name="jsLayout" xsi:type="dizi"> <item name="bileşenler" xsi:type="dizi"> <item name="checkout" xsi:type="array"> <item name="çocuklar" xsi:type="array"> <item name="adımlar" xsi:type="dizi"> <item name="çocuklar" xsi:type="array"> <!– Eklediğiniz yeni adım –> <item name="my-new-step" xsi:type="array"> <item name="component" xsi:type="string">%Vendor%_%Module%/js/view/my-step-view</item> <!–Adım içeriğini sevkiyat adımından önce görüntülemek için "sortOrder" değeri < 1–> olmalıdır. <!–Gönderim adımı ile ödeme adımı 1 arasındaki adım içeriğini görüntülemek için < "sortOrder" < 2 –> <!–SortOrder ödeme adımından sonra adım içeriğini görüntülemek için >2 –> <item name="sortOrder" xsi:type="string">2</item> <item name="çocuklar" xsi:type="array"> <!–adımınız için alt bileşen bildirimini buraya ekleyin–> </ite> </ite> </ite> </ite> </ite> </ite> </ite> </argüman> </argümanlar> </referenceBlock> </body> </sayfa>
Magento 2 Ödeme Özel Alanı
$119,00
Magento 2 Tek Adımda Ödeme
$99 $119,00
Mevcut bir ödeme görünümünü özelleştirin
Magento uygulamalarında, UI bileşenleri kullanılarak ödeme gerçekleştirilir. Bir bileşenin JavaScript uygulamasını veya şablonunu değiştirerek, bir bileşen ekleyerek, kaldırarak veya devre dışı bırakarak her adımı özelleştirebilirsiniz.
1. Adım: Bileşenin .js uygulamasını ve şablonunu değiştirin
Bileşen oluşturma için kullanılan .js
uygulamasını ve şablonu değiştirmek için, yeni dosyaları ödeme sayfası düzeninde bildirmeniz gerekir. Bunu yapmak için aşağıdaki adımları izleyin:
- Özel modül dizininizde aşağıdaki yeni dosyayı oluşturun:
<your_module_dir>/view/frontend/layout/checkout_index_index.xml
. (Ödeme özelleştirmenizin doğru şekilde uygulanabilmesi için özel modülünüzün Magento_Checkout modülüne bağlı olması gerekir.) - Bu dosyaya aşağıdakileri ekleyin:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="checkout.root"> <argümanlar> <argument name="jsLayout" xsi:type="dizi"> <!– Kişiselleştirmeniz burada olacak –> … </argüman> </argümanlar> </referenceBlock> </body> </sayfa>
-
<Magento_Checkout_module_dir>/view/frontend/layout/checkout_index_index.xml
dosyasında, özelleştirmeniz gereken bileşeni bulun. İlgili düğümü ve tüm üst düğümleri<argument>
değerine kadar kopyalayın. Bunları değiştirmeyeceğiniz için, ebeveyn düğümlerinin tüm niteliklerini ve değerlerini bırakmanıza gerek yoktur. - Bileşenin
.js
dosyasına, şablonuna veya diğer herhangi bir özelliğine giden yolu değiştirin.
Örnek:
Magento_Shipping modülü, Gönderi adımına Gönderi Politikası bilgisine bağlantı olarak oluşturulan bir bileşen ekler:
<Magento_Shipping_module_dir>/view/frontend/layout/checkout_index_index.xml
aşağıdaki gibi görünüyor:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="checkout.root"> <argümanlar> <argument name="jsLayout" xsi:type="dizi"> <item name="bileşenler" xsi:type="dizi"> <item name="checkout" xsi:type="array"> <item name="çocuklar" xsi:type="array"> <item name="adımlar" xsi:type="dizi"> <item name="çocuklar" xsi:type="array"> <item name="shipping-step" xsi:type="array"> <item name="çocuklar" xsi:type="array"> <item name="shippingAddress" xsi:type="dizi"> <item name="çocuklar" xsi:type="array"> <item name="before-shipping-method-form" xsi:type="array"> <item name="çocuklar" xsi:type="array"> <item name="shipping_policy" xsi:type="dizi"> <item name="component" xsi:type="string">Magento_Shipping/js/view/checkout/shipping/shipping-policy</item> </ite> </ite> </ite> </ite> </ite> </ite> </ite> </ite> </ite> </ite> </ite> </ite> </argüman> </argümanlar> </referenceBlock> </body> </sayfa>
2. Adım: Yeni bileşeni ödeme sayfası düzenine ekleyin
Herhangi bir UI bileşeni, checkout_index_index.xml
, bir ödeme adımı bileşeninin eklenme şekline benzer şekilde eklenir.
Ana bileşen tarafından doğru bir şekilde oluşturulabilmesi için bir bileşen bildirdiğinizden emin olun. Bir üst bileşen genel bir kullanıcı arabirimi bileşeniyse ( uiComponent
diğer adıyla başvurulur), alt bileşenleri herhangi bir koşul olmadan oluşturulur. Ancak bir ana bileşen, genel bir UI bileşenlerinin bir uzantısıysa, alt öğelerin oluşturulması belirli bir şekilde kısıtlanabilir. Örneğin, bir bileşen yalnızca belirli bir displayArea
gelen çocukları oluşturabilir.
Adım 3 : Bir bileşeni devre dışı bırakın
checkout_index_index.xml
dosyanızdaki bileşeni devre dışı bırakmak için aşağıdaki talimatları kullanın:
<item name="%the_component_to_be_disabled%" xsi:type="array"> <item name="config" xsi:type="array"> <item name="componentDisabled" xsi:type="boolean">true</item> </ite> </ite>
4. Adım: Bir bileşeni kaldırın
Düzen oluşturma işleminden bir bileşeni kaldırmak için, \Magento\Checkout\Block\Checkout\LayoutProcessor::process
yöntemi için bir eklenti oluşturmanız gerekir. Eklentinizde, çalışma zamanında ilgili düzen düğümlerini kaldırarak çevre yöntemini uygulayın.
Aşağıdaki örnek, bir bileşeni kaldıran çevresinde yöntemin bir örneğidir:
unset($jsLayout['components']['checkout']['children']['adımlar'][%path_to_target_node%]); //%path_to_target_node%, checkout_index_index.xml içindeki bileşenin düğümünün yoludur $jsLayout döndür;
(Bu örneği kodunuzda kullanmak istiyorsanız, %path_to_target_node%
yer tutucusunu gerçek değerle değiştirin.)
*Bir bileşeni devre dışı bırakma veya bir bileşeni kaldırma: Bir bileşeni devre dışı bırakırsanız, yüklenir ancak işlenmez. Bir bileşeni kaldırırsanız yüklenmez.
İlgili Mesajlar:
Magento'da Ödemeye İndirim Kodu Nasıl Eklenir
Magento 2 Checkout'a Özel Ödeme Nasıl Eklenir