The 'stock' plugin uses the 'product_id' field in the cart item, but this was not copied by the 'repeat' plugin. The confusion is caused by a mismatch between the API for RevBank::Cart->add and the internal representation.