UPSTREAM FIX

magento2-39333: Saving a product linked to a product with SKU 0

Community fix magento2-39333 merged into magento/magento2 on 2025-10-29, released in 2.4.9; applies cleanly to 6 releases from 2.4.8 to 2.4.8-p5.

Fixes the error when saving a product linked to a product with SKU 0 edited

Pull request title
Invalid SKU Handling for Linked Products in Magento
Pull request
magento/magento2#39333
Issues
#39329 human
Author
@Syamsg
Merged
2025-10-29
Fixed in
2.4.9
Reported on
—
Categories
Admin, Catalog/Product
Components
magento/module-catalog

Labels

Area
Product
Component
UiComponents
Priority
P2
Severity
—
Reported on (labels)
2.4.x

Issue

Title and steps come from the upstream issue and pull request.

Description

The system throws an error stating that the linked product SKU is invalid, preventing any changes to the product.

Steps to reproduce

1. Create a New Product:
- Navigate to Catalog > Products.
- Click on Add Product.
- Fill in the necessary details, and in the SKU field, enter 0.
- Save the product.

2. Edit an Existing Product:
- Go back to Catalog > Products.
- Choose any existing product you wish to link the previously created product to.
- Scroll down to the Linked Products section (Related Products, Up-Sells, or Cross-Sells).

3. Add the Product with SKU "0":
- In the linked products section, search for the product you created with the SKU of 0.
- Add this product as a linked product.

4. Save the Main Product:
- Click on Save to save the changes made to the main product.

5. Observe the Error:
- After attempting to save, an error message will appear: "The linked product SKU is invalid. Verify the data and try again."
![image](https://github.com/user-attachments/assets/676c19b7-83f2-4990-8ff1-7b0777fdb84d)

![image](https://github.com/user-attachments/assets/12e4465a-02ee-439d-a6ff-39dbd04c784b)

Expected result

The system should allow the linking of the product with a SKU of "0" without throwing an error, or it should prevent saving a product with "0" as a SKU outright.

Actual result

The system throws an error stating that the linked product SKU is invalid, preventing any changes to the product.

Taken from the upstream issue.

Error signatures

Code match per tag

Each tag was checked with git apply --check against that tag's files. A clean match means the change applies; it is not a test result. Tags that already contain the fix are marked.

LineCode match per tagTests
2.4.6
2.4.6 conflict 2.4.6-p1 conflict 2.4.6-p2 conflict 2.4.6-p3 conflict 2.4.6-p4 conflict 2.4.6-p5 conflict 2.4.6-p6 conflict 2.4.6-p7 conflict 2.4.6-p8 conflict 2.4.6-p9 conflict 2.4.6-p10 conflict 2.4.6-p11 conflict 2.4.6-p12 conflict 2.4.6-p13 conflict 2.4.6-p14 conflict 2.4.6-p15 conflict
2.4.6: no test data 2.4.6-p1: no test data 2.4.6-p2: no test data 2.4.6-p3: no test data 2.4.6-p4: no test data 2.4.6-p5: no test data 2.4.6-p6: no test data 2.4.6-p7: no test data 2.4.6-p8: no test data 2.4.6-p9: no test data 2.4.6-p10: no test data 2.4.6-p11: no test data 2.4.6-p12: no test data 2.4.6-p13: no test data 2.4.6-p14: no test data 2.4.6-p15: no test data
2.4.7
2.4.7 conflict 2.4.7-p1 conflict 2.4.7-p2 conflict 2.4.7-p3 conflict 2.4.7-p4 conflict 2.4.7-p5 conflict 2.4.7-p6 conflict 2.4.7-p7 conflict 2.4.7-p8 conflict 2.4.7-p9 conflict 2.4.7-p10 conflict
2.4.7: no test data 2.4.7-p1: no test data 2.4.7-p2: no test data 2.4.7-p3: no test data 2.4.7-p4: no test data 2.4.7-p5: no test data 2.4.7-p6: no test data 2.4.7-p7: no test data 2.4.7-p8: no test data 2.4.7-p9: no test data 2.4.7-p10: no test data
2.4.8
2.4.8 clean 2.4.8-p1 clean 2.4.8-p2 clean 2.4.8-p3 clean 2.4.8-p4 clean 2.4.8-p5 clean
2.4.8: no test data 2.4.8-p1: no test data 2.4.8-p2: no test data 2.4.8-p3: no test data 2.4.8-p4: no test data 2.4.8-p5: no test data
2.4.9
2.4.9 conflictcontains the fix
2.4.9: no test data

Triage

Model @cf/cloudflare/clef. Probability this is a bug fix: 98.0%. Probability it is security relevant: 0.6%.

Show the model's answers and probabilities
QuestionAnswerProbabilitiesConfidence
Change kindbugfixbugfix 97.1%, refactor 1.2%, feature 0.5%, tests_only 0.5%, dependency 0.4%, docs_only 0.4%93.2%
Areacatalogcatalog 87.3%, admin 7.7%, framework 1.2%73.5%
Reported versionunspecifiedunspecified 38.4%, 2.4.8 2.1%, 2.4.9 2.0%14.3%
Scope0.19 of 20 84.7%, 1 11.4%, 2 3.9%59.9%
Risk0.30 of 20 75.1%, 1 20.2%, 2 4.7%41.1%
Worth backporting1.62 of 22 68.7%, 1 24.5%, 0 6.7%30.6%

Download

For cweagans/composer-patches, choose a version below and download the bundle. Copy its magento2-39333/ folder into patches/composer/, merge composer.patches.json into composer.json, then run composer install. Test files are always removed; paths are relative to each package root, using the default -p1 level.

Packages (1): magento/module-catalog
Bundle README (what the ZIP ships)
# magento2-39333

Community fix merged upstream into magento/magento2, adapted by magento.watch.
This is not a patch published by Adobe.

Pull request: https://github.com/magento/magento2/pull/39333
Issue: https://github.com/magento/magento2/issues/39329
Author: @Syamsg
Source commit: 8cc35fd88e2bc0767daf131854be10da319c0d50
Modifications: test files and documentation removed, paths rewritten relative to each Composer package.
Licence: OSL-3.0 / AFL-3.0, as the original Magento Open Source code.
Maintainer: Łukasz Bajsarowicz (@lbajsarowicz)

Licence: Magento Open Source code under OSL-3.0 and AFL-3.0. The bundle carries the original author, source commit and the list of modifications.

Sources

Łukasz Bajsarowicz
Built by

Łukasz Bajsarowicz, e-commerce architect

Magento and Adobe Commerce architecture, upgrades, performance and audits for merchants and agencies since 2015; magento.watch is the tooling I use on those projects.

Open source, maintained on weekends.