medusa-plugin-tolgee
Version:
Medusa V2 Plugin to easily add translations to your models with Tolgee
145 lines • 12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.listShippingOptionsForCartWorkflowId = void 0;
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const core_flows_1 = require("@medusajs/medusa/core-flows");
const utils_1 = require("@medusajs/framework/utils");
exports.listShippingOptionsForCartWorkflowId = "list-shipping-options-for-cart";
const cartFieldsForPricingContext = [
"id",
"sales_channel_id",
"currency_code",
"region_id",
"shipping_address.city",
"shipping_address.country_code",
"shipping_address.province",
"shipping_address.postal_code",
"item_total",
"total",
"customer.id",
"email",
"customer.groups.id",
];
const listShippingOptionsForCartWithTranslationsWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.listShippingOptionsForCartWorkflowId, (input) => {
const cartQuery = (0, core_flows_1.useQueryGraphStep)({
entity: "cart",
filters: { id: input.cart_id },
fields: [
...cartFieldsForPricingContext,
"items.*",
"items.variant.manage_inventory",
"items.variant.inventory_items.inventory_item_id",
"items.variant.inventory_items.inventory.requires_shipping",
"items.variant.inventory_items.inventory.location_levels.*",
],
options: { throwIfKeyNotFound: true },
}).config({ name: "get-cart" });
const cart = (0, workflows_sdk_1.transform)({ cartQuery }, ({ cartQuery }) => cartQuery.data[0]);
(0, core_flows_1.validatePresenceOfStep)({
entity: cart,
fields: ["sales_channel_id", "region_id", "currency_code"],
});
const scFulfillmentSetQuery = (0, core_flows_1.useQueryGraphStep)({
entity: "sales_channels",
filters: { id: cart.sales_channel_id },
fields: [
"stock_locations.fulfillment_sets.id",
"stock_locations.id",
"stock_locations.name",
"stock_locations.address.*",
],
}).config({ name: "sales_channels-fulfillment-query" });
const scFulfillmentSets = (0, workflows_sdk_1.transform)({ scFulfillmentSetQuery }, ({ scFulfillmentSetQuery }) => scFulfillmentSetQuery.data[0]);
const { fulfillmentSetIds } = (0, workflows_sdk_1.transform)({ scFulfillmentSets }, ({ scFulfillmentSets }) => {
const fulfillmentSetIds = new Set();
scFulfillmentSets.stock_locations.forEach((stockLocation) => {
stockLocation.fulfillment_sets.forEach((fulfillmentSet) => {
fulfillmentSetIds.add(fulfillmentSet.id);
});
});
return {
fulfillmentSetIds: Array.from(fulfillmentSetIds),
};
});
const queryVariables = (0, workflows_sdk_1.transform)({ input, fulfillmentSetIds, cart }, ({ input, fulfillmentSetIds, cart }) => {
return {
id: input.option_ids,
context: {
is_return: input.is_return ? "true" : "false",
enabled_in_store: !(0, utils_1.isDefined)(input.enabled_in_store)
? "true"
: input.enabled_in_store
? "true"
: "false",
},
filters: {
fulfillment_set_id: fulfillmentSetIds,
address: {
country_code: cart.shipping_address?.country_code,
province_code: cart.shipping_address?.province,
city: cart.shipping_address?.city,
postal_expression: cart.shipping_address?.postal_code,
},
},
calculated_price: { context: cart },
translations: { context: { country_code: input.country_code } }
};
});
const shippingOptions = (0, core_flows_1.useRemoteQueryStep)({
entry_point: "shipping_options",
fields: [
"id",
"name",
"price_type",
"service_zone_id",
"shipping_profile_id",
"provider_id",
"data",
"service_zone.fulfillment_set_id",
"service_zone.fulfillment_set.type",
"service_zone.fulfillment_set.location.id",
"service_zone.fulfillment_set.location.address.*",
"type.id",
"type.label",
"type.description",
"type.code",
"provider.id",
"provider.is_enabled",
"rules.attribute",
"rules.value",
"rules.operator",
"calculated_price.*",
"prices.*",
"prices.price_rules.*",
"translations.*",
],
variables: queryVariables,
}).config({ name: "shipping-options-query" });
const shippingOptionsWithPrice = (0, workflows_sdk_1.transform)({ shippingOptions, cart }, ({ shippingOptions, cart }) => shippingOptions.map((shippingOption) => {
const price = shippingOption.calculated_price;
const locationId = shippingOption.service_zone.fulfillment_set.location.id;
const itemsAtLocationWithoutAvailableQuantity = cart.items.filter((item) => {
if (!item.variant?.manage_inventory) {
return false;
}
return item.variant.inventory_items.some((inventoryItem) => {
if (!inventoryItem.inventory.requires_shipping) {
return false;
}
const level = inventoryItem.inventory.location_levels.find((locationLevel) => {
return locationLevel.location_id === locationId;
});
return !level ? true : level.available_quantity < item.quantity;
});
});
return {
...shippingOption,
amount: price?.calculated_amount,
is_tax_inclusive: !!price?.is_calculated_price_tax_inclusive,
insufficient_inventory: itemsAtLocationWithoutAvailableQuantity.length > 0,
};
}));
return new workflows_sdk_1.WorkflowResponse(shippingOptionsWithPrice);
});
exports.default = listShippingOptionsForCartWithTranslationsWorkflow;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcHBpbmctb3B0aW9ucy13aXRoLXRyYW5zbGF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc2hpcHBpbmctb3B0aW9ucy13aXRoLXRyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMEM7QUFDMUMsNERBQTJHO0FBQzNHLHFEQUFxRDtBQUd4QyxRQUFBLG9DQUFvQyxHQUM3QyxnQ0FBZ0MsQ0FBQTtBQUVwQyxNQUFNLDJCQUEyQixHQUFHO0lBQ2hDLElBQUk7SUFDSixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLFdBQVc7SUFDWCx1QkFBdUI7SUFDdkIsK0JBQStCO0lBQy9CLDJCQUEyQjtJQUMzQiw4QkFBOEI7SUFDOUIsWUFBWTtJQUNaLE9BQU87SUFDUCxhQUFhO0lBQ2IsT0FBTztJQUNQLG9CQUFvQjtDQUN2QixDQUFBO0FBRUQsTUFBTSxrREFBa0QsR0FBRyxJQUFBLDhCQUFjLEVBQ3JFLDRDQUFvQyxFQUNwQyxDQUFDLEtBQXdGLEVBQUUsRUFBRTtJQUN6RixNQUFNLFNBQVMsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ2hDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7UUFDOUIsTUFBTSxFQUFFO1lBQ0osR0FBRywyQkFBMkI7WUFDOUIsU0FBUztZQUNULGdDQUFnQztZQUNoQyxpREFBaUQ7WUFDakQsMkRBQTJEO1lBQzNELDJEQUEyRDtTQUM5RDtRQUNELE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRTtLQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUE7SUFFL0IsTUFBTSxJQUFJLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxF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