Builing a cart with multiple items and the PayPal button in PHP

jmasterx picture jmasterx · Dec 30, 2009 · Viewed 9.1k times · Source

I'm building a shopping cart in PHP and want to allow customers to enter the quantity for each item and then press a button which brings you to PayPal and lists how many products you have.

On PayPal's website, all the info I found seems to lead to me needing a shopping cart. If this is absolutely necessary, how could I implement that?

Answer

slim picture slim · Jan 2, 2010

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.example.com/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.