Skip to content

fix(category): store ancestors and cascade deletes - #448

Merged
BramKaashoek merged 2 commits into
mainfrom
fix/category-stored-ancestors
Oct 13, 2026
Merged

BramKaashoek merged 2 commits into
mainfrom
fix/category-stored-ancestors

Conversation

@BramKaashoek

Copy link
Copy Markdown
Member
  • Stored ancestors: Category.ancestors was computed in postProcessResource, which storage expand skips, so categories expanded from another resource (e.g. product-projections?expand=categories[*]) always had ancestors: []. Ancestors are now stored as references on create and on changeParent (descendants included); the generic expand handles ancestors[*], so the post-processing hack is removed.
  • Cascading delete: deleting a category deletes its subtree and removes the deleted categories from products' current and staged data, per the commercetools docs. Previously children kept a dangling parent.

🤖 Generated with Claude Code

Ancestors were derived at read time in postProcessResource, which storage
expand bypasses: a category expanded from another resource (e.g.
product-projections?expand=categories[*]) always had `ancestors: []`. They
are now stored as references on create and kept in sync on changeParent,
so the generic expand resolves `ancestors[*]` and the post-processing hack
is gone.

Deleting a category now also deletes its descendants and removes them from
products, matching commercetools.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Oct 13, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 49bb391

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@labdigital/commercetools-mock Patch

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

@BramKaashoek
BramKaashoek merged commit 58b01d7 into main Oct 13, 2026
10 checks passed
@BramKaashoek
BramKaashoek deleted the fix/category-stored-ancestors branch October 13, 2026 08:34
@github-actions github-actions Bot mentioned this pull request Oct 13, 2026
BramKaashoek pushed a commit that referenced this pull request Oct 13, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @labdigital/commercetools-mock@5.0.3

### Patch Changes

- [#448](#448)
[`58b01d7`](58b01d7)
Thanks [@BramKaashoek](https://github.com/BramKaashoek)! - Store
category ancestors so they expand from other resources, and delete a
category's subtree (removing it from products) like commercetools does

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants