You could get the value from a recordset, session variable, or other source. I think the name is always required. The amount is required for a cart item, but can be blank for a donations button. The only way to get around all of the limitations is to use something like the WebAssist eCart.