Skip to content

VCST-5088: Backup and Restore Improvements#883

Open
OlegoO wants to merge 6 commits into
devfrom
feat/VCST-5088
Open

VCST-5088: Backup and Restore Improvements#883
OlegoO wants to merge 6 commits into
devfrom
feat/VCST-5088

Conversation

@OlegoO
Copy link
Copy Markdown
Contributor

@OlegoO OlegoO commented May 11, 2026

Description

feat: Backup and Restore Improvements

References

QA-test:

Jira-link:

https://virtocommerce.atlassian.net/browse/VCST-5088

Artifact URL:

https://vc3prerelease.blob.core.windows.net/packages/VirtoCommerce.Catalog_3.1023.0-pr-883-950a.zip


Note

Medium Risk
Changes core import/upsert behavior for products, variations, configurations, and property values to avoid EF tracking races; regressions could affect backup/restore and batch saves if response-group loading or de-dupe logic is incorrect.

Overview
Improves backup/restore robustness by enforcing save-graph boundaries during import: products are saved without inline Variations, variations are saved in separate batches afterward, and associations are stashed and written in a second pass.

Adds a reusable ImportStage helper to run batch saves with stage-tagged progress/errors and per-item fallback (SkipItem), and updates all import stages (catalogs/categories/properties/property groups/dictionary items/measures/configurations) to use it and only upload binaries for successfully persisted entities.

Hardens configuration and item upserts: introduces ProductConfigurationResponseGroup and updates configuration loading to use Include/ThenInclude (optionally loading referenced products only for read paths), narrows LoadExistingEntities for both ItemService (excludes Variations) and ProductConfigurationService (excludes referenced products), fixes ProductConfigurationOptionEntity.Patch to copy SectionId/ProductId, and deletes cross-owner PropertyValue rows before insert to preserve upsert semantics.

API/repository surface tweaks include a responseGroup query parameter on GET /api/catalog/products/configurations/{id} and adding CancellationToken support to ICatalogRepository.GetItemByIdsAsync (with test/sample updates). Developer docs add a new catalog domain model/save-graph reference and link it from docs/index.md.

Reviewed by Cursor Bugbot for commit 950a2c7. Bugbot is set up for automated code reviews on this repo. Configure here.

feat: Backup and Restore Improvements
@OlegoO OlegoO requested a review from a team as a code owner May 11, 2026 15:57
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 2ac9b3e. Configure here.

Comment thread src/VirtoCommerce.CatalogModule.Data/ExportImport/ImportStage.cs
@sonarqubecloud
Copy link
Copy Markdown

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.

1 participant