fix(magento-store): allow empty/false custom-attribute values to pass through#2625
Merged
Merged
Conversation
… through CustomAttributesField_to_AttributeValueInputs was filtering out any falsy form value (`if (!value) return`), so consumers couldn't clear a previously-set attribute by picking the empty-string option of a SELECT (the canonical "-- None --" pattern) — the mutation simply omitted the attribute and Magento kept the old value. Same problem for unchecking a BOOLEAN attribute the customer had checked. Skip only when value is `undefined` (the attribute was never touched on the form). Pass empty strings and `false` booleans through so the backend can interpret them as "clear this attribute". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: 539b353 The changes in this PR will be included in the next version bump. This PR includes changesets to release 86 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
CustomAttributesField_to_AttributeValueInputsfiltered out any falsy form value withif (!value) return, so:falsevalue got swallowed.Skip only when the value is
undefined(the attribute was never touched on the form). Pass empty strings andfalsebooleans through so the backend can interpret them as "clear this attribute".Why
The Magento
updateCustomerV2mutation handlesvalue: ""correctly when the consuming module's data patch is set up for it (Reach Digital's clubportaal module does exactly this in jumbosports — empty string from the SELECT clears theclubcustomer attribute, full URL on first set). The bug was that the storefront never sent the empty value through, so the user's "-- None --" choice silently no-op'd.Test plan
'', change from a non-empty value back to that option, save → the mutation includes{ attribute_code: "<code>", value: "" }and Magento clears the attribute{ attribute_code: "<code>", value: "0" }🤖 Generated with Claude Code