Magento 2 ödeme özel alan doğrulaması


11

Magento2 checkout - seçilen gönderim yöntemine bağlı olan özel ödeme alanım için doğrulama eklemenin en iyi yolu nedir?

Örneğin, LayoutProcessor'da doğrulama formlarını belirleyebileceğim adres formuna alan ekliyorum . Özel taşıyıcım seçilirse bu alanı zorunlu hale getirmem gerekiyor.

Amacım, özel alanım doldurulmazsa kullanıcının bir sonraki adıma geçmesini önlemektir. Sipariş yerleştirmeden önce özel doğrulama ekleyebildiğimi biliyorum (İnceleme ve Ödemeler adımı), ancak daha önce bir adım doğrulamam gerekiyor.


Merhaba, bunu nasıl çözdün?
simonthesorcerer

@ maciej-domski Bunu çözdünüz mü?
Ranjit Shinde


@Maciej Domski cevabımı kontrol et.i onay e-postası için denedim ve çalışma kodu
Ketan Borada

Yanıtlar:


1

bunu deneyin, LayoutProcessor eklentisinde aşağıdaki gibi 'validation' => ['zorunlu giriş' => true] ekleyin

'config' => [
                'customScope' => 'shippingAddress',
                'template' => 'ui/form/field',
                'elementTmpl' => 'ui/form/element/input',
                'options' => [],
                'id' => 'custom_field'
            ],
            'dataScope' => 'customfield',
            'label' => 'custom field # :',
            'provider' => 'checkoutProvider',
            'validation' => ['required-entry' => true],
            'visible' => true,
            'sortOrder' => 250,
            'id' => 'custom_field'

0

evet Magento_Checkout / js / model / shipping-save-işlemci / default.js değiştirerek mümkündür

Ben confirm emailaynı olması gereken bir alan ekledim emailve kasada gerekli alan, ihtiyaca göre özelleştirebilirsiniz.

app\code\Ketan\Checkout\view\frontend\requirejs-config.js

var config = {
    "map": {
       "*": {
           "Magento_Checkout/js/model/shipping-save-processor/default" : "Ketan_Checkout/js/shipping-save-processor"
       }
   }
}

js uzatmak file app\code\Ketan\Checkout\view\frontend\web\js\shipping-save-processor.js

/*
* *
*  @author DCKAP Team
*  @copyright Copyright (c) 2018 DCKAP (https://www.dckap.com)
*  @package Dckap_CustomFields
*/
define(
   [
       'ko',
       'Magento_Checkout/js/model/quote',
       'Magento_Checkout/js/model/resource-url-manager',
       'mage/storage',
       'Magento_Checkout/js/model/payment-service',
       'Magento_Checkout/js/model/payment/method-converter',
       'Magento_Checkout/js/model/error-processor',
       'Magento_Checkout/js/model/full-screen-loader',
       'Magento_Checkout/js/action/select-billing-address',
       'jquery'
   ],
   function (
       ko,
       quote,
       resourceUrlManager,
       storage,
       paymentService,
       methodConverter,
       errorProcessor,
       fullScreenLoader,
       selectBillingAddressAction,
       $
   ) {
       'use strict';

       return {
           saveShippingInformation: function () {
               var payload;

               var username = $("#customer-email").val();
               var conformusername = $("#conformusername").val();

              /*============ Customization Start =============*/
              //if(quote.shippingMethod().method_code=='flaterate'){ // Check if flaterate is selected
                if(conformusername != username){
                  $("#conformusername-error").show(); // show hidden message
                  $("#conformusername").focus();      // move cursor to the point
                  return false;
                 }
              // }
              /*============ Customization End =============*/


               if (!quote.billingAddress()) {
                   selectBillingAddressAction(quote.shippingAddress());
               }
               payload = {
                   addressInformation: {
                       shipping_address: quote.shippingAddress(),
                       billing_address: quote.billingAddress(),
                       shipping_method_code: quote.shippingMethod().method_code,
                       shipping_carrier_code: quote.shippingMethod().carrier_code
                   }
               };
               fullScreenLoader.startLoader();

               return storage.post(
                   resourceUrlManager.getUrlForSetShippingInformation(quote),
                   JSON.stringify(payload)
               ).done(
                   function (response) {
                       quote.setTotals(response.totals);
                       paymentService.setPaymentMethods(methodConverter(response.payment_methods));
                       fullScreenLoader.stopLoader();
                   }
               ).fail(
                   function (response) {
                       errorProcessor.process(response);
                       fullScreenLoader.stopLoader();
                   }
               );
           }
       };
   }
);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.