I am working on a cart where for every 2 of one item, 1 of another item must be in the cart. The relevant items/columns in the DB are:

Items
ID 1, ItemCatID 1
ID 2, ItemCatID 1
ID 3, ItemCatID 1
ID 4, ItemCatID 2

When a customer adds any of the items with ItemCatID 1, Item ID 4 should be added to the cart in a 1:2 ratio. For every two of any combination of items from ItemCatID 1, there should be 1 of Item ID 4.

Example:

ID 1: Qty 2
ID 2: Qty 1
ID 3: Qty 3
Total of items in ItemCatID 1 = 6
ID 4 should have 3 added to the cart.

For fractions, I'll round up.

If the customer updates the quantity of items in ItemCatID 1, the quantity of Item ID 4 needs to update accordingly to half the quantity, rounded up.

(Later, there may be more items added, so I would like to make this as flexible as possible so new items don't break it, if possible, but that is not the main issue now).

I know this is probably very simple, but I can't figure it out. Should I create a calculation in the cart object and reference that later?

Any suggestions would be appreciated.