magento / magento2

Prior to making any Submission(s), you must sign an Adobe Contributor License Agreement, available here at: https://opensource.adobe.com/cla.html. All Submissions you make to Adobe Inc. and its affiliates, assigns and subsidiaries (collectively “Adobe”) are subject to the terms of the Adobe Contributor License Agreement.
http://www.magento.com
Open Software License 3.0
11.56k stars 9.32k forks source link

Magento 2 REST API / UPDATE CUSTOMER (The %fieldName value is invalid. Set the correct value and try again. / fieldName": "default_billing") #38878

Open dariovranjkovic opened 4 months ago

dariovranjkovic commented 4 months ago

Preconditions and environment

Steps to reproduce

  1. Send request for update customer to rest API URL: https://shop.com/rest/V1/customers/3420 Body: { "customer": { "firstname": "Company Name AB", "lastname": "Location", "addresses": [ { "defaultShipping": "false", "defaultBilling": "false", "firstname": "Company Name AB", "lastname": "-", "postcode": "XXXXX", "street": [ "Street Address" ], "city": "CITY", "telephone": "+XX XXX XXX XXX", "countryId": "XX" }, { "defaultShipping": "true", "defaultBilling": "true", "firstname": "Company Name AB", "lastname": "-", "postcode": "XXXXX", "street": [ "Street Address" ], "city": "CITY", "telephone": "+XX XXX XXX XXX", "countryId": "XX" } ] } }

or

{ "customer": { "firstname": "Company Name AB", "lastname": "Location", "addresses": [ { "default_shipping": "false", "default_billing": "false", "firstname": "Company Name AB", "lastname": "-", "postcode": "XXXXX", "street": [ "Street Address" ], "city": "CITY", "telephone": "+XX XXX XXX XXX", "countryId": "XX" }, { "default_shipping": "true", "default_billing": "true", "firstname": "Company Name AB", "lastname": "-", "postcode": "XXXXX", "street": [ "Street Address" ], "city": "CITY", "telephone": "+XX XXX XXX XXX", "countryId": "XX" } ] } }

Expected result

Updated customer

Actual result

{ "message": "The %fieldName value is invalid. Set the correct value and try again.", "parameters": { "fieldName": "default_billing" } }

Additional information

It was working before upgrade on version 2.4.3 but now is not working on version 2.4.7

Release note

No response

Triage and priority

m2-assistant[bot] commented 4 months ago

Hi @dariovranjkovic. Thank you for your report. To speed up processing of this issue, make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, Add a comment to the issue:

m2-assistant[bot] commented 4 months ago

Hi @engcom-Dash. Thank you for working on this issue. In order to make sure that issue has enough information and ready for development, please read and check the following instruction: :point_down:


frostitution commented 4 months ago

We are having the same issue on 2.4.6-p5, we figured we were pushing data incorrectly, but it may be a bug with Magento itself?

m2-assistant[bot] commented 4 months ago

Hi @engcom-Delta. Thank you for working on this issue. In order to make sure that issue has enough information and ready for development, please read and check the following instruction: :point_down:

engcom-Delta commented 4 months ago

Hi @dariovranjkovic ,

Verified the issue on 2.4.7 and it is reproducible.

Steps to reproduce:-

1.Send request for update customer to rest API

Screenshot 2024-06-28 at 9 00 43 PM
engcom-Delta commented 4 months ago

Hi @dariovranjkovic ,

Verified this issue on 2.4.3 and 2.4.7 and it is reproducible on 2.4.7.

Hence confirming this issue.

Steps to reproduce:-

1.Send request for update customer to rest API

2.4.3 ,working fine

Screenshot 2024-07-01 at 7 24 04 PM

2.4.7, error

Screenshot 2024-07-01 at 7 26 48 PM
github-jira-sync-bot commented 4 months ago

:white_check_mark: Jira issue https://jira.corp.adobe.com/browse/AC-12318 is successfully created for this GitHub issue.

m2-assistant[bot] commented 4 months ago

:white_check_mark: Confirmed by @engcom-Delta. Thank you for verifying the issue.
Issue Available: @engcom-Delta, You will be automatically unassigned. Contributors/Maintainers can claim this issue to continue. To reclaim and continue work, reassign the ticket to yourself.

github-jira-sync-bot commented 4 months ago

:x: Cannot export the issue. This GitHub issue is already linked to Jira issue(s): https://jira.corp.adobe.com/browse/AC-12318

shmVan commented 4 months ago

@magento I am working on this

DanieliMi commented 3 months ago

This issue was introduced in 0b600deeef7853dcc3243725e77dc6e412bc8b65. It breaks the backwards compatibility of the customer api.

Following Version is affected too: 2.4.5-p9

amenk commented 3 months ago

Worth mentioning, that this B/C break seems to have slipped into the security-upgrade from 2.4.5-p8 -> 2.4.5-p9 with the commit https://github.com/magento/magento2/commit/6fedf5c513623ecc8a1a580501a49a1331e68568

The question is, if this was by mistake and if we can revert it after the security update - or if this patch actually fixes a security problem.

HeRovaZy commented 1 month ago

@shmVan Is there already a patch available for this issue? We're running into the same problem.

barryvdh commented 3 weeks ago

We have a related issue, where it returns:

{"message":"The %fieldName value is invalid. Set the correct value and try again.","parameters":{"fieldName":"default_shipping"}}

This is when we update the customer with 1 address as both default shipping and billing, and leave out the current shipping address.

vmartynovexo commented 2 weeks ago

Having same issue here. Trying save customer and getting "The default_billing value is invalid. Set the correct value and try again.". I have 1 address assigned as billing and shipping After debugging i see that function \Magento\Customer\Model\ResourceModel\CustomerRepository::validateDefaultAddress throwing that exception because $customer->getAddresses() return current address without id so NULL !== ID.

Screenshot 2024-10-29 at 13 05 00