Highlights
Carry over cart promotions to order
The cart-completion workflow has been updated to transfer promotions from carts to orders upon completion. This means you can now access promotions on the order like so:
const { data } = await query.graph({
entity: "order",
fields: ["id", "promotions.*"]
})
const order = data[0]
console.log(order.promotions)
// [{
// "id": "promo_1234",
// "code": "10OFF",
// "is_automatic": false,
// "is_tax_inclusive": false,
// "type": "standard",
// "status": "active",
// "campaign_id": null,
// "campaign": null,
// }]
Previously, promotions had to be accessed via the line item adjustments on the order.
Align accepted values in product import template
The CSV product import functionality has been updated to correctly handle unexpected columns. These columns are now ignored during import, ensuring a smoother process for creating and updating products.
Improved error logging
Client-side 4xx responses (such as 404s) are no longer logged as errors. These responses typically indicate expected conditions. Only 5xx responses, which indicate server-side issues, are now logged as errors. This reduces unnecessary noise in logs, making it easier to focus on actual server problems.
Expanded order methods in the JS SDK
Added archive and complete methods to the admin.order
module of the JS SDK. These methods provide support for the POST /admin/orders/{id}/archive
and POST /admin/orders/{id}/complete
endpoints, giving developers full access to the order lifecycle directly from the SDK.
The methods are used like so:
await sdk.admin.order.archive("order_123");
await sdk.admin.order.complete("order_123");
Bugs
- fix(link-modules,core-flows): Carry over cart promotions to order promotions by @riqwan in #12920
- fix(core-flows): updating tax lines when draft order shipping is removed by @fPolic in #12919
- fix(types): add attachments to CreateNotificationDTO type by @shahednasser in #12936
- fix(dashboard): combobox multiitem clear by @fPolic in #12939
- fix(core-flows): useQueryGraph util return type by @adrien2p in #12962
- chore(workflow-engine-*): Align event subscribers management by @adrien2p in #12976
- fix(orchestration): Prevent workf. cancellation to execute while rescheduling by @adrien2p in #12903
- fix: accepted values in import with template by @juanzgc in #12969
- fix(core-flows): properly delete variant inventory item by @fPolic in #12958
- chore(link-modules): keep promotion alias by @riqwan in #12928
- fix(wfe): should notify when finished + add state info by @adrien2p in #12982
- fix(wfe): add missing state in inmemory notify on run finished by @adrien2p in #12987
- fix(dashboard): allocation UI for orders with more than 20 reservation items by @fPolic in #12989
- fix(pricing): fix pricing query when max_quantity is null by @riqwan in #12981
- fix: fix script migrations order by @peterlgh7 in #13007
- fix(workflows-sdk): fix step name config used before default by @carlos-r-l-rodrigues in #12926
- fix(modules-sdk): Entity types by @olivermrbl in #13002
- fix(dashboard, product): product attributes update with a relation update by @fPolic in #13019
Documentation
- docs: add missing prop to kapa by @shahednasser in #12934
- chore(docs): fix generate OAS for gift card by @shahednasser in #12937
- chore(docs): Updated UI Reference (automated) by @github-actions[bot] in #12941
- docs: changes for new releases + fixes by @shahednasser in #12945
- chore(docs): Generated References (automated) by @github-actions[bot] in #12942
- docs: fix overlap between input and clear button in search by @shahednasser in #12949
- docs: updates to long-lived environment and billing docs by @shahednasser in #12948
- docs: fix example of updatePayment method by @shahednasser in #12947
- docs: added a note linking to create-medusa-app reference by @shahednasser in #12950
- docs: update next.js to 15.3.5 by @shahednasser in #12952
- docs: fix complete cart workflow in marketplace vendors recipe by @shahednasser in #12953
- docs: update customize stripe in next.js storefront guide by @shahednasser in #12963
- docs: add a troubleshooting section on creating a payment session with zero total by @shahednasser in #12974
- docs: use mappedBy property for all relationship types by @shahednasser in #12973
- docs: add examples to price rules and tiers by @shahednasser in #12700
- docs: improvements to the "Expose a Workflow Hook" documentation by @shahednasser in #12992
- docs: add a section on shipping options and requirement + improvements by @shahednasser in #12990
- chore: Fix freshness check script + update Linear SDK by @shahednasser in #12991
- docs: add inject dependencies section in module tests + improvements by @shahednasser in #12993
- docs: fix spacing between workflow steps and tooltip by @shahednasser in #12994
- docs: fix input type of some hooks in workflow reference by @shahednasser in #12995
- docs: add section on type aliases in admin + note for removing items from orders by @shahednasser in #12996
- docs: fix jest.config.js by @SteelRazor47 in #12999
- docs: improve alt of images by @shahednasser in #12998
- docs: freshness check for some guides by @shahednasser in #13000
- docs: remove non-existing sidebar items by @shahednasser in #13013
- docs: fix typos in learn and recipes by @mathieuh in #13017
- docs: add MCP server by @shahednasser in #13018
- docs: added pre-orders guide by @shahednasser in #12984
- docs: added personalized products guide by @shahednasser in #13012
- docs: added Docker local installation guide by @shahednasser in #13022
Chores
- chore(docs): Update version in documentation (automated) by @github-actions[bot] in #12935
- chore(docs): Generated DML JSON files (automated) by @github-actions[bot] in #12940
- chore(docs): Updated API Reference (automated) by @github-actions[bot] in #12943
- chore: fix tsdocs of updatePayment method by @shahednasser in #12946
- chore: upgrade to latest zod v3 by @riqwan in #12938
- chore(orchestration): improve transaction errors by @carlos-r-l-rodrigues in #12951
- chore: remove codegen action by @shahednasser in #12954
- chore: add to TSDocs note about removing item from order edit by @shahednasser in #12997
- chore(payment): use generate schema by @carlos-r-l-rodrigues in #13004
Other Changes
- chore(medusa): fix typo by @OnlyWick in #12907
- chore(docs): Update worker_mode description as environment by @DanSilva41 in #12894
- feat(i18n): update translation for Vietnamese by @NuxTijNhaX in #12931
- fix: only log server errors by @peterlgh7 in #12957
- feat: Added Malawi kwacha to currency list by @sevenreup in #12440
- docs: add data migration scripts section by @SteelRazor47 in #12975
- chore: Expose Awilix resolution errors by @trevster344 in #13008
- fix(js-sdk): add missing admin order archive and complete methods by @anteprimorac in #12944
New Contributors
- @OnlyWick made their first contribution in #12907
- @NuxTijNhaX made their first contribution in #12931
- @sevenreup made their first contribution in #12440
- @trevster344 made their first contribution in #13008
- @mathieuh made their first contribution in #13017
Full Changelog: v2.8.7...v2.8.8