Discussing Shopify Functions development, deployment, and usage in Shopify apps.
Hello. I have a function to limit the total items in the cart to 10.
When I run shopify app dev and use the function in my Development Theme, the cart/update endpoint properly returns a 422 response with the error message from the function when I try to add more than 10 items to my cart.
However, in Production, the cart/update endpoint doesn't display the message and allows more than 10.
When I'm in the actual checkout, I see the error message though.
Here's the function:
// @ts-check /** * @typedef {import("../generated/api").RunInput} RunInput * @typedef {import("../generated/api").FunctionRunResult} FunctionRunResult */ /** * @param {RunInput} input * @returns {FunctionRunResult} */ export function run(input) { const errors = []; // If the total quantity is more than 10, we add an error to the cart if (input.cart.lines.reduce((acc, { quantity }) => acc + quantity, 0) > 10) { errors.push({ localizedMessage: "Not possible to order more than 10 in total", target: "cart", }); } return { errors, }; }
This is the payload I'm sending that I'm expecting to return a 422 error response:
{ "line": "1", "quantity": "11", "sections": [ "template--17476154130659__cart-items", "cart-icon-bubble", "cart-live-region-text", "template--17476154130659__cart-footer" ], "sections_url": "/cart" }