Skip to content

chore(js-sdk): add methods to manage promotion codes#14850

Open
asgerjensen wants to merge 2 commits intomedusajs:developfrom
asgerjensen:feature/add-delete-promotion-to-jssdk
Open

chore(js-sdk): add methods to manage promotion codes#14850
asgerjensen wants to merge 2 commits intomedusajs:developfrom
asgerjensen:feature/add-delete-promotion-to-jssdk

Conversation

@asgerjensen
Copy link
Copy Markdown
Contributor

@asgerjensen asgerjensen commented Mar 5, 2026

Summary

What — What changes are introduced in this PR?

Added functions on store client to allow adding and removing promotion codes.

Why — Why are these changes relevant or necessary?

The functionality is present in the /store api, but not reflected in the javascript client.

It /might/ have been possible before, by using the general update function, but it didn't give a clean way to deal with removals. As the API already exposes the functions, they may as well be made available to the javascript client.

How — How have these changes been implemented?

Added to store client

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

Built and included in demo repo, to verify typing and functionalty.


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.

sdk.store.cart.addPromotions("cart_123", {
      promo_codes: ["20OFF"]
 })
sdk.store.cart.removePromotions("cart_123", {
    promo_codes: ["20OFF"]
})

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 #15068

@asgerjensen asgerjensen requested a review from a team as a code owner March 5, 2026 10:37
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 5, 2026

🦋 Changeset detected

Latest commit: b2ad5c7

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

This PR includes changesets to release 77 packages
Name Type
@medusajs/js-sdk Patch
@medusajs/draft-order Patch
@medusajs/dashboard Patch
@medusajs/medusa Patch
@medusajs/admin-bundler Patch
@medusajs/test-utils Patch
@medusajs/medusa-oas-cli Patch
integration-tests-http 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/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/core-flows Patch
@medusajs/framework Patch
@medusajs/modules-sdk Patch
@medusajs/orchestration Patch
@medusajs/types Patch
@medusajs/utils Patch
@medusajs/workflows-sdk Patch
@medusajs/http-types-generator 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
Copy Markdown

vercel bot commented Mar 5, 2026

@asgerjensen is attempting to deploy a commit to the medusajs Team on Vercel.

A member of the Team first needs to authorize it.

@asgerjensen asgerjensen force-pushed the feature/add-delete-promotion-to-jssdk branch 3 times, most recently from e83757d to e2ea5b6 Compare March 13, 2026 17:43
@asgerjensen asgerjensen force-pushed the feature/add-delete-promotion-to-jssdk branch 2 times, most recently from 2991ba3 to 640bf71 Compare March 23, 2026 08:26
@asgerjensen asgerjensen force-pushed the feature/add-delete-promotion-to-jssdk branch from 640bf71 to c12cf1f Compare April 7, 2026 18:21
@medusa-os-bot
Copy link
Copy Markdown

medusa-os-bot bot commented Apr 9, 2026

Thank you for your contribution!

After reviewing this PR, we need a few things addressed before we can move forward:

Required changes:

  • Rename addPromotionCodesaddPromotions and removePromotionCodesremovePromotions. The admin SDK uses this naming for the equivalent draft order methods (draftOrder.addPromotions, draftOrder.removePromotions) — store cart methods should be consistent.
  • Add a query?: SelectParams parameter to both methods, consistent with every other cart method that returns a cart (e.g. addShippingMethod, transferCart). Without it, callers cannot configure which fields are returned.
  • Add tests for the new methods. New functionality must be covered by tests per our contribution guidelines.
  • Link a GitHub issue. Non-trivial changes require a linked issue — please open one (or link an existing one) describing the missing SDK methods.

Once these are addressed, another review will be triggered automatically.

Thanks again!

@asgerjensen asgerjensen force-pushed the feature/add-delete-promotion-to-jssdk branch 4 times, most recently from cbeccf7 to fa52f99 Compare April 10, 2026 11:13
@asgerjensen asgerjensen force-pushed the feature/add-delete-promotion-to-jssdk branch from fa52f99 to b2ad5c7 Compare April 10, 2026 13:26
@asgerjensen
Copy link
Copy Markdown
Contributor Author

@medusajs-bot review

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]: JS-SDK does not expose functions for add/remove promotions

1 participant