Skip to content

Commit f965a72

Browse files
committed
feat: Search by billing_address and shipping_address on Order model
**What** Added `.searchable()` method to the `shipping_address` and `billing_address` relationships in the `Order` model, enabling search functionality. **Why** Previously searching via `shipping_address` and `billing_address` was not supported, limiting the ability to find orders based on shipping or billing address information. Resolves SUP-1838
1 parent 490695a commit f965a72

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

integration-tests/http/__tests__/order/admin/order.spec.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,35 @@ medusaIntegrationTestRunner({
6666
expect(response.data.orders).toHaveLength(0)
6767
expect(response.data.orders).toEqual([])
6868
})
69+
70+
it("should search orders by shipping address", async () => {
71+
let response = await api.get(`/admin/orders?fields=+shipping_address.address_1,+shipping_address.address_2`, adminHeaders)
72+
73+
expect(response.data.orders).toHaveLength(1)
74+
expect(response.data.orders).toEqual([
75+
expect.objectContaining({
76+
id: order.id,
77+
}),
78+
])
79+
80+
response = await api.get(`/admin/orders?fields=+shipping_address.address_1,+shipping_address.address_2&q=${order.shipping_address.address_1}`, adminHeaders)
81+
82+
expect(response.data.orders).toHaveLength(1)
83+
expect(response.data.orders).toEqual([
84+
expect.objectContaining({
85+
id: order.id,
86+
}),
87+
])
88+
89+
response = await api.get(`/admin/orders?q=${order.shipping_address.address_2}`, adminHeaders)
90+
91+
expect(response.data.orders).toHaveLength(1)
92+
expect(response.data.orders).toEqual([
93+
expect.objectContaining({
94+
id: order.id,
95+
}),
96+
])
97+
})
6998
})
7099

71100
describe("POST /orders/:id", () => {

packages/modules/order/src/models/order.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@ const _Order = model
2727
mappedBy: undefined,
2828
foreignKey: true,
2929
})
30+
.searchable()
3031
.nullable(),
3132
billing_address: model
3233
.hasOne<any>(() => OrderAddress, {
3334
mappedBy: undefined,
3435
foreignKey: true,
3536
})
37+
.searchable()
3638
.nullable(),
3739
summary: model.hasMany<any>(() => OrderSummary, {
3840
mappedBy: "order",

0 commit comments

Comments
 (0)