@dropins/storefront-order 1.4.0-alpha2 → 1.4.0-alpha3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/api.js +3 -9
  2. package/api.js.map +1 -1
  3. package/package.json +1 -1
package/api.js CHANGED
@@ -8,7 +8,7 @@ import{c as J,r as K}from"./chunks/requestGuestOrderCancel.js";import{s as _,f a
8
8
  }
9
9
 
10
10
  ${E}
11
- `,S=async()=>{const e=await v();e&&_("X-ReCaptcha",e)},V=async e=>{if(!e)throw new Error("No cart ID found");return await S(),g(G,{method:"POST",variables:{cartId:e}}).then(r=>{var a,o,n,c,s;(a=r.errors)!=null&&a.length&&O(r.errors),(c=(n=(o=r.data)==null?void 0:o.placeOrder)==null?void 0:n.errors)!=null&&c.length&&b((s=r.data.placeOrder)==null?void 0:s.errors);const t=C(r);return t&&(l.emit("order/placed",t),l.emit("cart/reset",void 0),y(e,t)),t}).catch(f)},k=`
11
+ `,S=async()=>{const e=await v();e&&_("X-ReCaptcha",e)},j=async e=>{if(!e)throw new Error("No cart ID found");return await S(),g(G,{method:"POST",variables:{cartId:e}}).then(r=>{var a,o,n,c,s;(a=r.errors)!=null&&a.length&&O(r.errors),(c=(n=(o=r.data)==null?void 0:o.placeOrder)==null?void 0:n.errors)!=null&&c.length&&b((s=r.data.placeOrder)==null?void 0:s.errors);const t=C(r);return t&&(l.emit("order/placed",t),l.emit("cart/reset",void 0),y(e,t)),t}).catch(f)},k=`
12
12
  mutation setPaymentMethodAndPlaceOrder($cartId: String!, $paymentMethod: PaymentMethodInput!) {
13
13
  setPaymentMethodOnCart(
14
14
  input: {
@@ -24,16 +24,10 @@ import{c as J,r as K}from"./chunks/requestGuestOrderCancel.js";import{s as _,f a
24
24
  }
25
25
  }
26
26
  placeOrder(input: { cart_id: $cartId }) {
27
- errors {
28
- code
29
- message
30
- }
31
- orderV2 {
32
- ...PLACE_ORDER_FRAGMENT
33
- }
27
+ ...PLACE_ORDER_FRAGMENT
34
28
  }
35
29
  }
36
30
 
37
31
  ${E}
38
- `,j=async(e,r)=>{if(!e)throw new Error("No cart ID found");if(!r)throw new Error("No payment method found");return g(k,{variables:{cartId:e,paymentMethod:r}}).then(t=>{var o,n,c,s,u,i;(o=t.errors)!=null&&o.length&&O(t.errors),(s=(c=(n=t.data)==null?void 0:n.placeOrder)==null?void 0:c.errors)!=null&&s.length&&b((u=t.data.placeOrder)==null?void 0:u.errors);const a=C({data:{placeOrder:(i=t.data)==null?void 0:i.placeOrder}});return a&&(l.emit("order/placed",a),l.emit("cart/reset",void 0),y(e,a)),a}).catch(f)};export{J as cancelOrder,gt as config,yt as confirmCancelOrder,bt as confirmGuestReturn,g as fetchGraphQl,ot as getAttributesForm,ct as getAttributesList,Z as getConfig,lt as getCustomer,mt as getCustomerOrdersReturn,pt as getGuestOrder,Ot as getOrderDetailsById,Ct as getStoreConfig,ft as guestOrderByToken,Et as initialize,V as placeOrder,tt as removeFetchGraphQlHeader,_t as reorderItems,K as requestGuestOrderCancel,st as requestGuestReturn,ut as requestReturn,et as setEndpoint,_ as setFetchGraphQlHeader,rt as setFetchGraphQlHeaders,j as setPaymentMethodAndPlaceOrder};
32
+ `,z=async(e,r)=>{if(!e)throw new Error("No cart ID found");if(!r)throw new Error("No payment method found");return g(k,{variables:{cartId:e,paymentMethod:r}}).then(t=>{var o,n,c,s,u,i;(o=t.errors)!=null&&o.length&&O(t.errors),(s=(c=(n=t.data)==null?void 0:n.placeOrder)==null?void 0:c.errors)!=null&&s.length&&b((u=t.data.placeOrder)==null?void 0:u.errors);const a=C({data:{placeOrder:(i=t.data)==null?void 0:i.placeOrder}});return a&&(l.emit("order/placed",a),l.emit("cart/reset",void 0),y(e,a)),a}).catch(f)};export{J as cancelOrder,gt as config,yt as confirmCancelOrder,bt as confirmGuestReturn,g as fetchGraphQl,ot as getAttributesForm,ct as getAttributesList,Z as getConfig,lt as getCustomer,mt as getCustomerOrdersReturn,pt as getGuestOrder,Ot as getOrderDetailsById,Ct as getStoreConfig,ft as guestOrderByToken,Et as initialize,j as placeOrder,tt as removeFetchGraphQlHeader,_t as reorderItems,K as requestGuestOrderCancel,st as requestGuestReturn,ut as requestReturn,et as setEndpoint,_ as setFetchGraphQlHeader,rt as setFetchGraphQlHeaders,z as setPaymentMethodAndPlaceOrder};
39
33
  //# sourceMappingURL=api.js.map
package/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sources":["/@dropins/storefront-order/src/data/transforms/transform-acdl.ts","/@dropins/storefront-order/src/data/transforms/transform-place-order.ts","/@dropins/storefront-order/src/lib/acdl.ts","/@dropins/storefront-order/src/lib/place-order-error.ts","/@dropins/storefront-order/src/api/placeOrder/graphql/placeOrderMutation.ts","/@dropins/storefront-order/src/lib/setReCaptchaToken.ts","/@dropins/storefront-order/src/api/placeOrder/placeOrder.ts","/@dropins/storefront-order/src/api/setPaymentMethodAndPlaceOrder/graphql/setPaymentMethodAndPlaceOrderMutation.ts","/@dropins/storefront-order/src/api/setPaymentMethodAndPlaceOrder/setPaymentMethodAndPlaceOrder.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n OrderContext,\n OrderDataModel,\n ShoppingCartContext,\n} from '@/order/data/models';\n\nconst sumDiscounts = (accum: number, discount: any): number => {\n return accum + discount.amount.value;\n};\n\nexport const transformShoppingCartContext = (\n cartId: string,\n data: OrderDataModel\n): ShoppingCartContext => {\n return {\n id: cartId,\n totalQuantity: data.totalQuantity,\n possibleOnepageCheckout: true,\n // @ts-ignore\n items: data.items.map((orderItem) => ({\n // we don't know if the checkout drop-in can apply Manufacturer’s Suggested Retail Price\n canApplyMsrp: true,\n formattedPrice: '',\n id: orderItem.id,\n quantity: orderItem.totalQuantity,\n product: {\n canonicalUrl: orderItem.product?.canonicalUrl,\n mainImageUrl: orderItem.product?.image ?? '',\n name: orderItem.product?.name ?? '',\n productId: 0, // productId not exposed by core GraphQL as number (uid is string)\n productType: orderItem.product?.productType,\n sku: orderItem.product?.sku ?? '',\n topLevelSku: orderItem.product?.sku,\n },\n prices: {\n price: {\n value: orderItem.price.value,\n currency: orderItem.price.currency,\n regularPrice: orderItem.regularPrice?.value ?? orderItem.price.value,\n },\n },\n configurableOptions:\n orderItem.selectedOptions?.map((selectedOption) => ({\n optionLabel: selectedOption.label,\n valueLabel: selectedOption.value,\n })) || [],\n })),\n prices: {\n subtotalExcludingTax: {\n value: data.subtotalExclTax.value,\n currency: data.subtotalExclTax.currency,\n },\n subtotalIncludingTax: {\n value: data.subtotalInclTax.value,\n currency: data.subtotalInclTax.currency,\n },\n },\n discountAmount: data.discounts.reduce(sumDiscounts, 0),\n };\n};\n\nexport const transformOrderContext = (data: OrderDataModel): OrderContext => {\n const firstCoupon = data.coupons[0];\n // for now, we only support one payment per order\n const orderPayment = data.payments?.[0];\n\n return {\n appliedCouponCode: firstCoupon?.code ?? '',\n email: data.email,\n grandTotal: data.grandTotal.value,\n orderId: data.number,\n orderType: 'checkout',\n otherTax: 0,\n salesTax: data.totalTax.value,\n shipping: {\n shippingMethod: data.shipping?.code ?? '',\n shippingAmount: data.shipping?.amount ?? 0,\n },\n subtotalExcludingTax: data.subtotalExclTax.value,\n subtotalIncludingTax: data.subtotalInclTax.value,\n payments: orderPayment\n ? [\n {\n paymentMethodCode: orderPayment?.code || '',\n paymentMethodName: orderPayment?.name || '',\n total: data.grandTotal.value,\n orderId: data.number,\n },\n ]\n : [],\n discountAmount: data.discounts.reduce(sumDiscounts, 0),\n taxAmount: data.totalTax.value,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PlaceOrderResponse } from '@/order/types';\nimport { OrderDataModel } from '../models';\nimport { transformOrderData } from './transform-order-details';\n\nexport const transformPlaceOrder = (\n response: PlaceOrderResponse\n): OrderDataModel | null => {\n const orderData = response?.data?.placeOrder?.orderV2;\n if (!orderData) return null;\n return transformOrderData(orderData);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { OrderDataModel } from '@/order/data/models';\nimport {\n transformOrderContext,\n transformShoppingCartContext,\n} from '@/order/data/transforms';\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/contexts.ts\n */\nexport const contexts = {\n SHOPPING_CART_CONTEXT: 'shoppingCartContext',\n ORDER_CONTEXT: 'orderContext',\n CHANNEL_CONTEXT: 'channelContext',\n};\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/events.ts\n */\nexport const events = {\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/place-order.md\n PLACE_ORDER: 'place-order',\n};\n\nexport function getAdobeDataLayer() {\n // @ts-ignore\n window.adobeDataLayer = window.adobeDataLayer || [];\n // @ts-ignore\n return window.adobeDataLayer;\n}\n\n/**\n * Sets a context in the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/Base.ts#L6\n */\nfunction setContext(name: string, data: any) {\n const adobeDataLayer = getAdobeDataLayer();\n\n // Clear existing context\n adobeDataLayer.push({\n [name]: null,\n });\n\n // Set new context\n adobeDataLayer.push({\n [name]: data,\n });\n}\n\n/**\n * Pushes an event to the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/Base.ts#L35\n */\nfunction pushEvent(event: string) {\n const adobeDataLayer = getAdobeDataLayer();\n\n adobeDataLayer.push((acdl: any) => {\n const state = acdl.getState ? acdl.getState() : {};\n\n acdl.push({\n event,\n eventInfo: {\n ...state,\n },\n });\n });\n}\n\nfunction getChannelContext() {\n return {\n _id: \"https://ns.adobe.com/xdm/channels/web\",\n _type: \"https://ns.adobe.com/xdm/channel-types/web\",\n };\n}\n\nexport function setChannelContext() {\n setContext(contexts.CHANNEL_CONTEXT, getChannelContext());\n}\n\n// Triggered when an order is placed\nexport function publishPlaceOrderEvent(cartId: string, data: OrderDataModel) {\n const orderContext = transformOrderContext(data);\n const shoppingCartContext = transformShoppingCartContext(cartId, data);\n\n // Set context and push open cart event\n setContext(contexts.ORDER_CONTEXT, {\n ...orderContext,\n });\n\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n setChannelContext();\n\n pushEvent(events.PLACE_ORDER);\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PlaceOrderResponse } from '@/order/types';\n\nexport class PlaceOrderError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'PlaceOrderError';\n }\n}\n\nexport const handlePlaceOrderError = (\n errors: NonNullable<PlaceOrderResponse['errors']>\n) => {\n const errorMessage = errors.map((e: any) => e.message).join(' ');\n throw new PlaceOrderError(errorMessage);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PLACE_ORDER_FRAGMENT } from \"@/order/api/graphql/PlaceOrderFragment.graphql\";\n\nexport const PLACE_ORDER_MUTATION = /* GraphQL */ `\n mutation PLACE_ORDER_MUTATION($cartId: String!) {\n placeOrder(input: { cart_id: $cartId }) {\n ...PLACE_ORDER_FRAGMENT\n }\n }\n\n ${PLACE_ORDER_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { verifyReCaptcha } from '@adobe-commerce/recaptcha';\nimport { setFetchGraphQlHeader } from '../api';\n\nexport const setReCaptchaToken = async () => {\n const token = await verifyReCaptcha();\n\n if (token) {\n setFetchGraphQlHeader('X-ReCaptcha', token);\n }\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/order/api';\nimport { OrderDataModel } from '@/order/data/models';\nimport { transformPlaceOrder } from '@/order/data/transforms';\nimport { publishPlaceOrderEvent } from '@/order/lib/acdl';\nimport { handleFetchError } from '@/order/lib/fetch-error';\nimport { handleNetworkError } from '@/order/lib/network-error';\nimport { handlePlaceOrderError } from '@/order/lib/place-order-error';\nimport { PlaceOrderResponse } from '@/order/types/index';\nimport { events } from '@adobe-commerce/event-bus';\nimport { PLACE_ORDER_MUTATION } from './graphql/placeOrderMutation';\nimport { setReCaptchaToken } from '@/order/lib/setReCaptchaToken';\n\nexport const placeOrder = async (\n cartId: string\n): Promise<OrderDataModel | null | undefined> => {\n if (!cartId) throw new Error('No cart ID found');\n await setReCaptchaToken();\n\n return fetchGraphQl(PLACE_ORDER_MUTATION, {\n method: 'POST',\n variables: { cartId },\n })\n .then((response: PlaceOrderResponse) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n if (response.data?.placeOrder?.errors?.length) {\n handlePlaceOrderError(response.data.placeOrder?.errors);\n }\n\n const payload = transformPlaceOrder(response);\n\n if (payload) {\n events.emit('order/placed', payload);\n events.emit('cart/reset', undefined);\n publishPlaceOrderEvent(cartId, payload);\n }\n\n return payload;\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PLACE_ORDER_FRAGMENT } from '@/order/api/graphql/PlaceOrderFragment.graphql';\n\nexport const SET_PAYMENT_METHOD_AND_PLACE_ORDER_MUTATION = /* GraphQL */ `\n mutation setPaymentMethodAndPlaceOrder($cartId: String!, $paymentMethod: PaymentMethodInput!) {\n setPaymentMethodOnCart(\n input: {\n cart_id: $cartId\n payment_method: $paymentMethod\n }\n ) {\n cart {\n selected_payment_method {\n code\n title\n }\n }\n }\n placeOrder(input: { cart_id: $cartId }) {\n errors {\n code\n message\n }\n orderV2 {\n ...PLACE_ORDER_FRAGMENT\n }\n }\n }\n\n ${PLACE_ORDER_FRAGMENT}\n`;","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/order/api';\nimport { OrderDataModel } from '@/order/data/models';\nimport { transformPlaceOrder } from '@/order/data/transforms';\nimport { publishPlaceOrderEvent } from '@/order/lib/acdl';\nimport { handleFetchError } from '@/order/lib/fetch-error';\nimport { handleNetworkError } from '@/order/lib/network-error';\nimport { handlePlaceOrderError } from '@/order/lib/place-order-error';\nimport { events } from '@adobe-commerce/event-bus';\nimport { SET_PAYMENT_METHOD_AND_PLACE_ORDER_MUTATION } from './graphql/setPaymentMethodAndPlaceOrderMutation';\n\nexport const setPaymentMethodAndPlaceOrder = async (\n cartId: string,\n paymentMethod: any\n): Promise<OrderDataModel | null | undefined> => {\n if (!cartId) throw new Error('No cart ID found');\n if (!paymentMethod) throw new Error('No payment method found');\n\n return fetchGraphQl(SET_PAYMENT_METHOD_AND_PLACE_ORDER_MUTATION, {\n variables: { cartId, paymentMethod },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n // Check for errors in placeOrder part of the response\n if (response.data?.placeOrder?.errors?.length) {\n handlePlaceOrderError(response.data.placeOrder?.errors);\n }\n\n // Use the same transformation as placeOrder\n const payload = transformPlaceOrder({ data: { placeOrder: response.data?.placeOrder } });\n\n if (payload) {\n events.emit('order/placed', payload);\n events.emit('cart/reset', undefined);\n publishPlaceOrderEvent(cartId, payload);\n }\n\n return payload;\n })\n .catch(handleNetworkError);\n};\n"],"names":["sumDiscounts","accum","discount","transformShoppingCartContext","cartId","data","orderItem","_a","_b","_c","_d","_e","_f","_g","_h","selectedOption","transformOrderContext","firstCoupon","orderPayment","transformPlaceOrder","response","orderData","transformOrderData","contexts","events","getAdobeDataLayer","setContext","name","adobeDataLayer","pushEvent","event","acdl","state","getChannelContext","setChannelContext","publishPlaceOrderEvent","orderContext","shoppingCartContext","PlaceOrderError","message","handlePlaceOrderError","errors","errorMessage","e","PLACE_ORDER_MUTATION","PLACE_ORDER_FRAGMENT","setReCaptchaToken","token","verifyReCaptcha","setFetchGraphQlHeader","placeOrder","fetchGraphQl","handleFetchError","payload","handleNetworkError","SET_PAYMENT_METHOD_AND_PLACE_ORDER_MUTATION","setPaymentMethodAndPlaceOrder","paymentMethod"],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sources":["/@dropins/storefront-order/src/data/transforms/transform-acdl.ts","/@dropins/storefront-order/src/data/transforms/transform-place-order.ts","/@dropins/storefront-order/src/lib/acdl.ts","/@dropins/storefront-order/src/lib/place-order-error.ts","/@dropins/storefront-order/src/api/placeOrder/graphql/placeOrderMutation.ts","/@dropins/storefront-order/src/lib/setReCaptchaToken.ts","/@dropins/storefront-order/src/api/placeOrder/placeOrder.ts","/@dropins/storefront-order/src/api/setPaymentMethodAndPlaceOrder/graphql/setPaymentMethodAndPlaceOrderMutation.ts","/@dropins/storefront-order/src/api/setPaymentMethodAndPlaceOrder/setPaymentMethodAndPlaceOrder.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n OrderContext,\n OrderDataModel,\n ShoppingCartContext,\n} from '@/order/data/models';\n\nconst sumDiscounts = (accum: number, discount: any): number => {\n return accum + discount.amount.value;\n};\n\nexport const transformShoppingCartContext = (\n cartId: string,\n data: OrderDataModel\n): ShoppingCartContext => {\n return {\n id: cartId,\n totalQuantity: data.totalQuantity,\n possibleOnepageCheckout: true,\n // @ts-ignore\n items: data.items.map((orderItem) => ({\n // we don't know if the checkout drop-in can apply Manufacturer’s Suggested Retail Price\n canApplyMsrp: true,\n formattedPrice: '',\n id: orderItem.id,\n quantity: orderItem.totalQuantity,\n product: {\n canonicalUrl: orderItem.product?.canonicalUrl,\n mainImageUrl: orderItem.product?.image ?? '',\n name: orderItem.product?.name ?? '',\n productId: 0, // productId not exposed by core GraphQL as number (uid is string)\n productType: orderItem.product?.productType,\n sku: orderItem.product?.sku ?? '',\n topLevelSku: orderItem.product?.sku,\n },\n prices: {\n price: {\n value: orderItem.price.value,\n currency: orderItem.price.currency,\n regularPrice: orderItem.regularPrice?.value ?? orderItem.price.value,\n },\n },\n configurableOptions:\n orderItem.selectedOptions?.map((selectedOption) => ({\n optionLabel: selectedOption.label,\n valueLabel: selectedOption.value,\n })) || [],\n })),\n prices: {\n subtotalExcludingTax: {\n value: data.subtotalExclTax.value,\n currency: data.subtotalExclTax.currency,\n },\n subtotalIncludingTax: {\n value: data.subtotalInclTax.value,\n currency: data.subtotalInclTax.currency,\n },\n },\n discountAmount: data.discounts.reduce(sumDiscounts, 0),\n };\n};\n\nexport const transformOrderContext = (data: OrderDataModel): OrderContext => {\n const firstCoupon = data.coupons[0];\n // for now, we only support one payment per order\n const orderPayment = data.payments?.[0];\n\n return {\n appliedCouponCode: firstCoupon?.code ?? '',\n email: data.email,\n grandTotal: data.grandTotal.value,\n orderId: data.number,\n orderType: 'checkout',\n otherTax: 0,\n salesTax: data.totalTax.value,\n shipping: {\n shippingMethod: data.shipping?.code ?? '',\n shippingAmount: data.shipping?.amount ?? 0,\n },\n subtotalExcludingTax: data.subtotalExclTax.value,\n subtotalIncludingTax: data.subtotalInclTax.value,\n payments: orderPayment\n ? [\n {\n paymentMethodCode: orderPayment?.code || '',\n paymentMethodName: orderPayment?.name || '',\n total: data.grandTotal.value,\n orderId: data.number,\n },\n ]\n : [],\n discountAmount: data.discounts.reduce(sumDiscounts, 0),\n taxAmount: data.totalTax.value,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PlaceOrderResponse } from '@/order/types';\nimport { OrderDataModel } from '../models';\nimport { transformOrderData } from './transform-order-details';\n\nexport const transformPlaceOrder = (\n response: PlaceOrderResponse\n): OrderDataModel | null => {\n const orderData = response?.data?.placeOrder?.orderV2;\n if (!orderData) return null;\n return transformOrderData(orderData);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { OrderDataModel } from '@/order/data/models';\nimport {\n transformOrderContext,\n transformShoppingCartContext,\n} from '@/order/data/transforms';\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/contexts.ts\n */\nexport const contexts = {\n SHOPPING_CART_CONTEXT: 'shoppingCartContext',\n ORDER_CONTEXT: 'orderContext',\n CHANNEL_CONTEXT: 'channelContext',\n};\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/events.ts\n */\nexport const events = {\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/place-order.md\n PLACE_ORDER: 'place-order',\n};\n\nexport function getAdobeDataLayer() {\n // @ts-ignore\n window.adobeDataLayer = window.adobeDataLayer || [];\n // @ts-ignore\n return window.adobeDataLayer;\n}\n\n/**\n * Sets a context in the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/Base.ts#L6\n */\nfunction setContext(name: string, data: any) {\n const adobeDataLayer = getAdobeDataLayer();\n\n // Clear existing context\n adobeDataLayer.push({\n [name]: null,\n });\n\n // Set new context\n adobeDataLayer.push({\n [name]: data,\n });\n}\n\n/**\n * Pushes an event to the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/Base.ts#L35\n */\nfunction pushEvent(event: string) {\n const adobeDataLayer = getAdobeDataLayer();\n\n adobeDataLayer.push((acdl: any) => {\n const state = acdl.getState ? acdl.getState() : {};\n\n acdl.push({\n event,\n eventInfo: {\n ...state,\n },\n });\n });\n}\n\nfunction getChannelContext() {\n return {\n _id: \"https://ns.adobe.com/xdm/channels/web\",\n _type: \"https://ns.adobe.com/xdm/channel-types/web\",\n };\n}\n\nexport function setChannelContext() {\n setContext(contexts.CHANNEL_CONTEXT, getChannelContext());\n}\n\n// Triggered when an order is placed\nexport function publishPlaceOrderEvent(cartId: string, data: OrderDataModel) {\n const orderContext = transformOrderContext(data);\n const shoppingCartContext = transformShoppingCartContext(cartId, data);\n\n // Set context and push open cart event\n setContext(contexts.ORDER_CONTEXT, {\n ...orderContext,\n });\n\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n setChannelContext();\n\n pushEvent(events.PLACE_ORDER);\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PlaceOrderResponse } from '@/order/types';\n\nexport class PlaceOrderError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'PlaceOrderError';\n }\n}\n\nexport const handlePlaceOrderError = (\n errors: NonNullable<PlaceOrderResponse['errors']>\n) => {\n const errorMessage = errors.map((e: any) => e.message).join(' ');\n throw new PlaceOrderError(errorMessage);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PLACE_ORDER_FRAGMENT } from \"@/order/api/graphql/PlaceOrderFragment.graphql\";\n\nexport const PLACE_ORDER_MUTATION = /* GraphQL */ `\n mutation PLACE_ORDER_MUTATION($cartId: String!) {\n placeOrder(input: { cart_id: $cartId }) {\n ...PLACE_ORDER_FRAGMENT\n }\n }\n\n ${PLACE_ORDER_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { verifyReCaptcha } from '@adobe-commerce/recaptcha';\nimport { setFetchGraphQlHeader } from '../api';\n\nexport const setReCaptchaToken = async () => {\n const token = await verifyReCaptcha();\n\n if (token) {\n setFetchGraphQlHeader('X-ReCaptcha', token);\n }\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/order/api';\nimport { OrderDataModel } from '@/order/data/models';\nimport { transformPlaceOrder } from '@/order/data/transforms';\nimport { publishPlaceOrderEvent } from '@/order/lib/acdl';\nimport { handleFetchError } from '@/order/lib/fetch-error';\nimport { handleNetworkError } from '@/order/lib/network-error';\nimport { handlePlaceOrderError } from '@/order/lib/place-order-error';\nimport { PlaceOrderResponse } from '@/order/types/index';\nimport { events } from '@adobe-commerce/event-bus';\nimport { PLACE_ORDER_MUTATION } from './graphql/placeOrderMutation';\nimport { setReCaptchaToken } from '@/order/lib/setReCaptchaToken';\n\nexport const placeOrder = async (\n cartId: string\n): Promise<OrderDataModel | null | undefined> => {\n if (!cartId) throw new Error('No cart ID found');\n await setReCaptchaToken();\n\n return fetchGraphQl(PLACE_ORDER_MUTATION, {\n method: 'POST',\n variables: { cartId },\n })\n .then((response: PlaceOrderResponse) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n if (response.data?.placeOrder?.errors?.length) {\n handlePlaceOrderError(response.data.placeOrder?.errors);\n }\n\n const payload = transformPlaceOrder(response);\n\n if (payload) {\n events.emit('order/placed', payload);\n events.emit('cart/reset', undefined);\n publishPlaceOrderEvent(cartId, payload);\n }\n\n return payload;\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PLACE_ORDER_FRAGMENT } from '@/order/api/graphql/PlaceOrderFragment.graphql';\n\nexport const SET_PAYMENT_METHOD_AND_PLACE_ORDER_MUTATION = /* GraphQL */ `\n mutation setPaymentMethodAndPlaceOrder($cartId: String!, $paymentMethod: PaymentMethodInput!) {\n setPaymentMethodOnCart(\n input: {\n cart_id: $cartId\n payment_method: $paymentMethod\n }\n ) {\n cart {\n selected_payment_method {\n code\n title\n }\n }\n }\n placeOrder(input: { cart_id: $cartId }) {\n ...PLACE_ORDER_FRAGMENT\n }\n }\n\n ${PLACE_ORDER_FRAGMENT}\n`;","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/order/api';\nimport { OrderDataModel } from '@/order/data/models';\nimport { transformPlaceOrder } from '@/order/data/transforms';\nimport { publishPlaceOrderEvent } from '@/order/lib/acdl';\nimport { handleFetchError } from '@/order/lib/fetch-error';\nimport { handleNetworkError } from '@/order/lib/network-error';\nimport { handlePlaceOrderError } from '@/order/lib/place-order-error';\nimport { events } from '@adobe-commerce/event-bus';\nimport { SET_PAYMENT_METHOD_AND_PLACE_ORDER_MUTATION } from './graphql/setPaymentMethodAndPlaceOrderMutation';\n\nexport const setPaymentMethodAndPlaceOrder = async (\n cartId: string,\n paymentMethod: any\n): Promise<OrderDataModel | null | undefined> => {\n if (!cartId) throw new Error('No cart ID found');\n if (!paymentMethod) throw new Error('No payment method found');\n\n return fetchGraphQl(SET_PAYMENT_METHOD_AND_PLACE_ORDER_MUTATION, {\n variables: { cartId, paymentMethod },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n // Check for errors in placeOrder part of the response\n if (response.data?.placeOrder?.errors?.length) {\n handlePlaceOrderError(response.data.placeOrder?.errors);\n }\n\n // Use the same transformation as placeOrder\n const payload = transformPlaceOrder({ data: { placeOrder: response.data?.placeOrder } });\n\n if (payload) {\n events.emit('order/placed', payload);\n events.emit('cart/reset', undefined);\n publishPlaceOrderEvent(cartId, payload);\n }\n\n return payload;\n })\n .catch(handleNetworkError);\n};\n"],"names":["sumDiscounts","accum","discount","transformShoppingCartContext","cartId","data","orderItem","_a","_b","_c","_d","_e","_f","_g","_h","selectedOption","transformOrderContext","firstCoupon","orderPayment","transformPlaceOrder","response","orderData","transformOrderData","contexts","events","getAdobeDataLayer","setContext","name","adobeDataLayer","pushEvent","event","acdl","state","getChannelContext","setChannelContext","publishPlaceOrderEvent","orderContext","shoppingCartContext","PlaceOrderError","message","handlePlaceOrderError","errors","errorMessage","e","PLACE_ORDER_MUTATION","PLACE_ORDER_FRAGMENT","setReCaptchaToken","token","verifyReCaptcha","setFetchGraphQlHeader","placeOrder","fetchGraphQl","handleFetchError","payload","handleNetworkError","SET_PAYMENT_METHOD_AND_PLACE_ORDER_MUTATION","setPaymentMethodAndPlaceOrder","paymentMethod"],"mappings":"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"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-order", "version": "1.4.0-alpha2", "@dropins/tools": "^1.4.0", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-order", "version": "1.4.0-alpha3", "@dropins/tools": "^1.4.0", "license": "SEE LICENSE IN LICENSE.md"}