feat: add a line item to an order edit (#2243)

**What**
- Implement adding a line item to order (edit)

**How**
- _by implementing the following "flow"_
  - generate a line item
  - computing line item adjustments for that line item
  - creating tax lines
  - creating a change record

**Testing**
- **_integration tests_**
  - check if line item and order item change objects are created (with correct tax lines)
  - line item adjustments are generated if
    - fixed discount is applied to cart
    - percentage discount is applied
- **_unit tests_** 
  - ensure that methods from Inventory, LineItem, LineItemAdjustment etc. services are called 

---

RESOLVES CORE-495
This commit is contained in:
Frane Polić
2022-09-28 13:51:13 +02:00
committed by GitHub
parent 474e97252c
commit 884f36e8a8
19 changed files with 679 additions and 80 deletions

View File

@@ -8,6 +8,7 @@ import {
AdminPostOrderEditsEditLineItemsLineItemReq,
AdminPostOrderEditsOrderEditReq,
AdminPostOrderEditsReq,
AdminPostOrderEditsEditLineItemsReq,
} from "@medusajs/medusa"
import { buildOptions } from "../../utils/buildOptions"
@@ -114,6 +115,27 @@ export const useAdminUpdateOrderEdit = (
)
}
export const useAdminOrderEditLineItem = (
id: string,
options?: UseMutationOptions<
Response<AdminOrderEditsRes>,
Error,
AdminPostOrderEditsEditLineItemsReq
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
(payload: AdminPostOrderEditsEditLineItemsReq) =>
client.admin.orderEdits.addLineItem(id, payload),
buildOptions(
queryClient,
[adminOrderEditsKeys.lists(), adminOrderEditsKeys.detail(id)],
options
)
)
}
export const useAdminRequestOrderEditConfirmation = (
id: string,
options?: UseMutationOptions<Response<AdminOrderEditsRes>, Error>