Agregué con éxito un método de envío personalizado como este:
app / etc / config.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
<default>
<carriers>
<lime>
<active>1</active>
<allowed_methods>delivery</allowed_methods>
<methods>delivery</methods>
<type>NAMESPACE</type>
<sallowspecific>0</sallowspecific>
<model>Namespace\Module\Model\Carrier</model>
<name>Namespace_Module custom Shipping</name>
<title>Namespace_Module custom Shipping</title>
<handling_type>F</handling_type>
</lime>
</carriers>
</default>
</config>
app / code / Namespace / Module / Model / Carrier.php
public function collectRates(RateRequest $request)
{
if (!$this->getConfigFlag('active')) {
return false;
}
$result = $this->_rateResultFactory->create();
$method = $this->_rateMethodFactory->create();
$method->setCarrier('HILO');
$method->setCarrierTitle('HILO');
$method->setMethod('Fast');
$method->setMethodTitle('Fast');
$amount = $this->getConfigData('price');
$method->setPrice($amount);
$method->setCost($amount);
$result->append($method);
return $result;
}
Aparece en la página de pago, pero quiero mostrar datos de entrada del área de texto personalizado cuando el usuario elige mi método de envío personalizado, y puedo guardar los datos del área de texto de entrada personalizada.
así es como quiero que se vea:
Respuestas:
Para mostrar un campo de entrada personalizado después de seleccionar su método de envío personalizado, debe agregar un bloque js para suscribirse al evento de método seleccionado:
Agregue un phtml personalizado al diseño checkout_index_index.xml
Luego agrega el siguiente bloque a tu phtml:
Con el código anterior, agregará la entrada que desee debajo de su método de envío personalizado.
Después de eso, deberías crear un complemento para guardar tu valor personalizado.
Espero que te ayude. Saludos, Pablo
fuente