Skip to content

Conversation

@NicolasGorga
Copy link
Contributor

@NicolasGorga NicolasGorga commented Jan 7, 2026

Summary

What — What changes are introduced in this PR?

Add version to shipping method adjustments and implement the missing flow for versioned creation of both line and shipping method adjustments.

Why — Why are these changes relevant or necessary?

Adjustments don't align with the versioned nature of order related entities.

How — How have these changes been implemented?

Added the version field to shipping method adjustments and handle their versions when applying order changes. Implemented missing logic to actually create/delete the versioned line/shipping methods adjustments.

Testing — How have these changes been tested, or how can the reviewer test the feature?

Tests.


Examples

Provide examples or code snippets that demonstrate how this feature works, or how it can be used in practice.
This helps with documentation and ensures maintainers can quickly understand and verify the change.

// Example usage

Checklist

Please ensure the following before requesting a review:

  • I have added a changeset for this PR
    • Every non-breaking change should be marked as a patch
    • To add a changeset, run yarn changeset and follow the prompts
  • The changes are covered by relevant tests
  • I have verified the code works as intended locally
  • I have linked the related issue(s) if applicable

Additional Context

Add any additional context, related issues, or references that might help the reviewer understand this PR.

fixes #14384, CORE-1359

@NicolasGorga NicolasGorga requested review from a team as code owners January 7, 2026 20:07
@changeset-bot
Copy link

changeset-bot bot commented Jan 7, 2026

🦋 Changeset detected

Latest commit: 47cde33

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

This PR includes changesets to release 76 packages
Name Type
@medusajs/core-flows Patch
@medusajs/order Patch
@medusajs/types Patch
@medusajs/medusa Patch
@medusajs/test-utils Patch
integration-tests-http Patch
@medusajs/event-bus-redis Patch
@medusajs/draft-order Patch
@medusajs/framework Patch
@medusajs/js-sdk Patch
@medusajs/modules-sdk Patch
@medusajs/orchestration Patch
@medusajs/utils Patch
@medusajs/workflows-sdk Patch
@medusajs/medusa-oas-cli Patch
@medusajs/admin-bundler Patch
@medusajs/dashboard Patch
@medusajs/analytics Patch
@medusajs/api-key Patch
@medusajs/auth Patch
@medusajs/caching Patch
@medusajs/cart Patch
@medusajs/currency Patch
@medusajs/customer Patch
@medusajs/file Patch
@medusajs/fulfillment Patch
@medusajs/index Patch
@medusajs/inventory Patch
@medusajs/link-modules Patch
@medusajs/locking Patch
@medusajs/notification Patch
@medusajs/payment Patch
@medusajs/pricing Patch
@medusajs/product Patch
@medusajs/promotion Patch
@medusajs/rbac Patch
@medusajs/region Patch
@medusajs/sales-channel Patch
@medusajs/settings Patch
@medusajs/stock-location Patch
@medusajs/store Patch
@medusajs/tax Patch
@medusajs/translation Patch
@medusajs/user Patch
@medusajs/workflow-engine-inmemory Patch
@medusajs/workflow-engine-redis Patch
@medusajs/cache-inmemory Patch
@medusajs/cache-redis Patch
@medusajs/event-bus-local Patch
@medusajs/analytics-local Patch
@medusajs/analytics-posthog Patch
@medusajs/auth-emailpass Patch
@medusajs/auth-github Patch
@medusajs/auth-google Patch
@medusajs/caching-redis Patch
@medusajs/file-local Patch
@medusajs/file-s3 Patch
@medusajs/fulfillment-manual Patch
@medusajs/locking-postgres Patch
@medusajs/locking-redis Patch
@medusajs/notification-local Patch
@medusajs/notification-sendgrid Patch
@medusajs/payment-stripe Patch
@medusajs/oas-github-ci Patch
@medusajs/cli Patch
@medusajs/deps Patch
@medusajs/telemetry Patch
@medusajs/admin-sdk Patch
@medusajs/admin-shared Patch
@medusajs/admin-vite-plugin Patch
@medusajs/icons Patch
@medusajs/toolbox Patch
@medusajs/ui-preset Patch
create-medusa-app Patch
medusa-dev-cli Patch
@medusajs/ui 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

@vercel
Copy link

vercel bot commented Jan 7, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

8 Skipped Deployments
Project Deployment Review Updated (UTC)
api-reference Ignored Ignored Jan 23, 2026 6:26pm
api-reference-v2 Ignored Ignored Preview Jan 23, 2026 6:26pm
cloud-docs Ignored Ignored Preview Jan 23, 2026 6:26pm
docs-ui Ignored Ignored Preview Jan 23, 2026 6:26pm
docs-v2 Ignored Ignored Preview Jan 23, 2026 6:26pm
medusa-docs Ignored Ignored Preview Jan 23, 2026 6:26pm
resources-docs Ignored Ignored Preview Jan 23, 2026 6:26pm
user-guide Ignored Ignored Preview Jan 23, 2026 6:26pm

Request Review

@NicolasGorga NicolasGorga changed the title fix(core-flows): Pass shipping_methods to computeActions context feat(core-flows,order,medusa,types): Version shipping method adjustments & implement missing creation flow for versioned adjustments Jan 7, 2026
!!order.promotions.length && !!input.orderChange.carry_over_promotions
).then(() => {
const actionsToComputeItemsInput = transform(
const actionsToComputeContext = transform(
Copy link
Contributor

@fPolic fPolic Jan 8, 2026

Choose a reason for hiding this comment

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

todo: belive the part that is missing is that in this file, prepareAdjustmentsFromPromotionActionsStep returns shipping adjustments which we need to store on the change action (or create a new action dedicated to shipping adjustments).
Then this adjustments need to be applied when processing a change, see: packages/modules/order/src/utils/actions/item-adjustments-replace.ts

edit: from the plan, I see that some of this was explicitley skipped but without the full flow, new adjustments wont't be created and won't be filtered for that order version when fetching order

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That is a good point, will look into it :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

pushed lmkwyt @fPolic

Copy link
Contributor

Choose a reason for hiding this comment

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

looks good, think we are almost there...next thing to consider is when we fetch an order at a specific version that only shipping adjustments for that version are fetched: see packages/modules/order/src/utils/base-repository-find.ts and loadItemAdjustments method for referrence

Copy link
Contributor Author

Choose a reason for hiding this comment

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

pushed

@NicolasGorga
Copy link
Contributor Author

@adrien2p the migration i included to add unique index on order_line_item_adjustment would make this a breaking change I guess. The correct thing is to add it, but it makes me think of the recent situation where we did this for order_item and it caused issues for customers with existing duplication in their DBs (cc @olivermrbl )

@adrien2p
Copy link
Member

adrien2p commented Jan 9, 2026

@adrien2p the migration i included to add unique index on order_line_item_adjustment would make this a breaking change I guess. The correct thing is to add it, but it makes me think of the recent situation where we did this for order_item and it caused issues for customers with existing duplication in their DBs (cc @olivermrbl )

Humm I see, I guess we cant just add it like that, we need to either provide a way for people to fix it automatically or guide them about the issue and fix it on their side. Then we need to wait another version to add the unique if we want

@cursor
Copy link

cursor bot commented Jan 18, 2026

You have run out of free Bugbot PR reviews for this billing cycle. This will reset on February 17.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: revertLastVersion does not clean up OrderLineItemAdjustment, OrderShippingMethodAdjustment, and tax line records during workflow rollback

4 participants