I just had to do this.
I use this form in my HTML:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="payPalForm" onsubmit="if (verify()) { get_items(); return true; } else return false;">
<input type="hidden" name="cmd" value="_cart" />
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="[PAYPAL EMAIL HERE]" />
<input type="hidden" name="currency_code" id="currency_code" value="USD" />
<input type="hidden" name="return" value="http://www.mysite.org/thank_you_kindly.html" />
<p style="text-align: center"><input type="submit" name="Submit" value="Join (via PayPal)" id="register_button" /></p>
</form>
The particular form I made can also change the currency by setting the currency_code hidden field value.
Here's the javascript function I used to add an item:
function add_item(item_number, item_name, amount, qty) {
// item number
var inp1 = document.createElement("input");
inp1.setAttribute("type", "hidden");
inp1.setAttribute("id", "item_number_"+curitem);
inp1.setAttribute("name", "item_number_"+curitem);
inp1.setAttribute("value", item_number);
// item name
var inp2 = document.createElement("input");
inp2.setAttribute("type", "hidden");
inp2.setAttribute("id", "item_name_"+curitem);
inp2.setAttribute("name", "item_name_"+curitem);
inp2.setAttribute("value", item_name);
// amount
var inp3 = document.createElement("input");
inp3.setAttribute("type", "hidden");
inp3.setAttribute("id", "amount_"+curitem);
inp3.setAttribute("name", "amount_"+curitem);
inp3.setAttribute("value", amount);
// qty
var inp4 = document.createElement("input");
inp4.setAttribute("type", "hidden");
inp4.setAttribute("id", "quantity_"+curitem);
inp4.setAttribute("name", "quantity_"+curitem);
inp4.setAttribute("value", qty);
document.getElementById('payPalForm').appendChild(inp1);
document.getElementById('payPalForm').appendChild(inp2);
document.getElementById('payPalForm').appendChild(inp3);
document.getElementById('payPalForm').appendChild(inp4);
curitem++;
}
Paste the form code into your page and call the add item function:
add_item('001- New Product', 'New Product', 1, 1);
You won't see the product, but it will be there when you actually submit the form to paypal. This is really a bit of a hack, it's answers your question, but I would look into the paypal pro code. This should get you started.