Handle insufficient stock error

This commit is contained in:
Tomasz Szymanski 2021-03-24 14:00:50 +01:00
parent 8a7126f7a7
commit d44f293e2d
3 changed files with 18 additions and 0 deletions

View file

@ -6645,6 +6645,10 @@
"src_dot_utils_dot_errors_dot_graphqlError": { "src_dot_utils_dot_errors_dot_graphqlError": {
"string": "API error" "string": "API error"
}, },
"src_dot_utils_dot_errors_dot_insufficientStock": {
"context": "error message",
"string": "Cannot change the quantity because of insufficient stock"
},
"src_dot_utils_dot_errors_dot_invalid": { "src_dot_utils_dot_errors_dot_invalid": {
"string": "Invalid value" "string": "Invalid value"
}, },

View file

@ -1,6 +1,7 @@
import messages from "@saleor/containers/BackgroundTasks/messages"; import messages from "@saleor/containers/BackgroundTasks/messages";
import useNavigator from "@saleor/hooks/useNavigator"; import useNavigator from "@saleor/hooks/useNavigator";
import useNotifier from "@saleor/hooks/useNotifier"; import useNotifier from "@saleor/hooks/useNotifier";
import getOrderErrorMessage from "@saleor/utils/errors/order";
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers"; import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
import React from "react"; import React from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
@ -205,6 +206,13 @@ export const OrderDetailsMessages: React.FC<OrderDetailsMessages> = ({
defaultMessage: "Order line updated" defaultMessage: "Order line updated"
}) })
}); });
} else {
errs.forEach(error =>
pushMessage({
status: "error",
text: getOrderErrorMessage(error, intl)
})
);
} }
}; };
const handleOrderFulfillmentCancel = (data: OrderFulfillmentCancel) => { const handleOrderFulfillmentCancel = (data: OrderFulfillmentCancel) => {

View file

@ -34,6 +34,10 @@ const messages = defineMessages({
defaultMessage: "Only pre-authorized payments can be captured", defaultMessage: "Only pre-authorized payments can be captured",
description: "error message" description: "error message"
}, },
insufficientStock: {
defaultMessage: "Cannot change the quantity because of insufficient stock",
description: "error message"
},
noShippingAddress: { noShippingAddress: {
defaultMessage: defaultMessage:
"Cannot choose a shipping method for an order without the shipping address", "Cannot choose a shipping method for an order without the shipping address",
@ -79,6 +83,8 @@ function getOrderErrorMessage(
return intl.formatMessage(commonErrorMessages.graphqlError); return intl.formatMessage(commonErrorMessages.graphqlError);
case OrderErrorCode.INVALID: case OrderErrorCode.INVALID:
return intl.formatMessage(commonErrorMessages.invalid); return intl.formatMessage(commonErrorMessages.invalid);
case OrderErrorCode.INSUFFICIENT_STOCK:
return intl.formatMessage(messages.insufficientStock);
case OrderErrorCode.NOT_EDITABLE: case OrderErrorCode.NOT_EDITABLE:
return intl.formatMessage(messages.notEditable); return intl.formatMessage(messages.notEditable);
case OrderErrorCode.ORDER_NO_SHIPPING_ADDRESS: case OrderErrorCode.ORDER_NO_SHIPPING_ADDRESS: