8

Ref url - Shipping address custom attribute value not getting in RateRequest object in Carrier Model in magento2.x

enter image description here Above link in working perfect in magento2.2.x but not in magento2.3.1. I checked magento2.3.1 in they have changed something with custom_attribute code.

the issue is reproduce Step below 1. Add to cart product after going checkout Mobile Type select - Local Estimation shipping rate is - 5 USD and address array passed like

estimate-shipping-methods - address:{ city: "GA" country_id: "US" custom_attributes: [0: {attribute_code: "mob_type", value: "Local"}] firstname: "Test" lastname: "Dev" postcode: "30049" ..... 
  1. Once back to checkout cart page change postcode I am getting an error -

Error occurred during "custom_attributes" processing. A custom attribute is specified with a missing attribute code. Verify the code and try again.

I checked post address in estimate-shipping-methods api and found data like

estimate-shipping-methods - address:{ city: "GA" country_id: "US" custom_attributes: [0: {attribute_code: "0", value: {attribute_code: "mob_type", value: "Local"}}] firstname: "Test" lastname: "Dev" postcode: "30049" ..... 

both custom_attributes arrays is different - so i checked core code and found custom_attributes: [0: {attribute_code: "0", value: {attribute_code: "mob_type", value: "Local"}}] is worng. attribute_code: "0" is extra adding so How can i fix this issue anyone have idea?

8
  • Could you find a solution? Commented Nov 21, 2019 at 9:25
  • Yes you can check my profile in answer section. Commented Nov 22, 2019 at 10:28
  • I couldn't find it. Can you just give me the link? Commented Nov 22, 2019 at 22:29
  • magento.stackexchange.com/questions/216191/… Commented Nov 24, 2019 at 7:44
  • I guess this is not related my friend. Commented Nov 24, 2019 at 22:24

1 Answer 1

3

This appears to be a core bug to which I've opened an issue on github https://github.com/magento/magento2/issues/27505.

Currently I am using the following hotfix to allow checkout.

Index: vendor/magento/module-checkout/view/frontend/web/js/model/address-converter.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- vendor/magento/module-checkout/view/frontend/web/js/model/address-converter.js (revision 176ba2b75e443afb7f752ee28e7b751afec84bd3) +++ vendor/magento/module-checkout/view/frontend/web/js/model/address-converter.js (date 1585595509144) @@ -64,6 +64,15 @@ addressData['custom_attributes'] = _.map( addressData['custom_attributes'], function (value, key) { + + var alreadyBeenMapped = value instanceof Object + && value.hasOwnProperty('attribute_code') + && value.hasOwnProperty('value'); + + if (alreadyBeenMapped) { + return value; + } + return { 'attribute_code': key, 'value': value 
1
  • Magento will never accept own mistakes. Commented May 18, 2020 at 4:54

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.