feat: Consolidate payment functions and handle sessions for storefront (#7231)

This commit is contained in:
Stevche Radevski
2024-05-06 15:14:40 +02:00
committed by GitHub
parent 16528c57b0
commit 4e12168dbd
25 changed files with 408 additions and 135 deletions

View File

@@ -5,6 +5,10 @@ import { createStep, StepResponse } from "@medusajs/workflows-sdk"
interface StepInput {
cart: CartDTO
shippingOptionsContext: {
enabled_in_store?: "true" | "false"
is_return?: "true" | "false"
}
option_ids: string[]
}
@@ -13,7 +17,7 @@ export const validateCartShippingOptionsStepId =
export const validateCartShippingOptionsStep = createStep(
validateCartShippingOptionsStepId,
async (data: StepInput, { container }) => {
const { option_ids: optionIds = [], cart } = data
const { option_ids: optionIds = [], cart, shippingOptionsContext } = data
if (!optionIds.length) {
return new StepResponse(void 0)
@@ -27,7 +31,7 @@ export const validateCartShippingOptionsStep = createStep(
await fulfillmentModule.listShippingOptionsForContext(
{
id: optionIds,
context: { ...cart },
context: shippingOptionsContext,
address: {
country_code: cart.shipping_address?.country_code,
province_code: cart.shipping_address?.province,

View File

@@ -40,6 +40,7 @@ export const addShippingMethodToWorkflow = createWorkflow(
validateCartShippingOptionsStep({
option_ids: optionIds,
cart,
shippingOptionsContext: { is_return: "false", enabled_in_store: "true" },
})
const shippingOptions = useRemoteQueryStep({

View File

@@ -46,6 +46,10 @@ export const listShippingOptionsForCartWorkflow = createWorkflow(
variables: {
id: input.sales_channel_id,
"stock_locations.fulfillment_sets.service_zones.shipping_options": {
context: {
is_return: "false",
enabled_in_store: "true",
},
filters: {
address: {
city: input.shipping_address?.city,