1 - Dodaję atrybut eav do adresu klienta
$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 - Dodałem atrybut rozszerzenia w moim module
<extension_attributes for="Magento\Quote\Api\Data\AddressInterface">
<attribute code="reference" type="string"/>
</extension_attributes>
W mojej Requjs-config.js zastępuję niektóre pliki javascript, aby dodać pole referencyjne
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 - Potwierdzam, że pole referencyjne wysyła adres
4 - Kiedy wysyłam informacje o wysyłce (kliknij Dalej), pojawia się następujący błąd: „Właściwość” Odwołanie ”nie ma odpowiedniego setera w klasie„ Magento \ Quote \ Api \ Data \ AddressInterface ”.”
Już wykonuję: - Wyczyść i opróżnij pamięć podręczną Magento - Uruchom konfigurację: uaktualnij - Uruchom konfigurację: di: kompiluj
Co robię źle?
Odpowiedzi:
Ustawienie atrybutów w skrypcie konfiguracji eav lub aktualizacji działa najlepiej i automatycznie doda do formularzy, o które prosisz o dodanie.
Ten kod zostanie dodany do formularzy i nie będzie problemu z zapisaniem ani przejściem do następnego kroku
źródło
Spróbuj ustawić go za pomocą niestandardowych atrybutów.
Przykład:
źródło
jak przekazać atrybut w żądaniu? możesz sprawdzić konsolę przeglądarki w ten sposób
Jest prawidłowe. Możesz usunąć folder var i wygenerowany folder var / cache var / page_cache var / view_proceed i wygenerowany / .
źródło