UNPKG

@medusajs/core-flows

Version:

Set of workflow definitions for Medusa

105 lines 3.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.upsertTaxLinesWorkflow = exports.upsertTaxLinesWorkflowId = void 0; const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk"); const common_1 = require("../../common"); const get_item_tax_lines_1 = require("../../tax/steps/get-item-tax-lines"); const upsert_tax_lines_for_items_1 = require("../steps/upsert-tax-lines-for-items"); const cartFields = [ "id", "currency_code", "email", "region.id", "region.automatic_taxes", "items.id", "items.variant_id", "items.product_id", "items.product.is_giftcard", "items.product_title", "items.product_description", "items.product_subtitle", "items.product_type", "items.product_type_id", "items.product_collection", "items.product_handle", "items.variant_sku", "items.variant_barcode", "items.variant_title", "items.title", "items.quantity", "items.unit_price", "items.tax_lines.id", "items.tax_lines.description", "items.tax_lines.code", "items.tax_lines.rate", "items.tax_lines.provider_id", "shipping_methods.tax_lines.id", "shipping_methods.tax_lines.description", "shipping_methods.tax_lines.code", "shipping_methods.tax_lines.rate", "shipping_methods.tax_lines.provider_id", "shipping_methods.shipping_option_id", "shipping_methods.amount", "customer.id", "customer.email", "customer.metadata", "customer.groups.id", "shipping_address.id", "shipping_address.address_1", "shipping_address.address_2", "shipping_address.city", "shipping_address.postal_code", "shipping_address.country_code", "shipping_address.region_code", "shipping_address.province", "shipping_address.metadata", ]; exports.upsertTaxLinesWorkflowId = "upsert-tax-lines"; /** * This workflow upserts a cart's tax lines that are applied on line items and shipping methods. You can upsert the line item's quantity, unit price, and more. This workflow is executed * by the [Calculate Taxes Store API Route](https://docs.medusajs.com/api/store#carts_postcartsidtaxes). * * You can use this workflow within your own customizations or custom workflows, allowing you to upsert a cart's tax lines in your custom flows. * * @example * const { result } = await upsertTaxLinesWorkflow(container) * .run({ * input: { * cart_id: "cart_123", * items: [], * shipping_methods: [], * } * }) * * @summary * * Update a cart's tax lines. */ exports.upsertTaxLinesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.upsertTaxLinesWorkflowId, (input) => { const fetchCart = (0, workflows_sdk_1.when)({ input }, ({ input }) => { return !input.cart; }).then(() => { return (0, common_1.useRemoteQueryStep)({ entry_point: "cart", fields: cartFields, variables: { id: input.cart_id }, throw_if_key_not_found: true, list: false, }); }); const cart = (0, workflows_sdk_1.transform)({ fetchCart, input }, ({ fetchCart, input }) => { return input.cart ?? fetchCart; }); const taxLineItems = (0, get_item_tax_lines_1.getItemTaxLinesStep)((0, workflows_sdk_1.transform)({ input, cart }, (data) => ({ orderOrCart: data.cart, items: data.input.items ?? [], shipping_methods: data.input.shipping_methods ?? [], force_tax_calculation: data.input.force_tax_calculation, }))); (0, upsert_tax_lines_for_items_1.upsertTaxLinesForItemsStep)({ cart, item_tax_lines: taxLineItems.lineItemTaxLines, shipping_tax_lines: taxLineItems.shippingMethodsTaxLines, }); }); //# sourceMappingURL=upsert-tax-lines.js.map