Feat: draft order api (#6797)
This commit is contained in:
1 parent
883a75c4f3
commit
df0751f122
63 files changed
+2179
-1424
No files matched your search
@@ -1,10 +1,12 @@
|
||||
import { Modules } from "@medusajs/modules-sdk"
|
||||
import { ModuleJoinerConfig } from "@medusajs/types"
|
||||
import { MapToConfig } from "@medusajs/utils"
|
||||
import { LineItem } from "@models"
|
||||
import Order from "./models/order"
|
||||
|
||||
export const LinkableKeys: Record<string, string> = {
|
||||
order_id: "Order",
|
||||
order_item_id: "OrderLineItem",
|
||||
order_id: Order.name,
|
||||
order_item_id: LineItem.name,
|
||||
}
|
||||
|
||||
const entityLinkableKeysMap: MapToConfig = {}
|
||||
@@ -22,5 +24,12 @@ export const joinerConfig: ModuleJoinerConfig = {
|
||||
serviceName: Modules.ORDER,
|
||||
primaryKeys: ["id"],
|
||||
linkableKeys: LinkableKeys,
|
||||
alias: [],
|
||||
alias: [
|
||||
{
|
||||
name: ["order", "orders"],
|
||||
args: {
|
||||
entity: Order.name,
|
||||
},
|
||||
},
|
||||
],
|
||||
} as ModuleJoinerConfig
|
||||
@@ -33,16 +33,8 @@ export class Migration20240219102530 extends Migration {
|
||||
"customer_id" TEXT NULL,
|
||||
"version" INTEGER NOT NULL DEFAULT 1,
|
||||
"sales_channel_id" TEXT NULL,
|
||||
"status" text check (
|
||||
"status" IN (
|
||||
'pending',
|
||||
'completed',
|
||||
'draft',
|
||||
'archived',
|
||||
'canceled',
|
||||
'requires_action'
|
||||
)
|
||||
) NOT NULL DEFAULT 'pending',
|
||||
"status" text NOT NULL,
|
||||
"is_draft_order" BOOLEAN NOT NULL DEFAULT false,
|
||||
"email" text NULL,
|
||||
"currency_code" text NOT NULL,
|
||||
"shipping_address_id" text NULL,
|
||||
@@ -59,6 +51,28 @@ export class Migration20240219102530 extends Migration {
|
||||
ALTER TABLE "order"
|
||||
ADD COLUMN if NOT exists "deleted_at" timestamptz NULL;
|
||||
|
||||
ALTER TABLE "order"
|
||||
ADD COLUMN if NOT exists "is_draft_order" BOOLEAN NOT NULL DEFAULT false;
|
||||
|
||||
ALTER TABLE "order"
|
||||
ADD COLUMN if NOT exists "version" INTEGER NOT NULL DEFAULT 1;
|
||||
|
||||
|
||||
ALTER TABLE "order" ALTER COLUMN status TYPE text;
|
||||
DROP TYPE IF EXISTS order_status_enum CASCADE;
|
||||
CREATE TYPE order_status_enum AS ENUM (
|
||||
'pending',
|
||||
'completed',
|
||||
'draft',
|
||||
'archived',
|
||||
'canceled',
|
||||
'requires_action'
|
||||
);
|
||||
ALTER TABLE "order" ALTER COLUMN status DROP DEFAULT;
|
||||
ALTER TABLE "order" ALTER COLUMN status TYPE order_status_enum USING (status::text::order_status_enum);
|
||||
ALTER TABLE "order" ALTER COLUMN status SET DEFAULT 'pending';
|
||||
|
||||
|
||||
ALTER TABLE "order" DROP constraint if EXISTS "FK_6ff7e874f01b478c115fdd462eb" CASCADE;
|
||||
|
||||
ALTER TABLE "order" DROP constraint if EXISTS "FK_19b0c6293443d1b464f604c3316" CASCADE;
|
||||
@@ -129,6 +143,10 @@ export class Migration20240219102530 extends Migration {
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_deleted_at" ON "order" (
|
||||
deleted_at
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_is_draft_order" ON "order" (
|
||||
is_draft_order
|
||||
)
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
@@ -284,6 +302,7 @@ export class Migration20240219102530 extends Migration {
|
||||
"raw_compare_at_unit_price" JSONB NULL,
|
||||
"unit_price" NUMERIC NOT NULL,
|
||||
"raw_unit_price" JSONB NOT NULL,
|
||||
"metadata" JSONB NULL,
|
||||
"created_at" TIMESTAMPTZ NOT NULL DEFAULT Now(),
|
||||
"updated_at" TIMESTAMPTZ NOT NULL DEFAULT Now(),
|
||||
CONSTRAINT "order_line_item_pkey" PRIMARY KEY ("id")
|
||||
@@ -423,14 +442,12 @@ export class Migration20240219102530 extends Migration {
|
||||
ALTER TABLE if exists "order"
|
||||
ADD CONSTRAINT "order_shipping_address_id_foreign" FOREIGN KEY ("shipping_address_id") REFERENCES "order_address" ("id") ON
|
||||
UPDATE CASCADE ON
|
||||
DELETE
|
||||
SET NULL;
|
||||
DELETE CASCADE;
|
||||
|
||||
ALTER TABLE if exists "order"
|
||||
ADD CONSTRAINT "order_billing_address_id_foreign" FOREIGN KEY ("billing_address_id") REFERENCES "order_address" ("id") ON
|
||||
UPDATE CASCADE ON
|
||||
DELETE
|
||||
SET NULL;
|
||||
DELETE CASCADE;
|
||||
|
||||
ALTER TABLE if exists "order_change"
|
||||
ADD CONSTRAINT "order_change_order_id_foreign" FOREIGN KEY ("order_id") REFERENCES "order" ("id") ON
|
||||
|
||||
@@ -2,13 +2,7 @@ import {
|
||||
createPsqlIndexStatementHelper,
|
||||
generateEntityId,
|
||||
} from "@medusajs/utils"
|
||||
import {
|
||||
BeforeCreate,
|
||||
Cascade,
|
||||
Entity,
|
||||
ManyToOne,
|
||||
OnInit,
|
||||
} from "@mikro-orm/core"
|
||||
import { BeforeCreate, Entity, ManyToOne, OnInit } from "@mikro-orm/core"
|
||||
import AdjustmentLine from "./adjustment-line"
|
||||
import LineItem from "./line-item"
|
||||
|
||||
@@ -28,7 +22,7 @@ export default class LineItemAdjustment extends AdjustmentLine {
|
||||
entity: () => LineItem,
|
||||
columnType: "text",
|
||||
fieldName: "item_id",
|
||||
cascade: [Cascade.REMOVE],
|
||||
onDelete: "cascade",
|
||||
mapToPk: true,
|
||||
})
|
||||
@ItemIdIndex.MikroORMIndex()
|
||||
|
||||
@@ -122,15 +122,18 @@ export default class LineItem {
|
||||
raw_unit_price: BigNumberRawValue
|
||||
|
||||
@OneToMany(() => LineItemTaxLine, (taxLine) => taxLine.item, {
|
||||
cascade: [Cascade.PERSIST],
|
||||
cascade: [Cascade.PERSIST, "soft-remove" as Cascade],
|
||||
})
|
||||
tax_lines = new Collection<LineItemTaxLine>(this)
|
||||
|
||||
@OneToMany(() => LineItemAdjustment, (adjustment) => adjustment.item, {
|
||||
cascade: [Cascade.PERSIST],
|
||||
cascade: [Cascade.PERSIST, "soft-remove" as Cascade],
|
||||
})
|
||||
adjustments = new Collection<LineItemAdjustment>(this)
|
||||
|
||||
@Property({ columnType: "jsonb", nullable: true })
|
||||
metadata: Record<string, unknown> | null = null
|
||||
|
||||
@Property({
|
||||
onCreate: () => new Date(),
|
||||
columnType: "timestamptz",
|
||||
|
||||
@@ -7,7 +7,6 @@ import {
|
||||
} from "@medusajs/utils"
|
||||
import {
|
||||
BeforeCreate,
|
||||
Cascade,
|
||||
Entity,
|
||||
ManyToOne,
|
||||
OnInit,
|
||||
@@ -50,7 +49,7 @@ export default class OrderChangeAction {
|
||||
entity: () => Order,
|
||||
columnType: "text",
|
||||
fieldName: "order_id",
|
||||
cascade: [Cascade.REMOVE],
|
||||
onDelete: "cascade",
|
||||
mapToPk: true,
|
||||
nullable: true,
|
||||
})
|
||||
@@ -70,7 +69,7 @@ export default class OrderChangeAction {
|
||||
entity: () => OrderChange,
|
||||
columnType: "text",
|
||||
fieldName: "order_change_id",
|
||||
cascade: [Cascade.REMOVE],
|
||||
onDelete: "cascade",
|
||||
mapToPk: true,
|
||||
nullable: true,
|
||||
})
|
||||
|
||||
@@ -49,7 +49,7 @@ export default class OrderChange {
|
||||
entity: () => Order,
|
||||
columnType: "text",
|
||||
fieldName: "order_id",
|
||||
cascade: [Cascade.REMOVE],
|
||||
onDelete: "cascade",
|
||||
mapToPk: true,
|
||||
})
|
||||
@OrderIdIndex.MikroORMIndex()
|
||||
@@ -65,7 +65,7 @@ export default class OrderChange {
|
||||
version: number
|
||||
|
||||
@OneToMany(() => OrderChangeAction, (action) => action.order_change, {
|
||||
cascade: [Cascade.PERSIST],
|
||||
cascade: [Cascade.PERSIST, "sotf-remove" as Cascade],
|
||||
})
|
||||
actions = new Collection<OrderChangeAction>(this)
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ import {
|
||||
} from "@medusajs/utils"
|
||||
import {
|
||||
BeforeCreate,
|
||||
Cascade,
|
||||
Entity,
|
||||
ManyToOne,
|
||||
OnInit,
|
||||
@@ -55,14 +54,11 @@ export default class OrderSummary {
|
||||
columnType: "text",
|
||||
fieldName: "order_id",
|
||||
mapToPk: true,
|
||||
cascade: [Cascade.REMOVE],
|
||||
onDelete: "cascade",
|
||||
})
|
||||
order_id: string
|
||||
|
||||
@ManyToOne({
|
||||
entity: () => Order,
|
||||
fieldName: "order_id",
|
||||
cascade: [Cascade.REMOVE],
|
||||
@ManyToOne(() => Order, {
|
||||
persist: false,
|
||||
})
|
||||
order: Order
|
||||
|
||||
@@ -70,6 +70,12 @@ const BillingAddressIdIndex = createPsqlIndexStatementHelper({
|
||||
where: "deleted_at IS NOT NULL",
|
||||
})
|
||||
|
||||
const IsDraftOrderIndex = createPsqlIndexStatementHelper({
|
||||
tableName: "order",
|
||||
columns: "is_draft_order",
|
||||
where: "deleted_at IS NOT NULL",
|
||||
})
|
||||
|
||||
@Entity({ tableName: "order" })
|
||||
export default class Order {
|
||||
[OptionalProps]?: OptionalOrderProps
|
||||
@@ -107,6 +113,12 @@ export default class Order {
|
||||
@Enum({ items: () => OrderStatus, default: OrderStatus.PENDING })
|
||||
status: OrderStatus
|
||||
|
||||
@Property({
|
||||
columnType: "boolean",
|
||||
})
|
||||
@IsDraftOrderIndex.MikroORMIndex()
|
||||
is_draft_order = false
|
||||
|
||||
@Property({ columnType: "text", nullable: true })
|
||||
email: string | null = null
|
||||
|
||||
|
||||
@@ -2,13 +2,7 @@ import {
|
||||
createPsqlIndexStatementHelper,
|
||||
generateEntityId,
|
||||
} from "@medusajs/utils"
|
||||
import {
|
||||
BeforeCreate,
|
||||
Cascade,
|
||||
Entity,
|
||||
ManyToOne,
|
||||
OnInit,
|
||||
} from "@mikro-orm/core"
|
||||
import { BeforeCreate, Entity, ManyToOne, OnInit } from "@mikro-orm/core"
|
||||
import AdjustmentLine from "./adjustment-line"
|
||||
import ShippingMethod from "./shipping-method"
|
||||
|
||||
@@ -29,7 +23,7 @@ export default class ShippingMethodAdjustment extends AdjustmentLine {
|
||||
columnType: "text",
|
||||
fieldName: "shipping_method_id",
|
||||
mapToPk: true,
|
||||
cascade: [Cascade.REMOVE],
|
||||
onDelete: "cascade",
|
||||
})
|
||||
@ShippingMethodIdIdIndex.MikroORMIndex()
|
||||
shipping_method_id: string
|
||||
|
||||
@@ -2,13 +2,7 @@ import {
|
||||
createPsqlIndexStatementHelper,
|
||||
generateEntityId,
|
||||
} from "@medusajs/utils"
|
||||
import {
|
||||
BeforeCreate,
|
||||
Cascade,
|
||||
Entity,
|
||||
ManyToOne,
|
||||
OnInit,
|
||||
} from "@mikro-orm/core"
|
||||
import { BeforeCreate, Entity, ManyToOne, OnInit } from "@mikro-orm/core"
|
||||
import ShippingMethod from "./shipping-method"
|
||||
import TaxLine from "./tax-line"
|
||||
|
||||
@@ -29,7 +23,7 @@ export default class ShippingMethodTaxLine extends TaxLine {
|
||||
fieldName: "shipping_method_id",
|
||||
columnType: "text",
|
||||
mapToPk: true,
|
||||
cascade: [Cascade.REMOVE],
|
||||
onDelete: "cascade",
|
||||
})
|
||||
@ShippingMethodIdIdIndex.MikroORMIndex()
|
||||
shipping_method_id: string
|
||||
|
||||
@@ -46,15 +46,12 @@ export default class ShippingMethod {
|
||||
columnType: "text",
|
||||
fieldName: "order_id",
|
||||
mapToPk: true,
|
||||
cascade: [Cascade.REMOVE],
|
||||
onDelete: "cascade",
|
||||
})
|
||||
@OrderIdIndex.MikroORMIndex()
|
||||
order_id: string
|
||||
|
||||
@ManyToOne({
|
||||
entity: () => Order,
|
||||
fieldName: "order_id",
|
||||
cascade: [Cascade.REMOVE],
|
||||
@ManyToOne(() => Order, {
|
||||
persist: false,
|
||||
})
|
||||
order: Order
|
||||
|
||||
@@ -7,7 +7,6 @@ import {
|
||||
} from "@medusajs/utils"
|
||||
import {
|
||||
BeforeCreate,
|
||||
Cascade,
|
||||
Entity,
|
||||
ManyToOne,
|
||||
OnInit,
|
||||
@@ -45,7 +44,7 @@ export default class Transaction {
|
||||
entity: () => Order,
|
||||
columnType: "text",
|
||||
fieldName: "order_id",
|
||||
cascade: [Cascade.REMOVE],
|
||||
onDelete: "cascade",
|
||||
mapToPk: true,
|
||||
})
|
||||
@OrderIdIndex.MikroORMIndex()
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import {
|
||||
Context,
|
||||
DAL,
|
||||
FilterableLineItemTaxLineProps,
|
||||
FindConfig,
|
||||
InternalModuleDeclaration,
|
||||
IOrderModuleService,
|
||||
@@ -299,7 +298,7 @@ export default class OrderModuleService<
|
||||
}
|
||||
|
||||
if (lineItemsToCreate.length) {
|
||||
await this.addLineItemsBulk_(lineItemsToCreate, sharedContext)
|
||||
await this.createLineItemsBulk_(lineItemsToCreate, sharedContext)
|
||||
}
|
||||
|
||||
return createdOrders
|
||||
@@ -314,7 +313,7 @@ export default class OrderModuleService<
|
||||
sharedContext?: Context
|
||||
): Promise<OrderTypes.OrderDTO>
|
||||
async update(
|
||||
selector: Partial<OrderTypes.OrderDTO>,
|
||||
selector: Partial<OrderTypes.FilterableOrderProps>,
|
||||
data: OrderTypes.UpdateOrderDTO,
|
||||
sharedContext?: Context
|
||||
): Promise<OrderTypes.OrderDTO[]>
|
||||
@@ -324,7 +323,7 @@ export default class OrderModuleService<
|
||||
dataOrIdOrSelector:
|
||||
| OrderTypes.UpdateOrderDTO[]
|
||||
| string
|
||||
| Partial<OrderTypes.OrderDTO>,
|
||||
| Partial<OrderTypes.FilterableOrderProps>,
|
||||
data?: OrderTypes.UpdateOrderDTO,
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<OrderTypes.OrderDTO[] | OrderTypes.OrderDTO> {
|
||||
@@ -344,7 +343,7 @@ export default class OrderModuleService<
|
||||
dataOrIdOrSelector:
|
||||
| OrderTypes.UpdateOrderDTO[]
|
||||
| string
|
||||
| Partial<OrderTypes.OrderDTO>,
|
||||
| Partial<OrderTypes.FilterableOrderProps>,
|
||||
data?: OrderTypes.UpdateOrderDTO,
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
) {
|
||||
@@ -377,20 +376,20 @@ export default class OrderModuleService<
|
||||
return result
|
||||
}
|
||||
|
||||
addLineItems(
|
||||
createLineItems(
|
||||
data: OrderTypes.CreateOrderLineItemForOrderDTO
|
||||
): Promise<OrderTypes.OrderLineItemDTO[]>
|
||||
addLineItems(
|
||||
createLineItems(
|
||||
data: OrderTypes.CreateOrderLineItemForOrderDTO[]
|
||||
): Promise<OrderTypes.OrderLineItemDTO[]>
|
||||
addLineItems(
|
||||
createLineItems(
|
||||
orderId: string,
|
||||
items: OrderTypes.CreateOrderLineItemDTO[],
|
||||
sharedContext?: Context
|
||||
): Promise<OrderTypes.OrderLineItemDTO[]>
|
||||
|
||||
@InjectManager("baseRepository_")
|
||||
async addLineItems(
|
||||
async createLineItems(
|
||||
orderIdOrData:
|
||||
| string
|
||||
| OrderTypes.CreateOrderLineItemForOrderDTO[]
|
||||
@@ -402,7 +401,7 @@ export default class OrderModuleService<
|
||||
): Promise<OrderTypes.OrderLineItemDTO[]> {
|
||||
let items: LineItem[] = []
|
||||
if (isString(orderIdOrData)) {
|
||||
items = await this.addLineItems_(
|
||||
items = await this.createLineItems_(
|
||||
orderIdOrData,
|
||||
data as OrderTypes.CreateOrderLineItemDTO[],
|
||||
sharedContext
|
||||
@@ -411,7 +410,7 @@ export default class OrderModuleService<
|
||||
const data = Array.isArray(orderIdOrData)
|
||||
? orderIdOrData
|
||||
: [orderIdOrData]
|
||||
items = await this.addLineItemsBulk_(data, sharedContext)
|
||||
items = await this.createLineItemsBulk_(data, sharedContext)
|
||||
}
|
||||
|
||||
return await this.baseRepository_.serialize<OrderTypes.OrderLineItemDTO[]>(
|
||||
@@ -423,7 +422,7 @@ export default class OrderModuleService<
|
||||
}
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
protected async addLineItems_(
|
||||
protected async createLineItems_(
|
||||
orderId: string,
|
||||
items: OrderTypes.CreateOrderLineItemDTO[],
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
@@ -442,11 +441,11 @@ export default class OrderModuleService<
|
||||
}
|
||||
})
|
||||
|
||||
return await this.addLineItemsBulk_(toUpdate, sharedContext)
|
||||
return await this.createLineItemsBulk_(toUpdate, sharedContext)
|
||||
}
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
protected async addLineItemsBulk_(
|
||||
protected async createLineItemsBulk_(
|
||||
data: CreateOrderLineItemDTO[],
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<LineItem[]> {
|
||||
@@ -479,7 +478,7 @@ export default class OrderModuleService<
|
||||
data: OrderTypes.UpdateOrderLineItemWithSelectorDTO[]
|
||||
): Promise<OrderTypes.OrderLineItemDTO[]>
|
||||
updateLineItems(
|
||||
selector: Partial<OrderTypes.OrderLineItemDTO>,
|
||||
selector: Partial<OrderTypes.FilterableOrderLineItemProps>,
|
||||
data: OrderTypes.UpdateOrderLineItemDTO,
|
||||
sharedContext?: Context
|
||||
): Promise<OrderTypes.OrderLineItemDTO[]>
|
||||
@@ -494,7 +493,7 @@ export default class OrderModuleService<
|
||||
lineItemIdOrDataOrSelector:
|
||||
| string
|
||||
| OrderTypes.UpdateOrderLineItemWithSelectorDTO[]
|
||||
| Partial<OrderTypes.OrderLineItemDTO>,
|
||||
| Partial<OrderTypes.FilterableOrderLineItemProps>,
|
||||
data?:
|
||||
| OrderTypes.UpdateOrderLineItemDTO
|
||||
| Partial<OrderTypes.UpdateOrderLineItemDTO>,
|
||||
@@ -688,40 +687,6 @@ export default class OrderModuleService<
|
||||
return await this.orderItemService_.update(toUpdate, sharedContext)
|
||||
}
|
||||
|
||||
async removeLineItems(
|
||||
itemIds: string[],
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
async removeLineItems(itemIds: string, sharedContext?: Context): Promise<void>
|
||||
async removeLineItems(
|
||||
selector: Partial<OrderTypes.OrderLineItemDTO>,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
async removeLineItems(
|
||||
itemIdsOrSelector: string | string[] | Partial<OrderTypes.OrderLineItemDTO>,
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<void> {
|
||||
let toDelete: string[]
|
||||
|
||||
if (isObject(itemIdsOrSelector)) {
|
||||
const items = await this.listLineItems(
|
||||
{ ...itemIdsOrSelector } as Partial<OrderTypes.OrderLineItemDTO>,
|
||||
{},
|
||||
sharedContext
|
||||
)
|
||||
|
||||
toDelete = items.map((item) => item.id)
|
||||
} else {
|
||||
toDelete = Array.isArray(itemIdsOrSelector)
|
||||
? itemIdsOrSelector
|
||||
: [itemIdsOrSelector]
|
||||
}
|
||||
|
||||
await this.lineItemService_.delete(toDelete, sharedContext)
|
||||
}
|
||||
|
||||
async createAddresses(
|
||||
data: OrderTypes.CreateOrderAddressDTO,
|
||||
sharedContext?: Context
|
||||
@@ -794,20 +759,20 @@ export default class OrderModuleService<
|
||||
return await this.addressService_.update(data, sharedContext)
|
||||
}
|
||||
|
||||
async addShippingMethods(
|
||||
async createShippingMethods(
|
||||
data: OrderTypes.CreateOrderShippingMethodDTO
|
||||
): Promise<OrderTypes.OrderShippingMethodDTO>
|
||||
async addShippingMethods(
|
||||
async createShippingMethods(
|
||||
data: OrderTypes.CreateOrderShippingMethodDTO[]
|
||||
): Promise<OrderTypes.OrderShippingMethodDTO[]>
|
||||
async addShippingMethods(
|
||||
async createShippingMethods(
|
||||
orderId: string,
|
||||
methods: OrderTypes.CreateOrderShippingMethodDTO[],
|
||||
sharedContext?: Context
|
||||
): Promise<OrderTypes.OrderShippingMethodDTO[]>
|
||||
|
||||
@InjectManager("baseRepository_")
|
||||
async addShippingMethods(
|
||||
async createShippingMethods(
|
||||
orderIdOrData:
|
||||
| string
|
||||
| OrderTypes.CreateOrderShippingMethodDTO[]
|
||||
@@ -819,7 +784,7 @@ export default class OrderModuleService<
|
||||
> {
|
||||
let methods: ShippingMethod[]
|
||||
if (isString(orderIdOrData)) {
|
||||
methods = await this.addShippingMethods_(
|
||||
methods = await this.createShippingMethods_(
|
||||
orderIdOrData,
|
||||
data!,
|
||||
sharedContext
|
||||
@@ -828,7 +793,7 @@ export default class OrderModuleService<
|
||||
const data = Array.isArray(orderIdOrData)
|
||||
? orderIdOrData
|
||||
: [orderIdOrData]
|
||||
methods = await this.addShippingMethodsBulk_(
|
||||
methods = await this.createShippingMethodsBulk_(
|
||||
data as OrderTypes.CreateOrderShippingMethodDTO[],
|
||||
sharedContext
|
||||
)
|
||||
@@ -840,7 +805,7 @@ export default class OrderModuleService<
|
||||
}
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
protected async addShippingMethods_(
|
||||
protected async createShippingMethods_(
|
||||
orderId: string,
|
||||
data: CreateOrderShippingMethodDTO[],
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
@@ -859,11 +824,11 @@ export default class OrderModuleService<
|
||||
}
|
||||
})
|
||||
|
||||
return await this.addShippingMethodsBulk_(methods, sharedContext)
|
||||
return await this.createShippingMethodsBulk_(methods, sharedContext)
|
||||
}
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
protected async addShippingMethodsBulk_(
|
||||
protected async createShippingMethodsBulk_(
|
||||
data: OrderTypes.CreateOrderShippingMethodDTO[],
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<ShippingMethod[]> {
|
||||
@@ -873,60 +838,20 @@ export default class OrderModuleService<
|
||||
)
|
||||
}
|
||||
|
||||
async removeShippingMethods(
|
||||
methodIds: string[],
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
async removeShippingMethods(
|
||||
methodIds: string,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
async removeShippingMethods(
|
||||
selector: Partial<OrderTypes.OrderShippingMethodDTO>,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
async removeShippingMethods(
|
||||
methodIdsOrSelector:
|
||||
| string
|
||||
| string[]
|
||||
| Partial<OrderTypes.OrderShippingMethodDTO>,
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<void> {
|
||||
let toDelete: string[]
|
||||
if (isObject(methodIdsOrSelector)) {
|
||||
const methods = await this.listShippingMethods(
|
||||
{
|
||||
...(methodIdsOrSelector as Partial<OrderTypes.OrderShippingMethodDTO>),
|
||||
},
|
||||
{},
|
||||
sharedContext
|
||||
)
|
||||
|
||||
toDelete = methods.map((m) => m.id)
|
||||
} else {
|
||||
toDelete = Array.isArray(methodIdsOrSelector)
|
||||
? methodIdsOrSelector
|
||||
: [methodIdsOrSelector]
|
||||
}
|
||||
await this.shippingMethodService_.delete(toDelete, sharedContext)
|
||||
}
|
||||
|
||||
async addLineItemAdjustments(
|
||||
async createLineItemAdjustments(
|
||||
adjustments: OrderTypes.CreateOrderLineItemAdjustmentDTO[]
|
||||
): Promise<OrderTypes.OrderLineItemAdjustmentDTO[]>
|
||||
async addLineItemAdjustments(
|
||||
async createLineItemAdjustments(
|
||||
adjustment: OrderTypes.CreateOrderLineItemAdjustmentDTO
|
||||
): Promise<OrderTypes.OrderLineItemAdjustmentDTO[]>
|
||||
async addLineItemAdjustments(
|
||||
async createLineItemAdjustments(
|
||||
orderId: string,
|
||||
adjustments: OrderTypes.CreateOrderLineItemAdjustmentDTO[],
|
||||
sharedContext?: Context
|
||||
): Promise<OrderTypes.OrderLineItemAdjustmentDTO[]>
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
async addLineItemAdjustments(
|
||||
async createLineItemAdjustments(
|
||||
orderIdOrData:
|
||||
| string
|
||||
| OrderTypes.CreateOrderLineItemAdjustmentDTO[]
|
||||
@@ -1026,46 +951,6 @@ export default class OrderModuleService<
|
||||
})
|
||||
}
|
||||
|
||||
async removeLineItemAdjustments(
|
||||
adjustmentIds: string[],
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
async removeLineItemAdjustments(
|
||||
adjustmentId: string,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
async removeLineItemAdjustments(
|
||||
selector: Partial<OrderTypes.OrderLineItemAdjustmentDTO>,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
|
||||
async removeLineItemAdjustments(
|
||||
adjustmentIdsOrSelector:
|
||||
| string
|
||||
| string[]
|
||||
| Partial<OrderTypes.OrderLineItemAdjustmentDTO>,
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<void> {
|
||||
let ids: string[]
|
||||
if (isObject(adjustmentIdsOrSelector)) {
|
||||
const adjustments = await this.listLineItemAdjustments(
|
||||
{
|
||||
...adjustmentIdsOrSelector,
|
||||
} as Partial<OrderTypes.OrderLineItemAdjustmentDTO>,
|
||||
{ select: ["id"] },
|
||||
sharedContext
|
||||
)
|
||||
|
||||
ids = adjustments.map((adj) => adj.id)
|
||||
} else {
|
||||
ids = Array.isArray(adjustmentIdsOrSelector)
|
||||
? adjustmentIdsOrSelector
|
||||
: [adjustmentIdsOrSelector]
|
||||
}
|
||||
|
||||
await this.lineItemAdjustmentService_.delete(ids, sharedContext)
|
||||
}
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
async setShippingMethodAdjustments(
|
||||
orderId: string,
|
||||
@@ -1122,20 +1007,20 @@ export default class OrderModuleService<
|
||||
})
|
||||
}
|
||||
|
||||
async addShippingMethodAdjustments(
|
||||
async createShippingMethodAdjustments(
|
||||
adjustments: OrderTypes.CreateOrderShippingMethodAdjustmentDTO[]
|
||||
): Promise<OrderTypes.OrderShippingMethodAdjustmentDTO[]>
|
||||
async addShippingMethodAdjustments(
|
||||
async createShippingMethodAdjustments(
|
||||
adjustment: OrderTypes.CreateOrderShippingMethodAdjustmentDTO
|
||||
): Promise<OrderTypes.OrderShippingMethodAdjustmentDTO>
|
||||
async addShippingMethodAdjustments(
|
||||
async createShippingMethodAdjustments(
|
||||
orderId: string,
|
||||
adjustments: OrderTypes.CreateOrderShippingMethodAdjustmentDTO[],
|
||||
sharedContext?: Context
|
||||
): Promise<OrderTypes.OrderShippingMethodAdjustmentDTO[]>
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
async addShippingMethodAdjustments(
|
||||
async createShippingMethodAdjustments(
|
||||
orderIdOrData:
|
||||
| string
|
||||
| OrderTypes.CreateOrderShippingMethodAdjustmentDTO[]
|
||||
@@ -1196,53 +1081,13 @@ export default class OrderModuleService<
|
||||
})
|
||||
}
|
||||
|
||||
async removeShippingMethodAdjustments(
|
||||
adjustmentIds: string[],
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
async removeShippingMethodAdjustments(
|
||||
adjustmentId: string,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
async removeShippingMethodAdjustments(
|
||||
selector: Partial<OrderTypes.OrderShippingMethodAdjustmentDTO>,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
|
||||
async removeShippingMethodAdjustments(
|
||||
adjustmentIdsOrSelector:
|
||||
| string
|
||||
| string[]
|
||||
| Partial<OrderTypes.OrderShippingMethodAdjustmentDTO>,
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<void> {
|
||||
let ids: string[]
|
||||
if (isObject(adjustmentIdsOrSelector)) {
|
||||
const adjustments = await this.listShippingMethodAdjustments(
|
||||
{
|
||||
...adjustmentIdsOrSelector,
|
||||
} as Partial<OrderTypes.OrderShippingMethodAdjustmentDTO>,
|
||||
{ select: ["id"] },
|
||||
sharedContext
|
||||
)
|
||||
|
||||
ids = adjustments.map((adj) => adj.id)
|
||||
} else {
|
||||
ids = Array.isArray(adjustmentIdsOrSelector)
|
||||
? adjustmentIdsOrSelector
|
||||
: [adjustmentIdsOrSelector]
|
||||
}
|
||||
|
||||
await this.shippingMethodAdjustmentService_.delete(ids, sharedContext)
|
||||
}
|
||||
|
||||
addLineItemTaxLines(
|
||||
createLineItemTaxLines(
|
||||
taxLines: OrderTypes.CreateOrderLineItemTaxLineDTO[]
|
||||
): Promise<OrderTypes.OrderLineItemTaxLineDTO[]>
|
||||
addLineItemTaxLines(
|
||||
createLineItemTaxLines(
|
||||
taxLine: OrderTypes.CreateOrderLineItemTaxLineDTO
|
||||
): Promise<OrderTypes.OrderLineItemTaxLineDTO>
|
||||
addLineItemTaxLines(
|
||||
createLineItemTaxLines(
|
||||
orderId: string,
|
||||
taxLines:
|
||||
| OrderTypes.CreateOrderLineItemTaxLineDTO[]
|
||||
@@ -1251,7 +1096,7 @@ export default class OrderModuleService<
|
||||
): Promise<OrderTypes.OrderLineItemTaxLineDTO[]>
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
async addLineItemTaxLines(
|
||||
async createLineItemTaxLines(
|
||||
orderIdOrData:
|
||||
| string
|
||||
| OrderTypes.CreateOrderLineItemTaxLineDTO[]
|
||||
@@ -1346,53 +1191,13 @@ export default class OrderModuleService<
|
||||
})
|
||||
}
|
||||
|
||||
removeLineItemTaxLines(
|
||||
taxLineIds: string[],
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
removeLineItemTaxLines(
|
||||
taxLineIds: string,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
removeLineItemTaxLines(
|
||||
selector: FilterableLineItemTaxLineProps,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
|
||||
async removeLineItemTaxLines(
|
||||
taxLineIdsOrSelector:
|
||||
| string
|
||||
| string[]
|
||||
| OrderTypes.FilterableOrderShippingMethodTaxLineProps,
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<void> {
|
||||
let ids: string[]
|
||||
if (isObject(taxLineIdsOrSelector)) {
|
||||
const taxLines = await this.listLineItemTaxLines(
|
||||
{
|
||||
...(taxLineIdsOrSelector as OrderTypes.FilterableOrderLineItemTaxLineProps),
|
||||
},
|
||||
{ select: ["id"] },
|
||||
sharedContext
|
||||
)
|
||||
|
||||
ids = taxLines.map((taxLine) => taxLine.id)
|
||||
} else {
|
||||
ids = Array.isArray(taxLineIdsOrSelector)
|
||||
? taxLineIdsOrSelector
|
||||
: [taxLineIdsOrSelector]
|
||||
}
|
||||
|
||||
await this.lineItemTaxLineService_.delete(ids, sharedContext)
|
||||
}
|
||||
|
||||
addShippingMethodTaxLines(
|
||||
createShippingMethodTaxLines(
|
||||
taxLines: OrderTypes.CreateOrderShippingMethodTaxLineDTO[]
|
||||
): Promise<OrderTypes.OrderShippingMethodTaxLineDTO[]>
|
||||
addShippingMethodTaxLines(
|
||||
createShippingMethodTaxLines(
|
||||
taxLine: OrderTypes.CreateOrderShippingMethodTaxLineDTO
|
||||
): Promise<OrderTypes.OrderShippingMethodTaxLineDTO>
|
||||
addShippingMethodTaxLines(
|
||||
createShippingMethodTaxLines(
|
||||
orderId: string,
|
||||
taxLines:
|
||||
| OrderTypes.CreateOrderShippingMethodTaxLineDTO[]
|
||||
@@ -1401,7 +1206,7 @@ export default class OrderModuleService<
|
||||
): Promise<OrderTypes.OrderShippingMethodTaxLineDTO[]>
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
async addShippingMethodTaxLines(
|
||||
async createShippingMethodTaxLines(
|
||||
orderIdOrData:
|
||||
| string
|
||||
| OrderTypes.CreateOrderShippingMethodTaxLineDTO[]
|
||||
@@ -1496,46 +1301,6 @@ export default class OrderModuleService<
|
||||
})
|
||||
}
|
||||
|
||||
removeShippingMethodTaxLines(
|
||||
taxLineIds: string[],
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
removeShippingMethodTaxLines(
|
||||
taxLineIds: string,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
removeShippingMethodTaxLines(
|
||||
selector: Partial<OrderTypes.OrderShippingMethodTaxLineDTO>,
|
||||
sharedContext?: Context
|
||||
): Promise<void>
|
||||
|
||||
async removeShippingMethodTaxLines(
|
||||
taxLineIdsOrSelector:
|
||||
| string
|
||||
| string[]
|
||||
| OrderTypes.FilterableOrderShippingMethodTaxLineProps,
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<void> {
|
||||
let ids: string[]
|
||||
if (isObject(taxLineIdsOrSelector)) {
|
||||
const taxLines = await this.listShippingMethodTaxLines(
|
||||
{
|
||||
...(taxLineIdsOrSelector as OrderTypes.FilterableOrderShippingMethodTaxLineProps),
|
||||
},
|
||||
{ select: ["id"] },
|
||||
sharedContext
|
||||
)
|
||||
|
||||
ids = taxLines.map((taxLine) => taxLine.id)
|
||||
} else {
|
||||
ids = Array.isArray(taxLineIdsOrSelector)
|
||||
? taxLineIdsOrSelector
|
||||
: [taxLineIdsOrSelector]
|
||||
}
|
||||
|
||||
await this.shippingMethodTaxLineService_.delete(ids, sharedContext)
|
||||
}
|
||||
|
||||
async createOrderChange(
|
||||
data: OrderTypes.CreateOrderChangeDTO,
|
||||
sharedContext?: Context
|
||||
@@ -1877,8 +1642,23 @@ export default class OrderModuleService<
|
||||
return orderChanges
|
||||
}
|
||||
|
||||
async addOrderAction(
|
||||
data: OrderTypes.CreateOrderChangeActionDTO,
|
||||
sharedContext?: Context
|
||||
): Promise<OrderTypes.OrderChangeActionDTO>
|
||||
async addOrderAction(
|
||||
data: OrderTypes.CreateOrderChangeActionDTO[],
|
||||
sharedContext?: Context
|
||||
): Promise<OrderTypes.OrderChangeActionDTO[]>
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
async addOrderAction(data: any, sharedContext?: Context): Promise<any> {
|
||||
async addOrderAction(
|
||||
data:
|
||||
| OrderTypes.CreateOrderChangeActionDTO
|
||||
| OrderTypes.CreateOrderChangeActionDTO[],
|
||||
sharedContext?: Context
|
||||
): Promise<
|
||||
OrderTypes.OrderChangeActionDTO | OrderTypes.OrderChangeActionDTO[]
|
||||
> {
|
||||
let dataArr = Array.isArray(data) ? data : [data]
|
||||
|
||||
const orderChangeMap = {}
|
||||
@@ -1908,7 +1688,11 @@ export default class OrderModuleService<
|
||||
}
|
||||
}
|
||||
|
||||
return await this.orderChangeActionService_.create(dataArr, sharedContext)
|
||||
const actions = (await this.orderChangeActionService_.create(
|
||||
dataArr,
|
||||
sharedContext
|
||||
)) as OrderTypes.OrderChangeActionDTO[]
|
||||
return Array.isArray(data) ? actions : actions[0]
|
||||
}
|
||||
|
||||
private async applyOrderChanges_(
|
||||
|
||||
@@ -2,7 +2,7 @@ import { BigNumberInput } from "@medusajs/types"
|
||||
|
||||
export interface CreateOrderShippingMethodDTO {
|
||||
name: string
|
||||
shipping_method_id: string
|
||||
shipping_option_id?: string
|
||||
order_id: string
|
||||
version?: number
|
||||
amount: BigNumberInput
|
||||
@@ -11,7 +11,7 @@ export interface CreateOrderShippingMethodDTO {
|
||||
|
||||
export interface UpdateOrderShippingMethodDTO {
|
||||
id: string
|
||||
shipping_method_id: string
|
||||
shipping_option_id?: string
|
||||
name?: string
|
||||
amount?: BigNumberInput
|
||||
data?: Record<string, unknown>
|
||||
|
||||
Reference in new issue
Block a user