Skip to content

fix(core-flows): ensure full pricing context when adding items to draft order#14941

Merged
shahednasser merged 3 commits intodevelopfrom
fix/draft-order-add-item-pricing-context
Apr 9, 2026
Merged

fix(core-flows): ensure full pricing context when adding items to draft order#14941
shahednasser merged 3 commits intodevelopfrom
fix/draft-order-add-item-pricing-context

Conversation

@NicolasGorga
Copy link
Copy Markdown
Contributor

Summary

What — What changes are introduced in this PR?

Ensure the complete price context is passed when adding items to draft orders the same way we do when adding items to a cart.

Why — Why are these changes relevant or necessary?

Not passing the full context will make price rules targeting properties not present in said context to not execute.

How — How have these changes been implemented?

Pass the same fields for the pricing context when adding items to draft orders in the same way we do for the analog operation in carts.

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

Integration 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.

closes CORE-1395

@NicolasGorga NicolasGorga requested a review from a team as a code owner March 25, 2026 20:43
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 25, 2026

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

9 Skipped Deployments
Project Deployment Actions Updated (UTC)
api-reference Ignored Ignored Mar 25, 2026 8:43pm
api-reference-v2 Ignored Ignored Mar 25, 2026 8:43pm
bloom-docs Ignored Ignored Mar 25, 2026 8:43pm
cloud-docs Ignored Ignored Mar 25, 2026 8:43pm
docs-ui Ignored Ignored Mar 25, 2026 8:43pm
docs-v2 Ignored Ignored Mar 25, 2026 8:43pm
medusa-docs Ignored Ignored Mar 25, 2026 8:43pm
resources-docs Ignored Ignored Mar 25, 2026 8:43pm
user-guide Ignored Ignored Mar 25, 2026 8:43pm

Request Review

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 25, 2026

🦋 Changeset detected

Latest commit: 8edde33

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/medusa Patch
@medusajs/test-utils Patch
integration-tests-http Patch
@medusajs/medusa-oas-cli 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/order 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/draft-order Patch
@medusajs/oas-github-ci Patch
@medusajs/cache-inmemory Patch
@medusajs/cache-redis Patch
@medusajs/event-bus-local Patch
@medusajs/event-bus-redis 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/framework Patch
@medusajs/js-sdk Patch
@medusajs/modules-sdk Patch
@medusajs/orchestration Patch
@medusajs/types Patch
@medusajs/utils Patch
@medusajs/workflows-sdk Patch
@medusajs/cli Patch
@medusajs/deps Patch
@medusajs/telemetry Patch
@medusajs/admin-bundler Patch
@medusajs/admin-sdk Patch
@medusajs/admin-shared Patch
@medusajs/admin-vite-plugin Patch
@medusajs/dashboard 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

"currency_code",
"locale",
],
fields: [...fieldsForPricingContext],
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggestions: is it really necessary to copy the array here?

"email",
"customer.groups.id",
]
export const cartFieldsForPricingContext = [...fieldsForPricingContext]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggestion: same as the other one ☺️

@pepijn-vanvlaanderen
Copy link
Copy Markdown
Contributor

Hi, question will this also enable price lists on draft orders? That is currently not working.

@medusa-os-bot
Copy link
Copy Markdown

medusa-os-bot bot commented Apr 9, 2026

Thank you for your contribution! 🎉

After an initial review, this PR looks good to us. Here's a summary:

✅ Linked to a verified issue (CORE-1395)
✅ Follows contribution guidelines
✅ Tests included (integration tests for draft order pricing context)
✅ Changeset included
✅ Follows Medusa's conventions

Notes:

The root cause is clear: addOrderLineItemsWorkflow passes the order as a cart parameter to getVariantsAndItemsWithPrices, which internally calls filterObjectByKeys(cart, cartFieldsForPricingContext) to build the pricing context. Before this fix, the order query only fetched 7 basic fields (id, sales_channel_id, region_id, customer_id, email, currency_code, locale), so fields like shipping_address.*, customer.groups.id, item_total, and total were silently absent from the context — causing price rules targeting those attributes to not execute.

Extracting the shared fields into common/utils/fields.ts and re-exporting from cart/utils/fields.ts is the right pattern here.

A team member will do a final review before this is merged. We appreciate your patience!

@shahednasser shahednasser merged commit d3a4ec0 into develop Apr 9, 2026
41 checks passed
@shahednasser shahednasser deleted the fix/draft-order-add-item-pricing-context branch April 9, 2026 12:20
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.

5 participants