magento / magento/magento2

Bulk API Product Update Unnecessarily Deletes & Re-adds Options

Open
#39,652 7 comments 1 reaction 1 assignee View on GitHub

@Alexander-Khohklov is already working on this.

Since Sep 2, 2026.

Area: Catalog Area: Product Component: Catalog Issue: Confirmed Priority: P2 Reported on 2.4.x Reproduced on 2.4.x
Dominant language
PHP
Stars
12.2k
Forks
9.4k
PR merge metrics
No merged PRs in 30d

Description

### Preconditions and environment

Magento 2.4

### Steps to reproduce

When making a request to /rest/default/async/bulk/V1/products such as

```
[
{
"product": {
"sku": "12345",
"price": 20.00,
"options": [
{
"product_sku": "12345",
"title": "UOM",
"type": "radio",
"is_require": false,
"values": [
{
"title": "Pack of 10",
"sort_order": 1,
"price": 0,
"price_type": "fixed",
"sku": "PK"
},
{
"title": "Case of 100",
"sort_order": 2,
"price": 10.00,
"price_type": "fixed",
"sku": "CS"
}
]
}
]
}
}
]
```
If I make the exact same request twice, changing nothing about the product options, it will completely remove the existing catalog_product_option table entry(ies) and re-create them, rather than only updating the changed data, and resorting to completely re-creating the options only when strictly necessary

### Expected result

If I make a request to update a set of product options, it should preserve the options as much as possible & avoid affecting cart items with selected options

### Actual result

It completely replaces existing options, even when no changes are made

### Additional information

_No response_

### Release note

_No response_

### Triage and priority

- [ ] Severity: **S0** _- Affects critical data or functionality and leaves users without workaround._
- [x] Severity: **S1** _- Affects critical data or functionality and forces users to employ a workaround._
- [ ] Severity: **S2** _- Affects non-critical data or functionality and forces users to employ a workaround._
- [ ] Severity: **S3** _- Affects non-critical data or functionality and does not force users to employ a workaround._
- [ ] Severity: **S4** _- Affects aesthetics, professional look and feel, “quality” or “usability”._

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.