1 - J'ajoute un attribut eav à customer_address
$attributesInfo = [
'reference' => [
'label' => 'Reference',
'type' => 'varchar',
'input' => 'text',
'position' => 100,
'visible' => true,
'required' => false,
],
];
foreach ($attributesInfo as $attributeCode => $attributeParams) {
$customerSetup->addAttribute('customer_address', $attributeCode, $attributeParams);
}
2 - J'ai ajouté l'attribut d'extension dans mon module
<extension_attributes for="Magento\Quote\Api\Data\AddressInterface">
<attribute code="reference" type="string"/>
</extension_attributes>
Dans mon requirejs-config.js, je remplace un fichier javascript pour ajouter un champ de référence
var config = {
"map": {
"*": {
"Magento_Checkout/js/model/shipping-save-processor/default" : "Agr_Checkout/js/shipping-save-processor-default-override",
"Magento_Customer/js/model/customer/address" : "Agr_Checkout/js/model/customer/address",
"Magento_Checkout/js/model/address-converter" : "Agr_Checkout/js/model/address-converter",
"Magento_Checkout/js/model/new-customer-address" : "Agr_Checkout/js/model/new-customer-address"
}
}
3 - Je confirme que le champ de référence envoie une adresse
4 - Lorsque j'envoie mes informations d'expédition (cliquez sur Suivant), j'obtiens cette erreur: "Property" Reference "n'a pas de setter correspondant dans la classe" Magento \ Quote \ Api \ Data \ AddressInterface "."
Je fais déjà: - Nettoyer et vider le cache magento - Exécuter la configuration: mise à niveau - Exécuter la configuration: di: compiler
Qu'est-ce que je fais mal?
Réponses:
La configuration des attributs dans un script de configuration ou de mise à niveau d'eav fonctionne mieux et s'ajoutera automatiquement aux formulaires auxquels vous souhaitez l'ajouter.
Ce code s'ajoutera ici aux formulaires et il n'y aura aucun problème d'enregistrement ou de passer à l'étape suivante
la source
Essayez de le définir via des attributs personnalisés.
Exemple:
la source
comment passez-vous l'attribut dans la demande? vous pouvez vérifier la console du navigateur comme ça
C'est correct. Vous pouvez supprimer le dossier var et le dossier généré var / cache var / page_cache var / view_proceed et généré / .
la source