collection.addAction('Add item to order', {
scope: 'Single',
form: [
{
type: 'Collection',
label: 'Product',
collectionName: 'products',
isRequired: true,
},
{
type: 'Number',
label: 'Quantity',
isRequired: true,
},
],
execute: async (context, resultBuilder) => {
const order = await context.getRecord(['id']);
const { Product, Quantity } = context.formValues;
// Add item to order
await createOrderItem({
orderId: order.id,
productId: Product[0], // Collection returns array of IDs
quantity: Quantity,
});
// Refresh order items and total
return resultBuilder.success('Item added', {
invalidated: ['order_items'],
});
},
});