J'ai ajouté avec succès une méthode d'expédition personnalisée comme celle-ci:
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 / Espace de noms / Module / Modèle / 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;
}
Il apparaît sur la page de paiement, mais je souhaite afficher les données d'entrée de la zone de texte personnalisée lorsque l'utilisateur choisit ma méthode d'expédition personnalisée, et je peux enregistrer les données de la zone de texte d'entrée personnalisée.
voici à quoi je veux que ça ressemble:
Réponses:
Afin d'afficher un champ de saisie personnalisé après avoir sélectionné votre méthode d'expédition personnalisée, vous devez ajouter un bloc js en vous abonnant pour sélectionner l'événement de méthode:
Ajouter un phtml personnalisé à la mise en page checkout_index_index.xml
Ajoutez ensuite le bloc suivant à votre phtml:
Avec le code ci-dessus, vous ajouterez l'entrée que vous souhaitez sous votre méthode d'expédition personnalisée.
Après cela, vous devriez avoir à créer un plugin pour enregistrer votre valeur personnalisée.
J'espère que ça t'aide. Cordialement, Pablo
la source