Paypal CheckOut
<div id="smart-button-container"> <div style="text-align: center;"> <div style="margin-bottom: 1.25rem;"> <p>Please select an option for art products</p> <select id="item-options"><option value="1" price="20">1 - 20 EUR</option><option value="2" price="50">2 - 50 EUR</option><option value="3" price="75">3 - 75 EUR</option><option value="4" price="100">4 - 100 EUR</option><option value="5" price="150">5 - 150 EUR</option><option value="6" price="200">6 - 200 EUR</option><option value="7" price="300">7 - 300 EUR</option><option value="8" price="500">8 - 500 EUR</option></select> <select style="visibility: hidden" id="quantitySelect"></select> </div> <div id="paypal-button-container"></div> </div> </div> <script src="https://www.paypal.com/sdk/js?client-id=sb&enable-funding=venmo¤cy=EUR" data-sdk-integration-source="button-factory"></script> <script> function initPayPalButton() { var shipping = 0; var itemOptions = document.querySelector("#smart-button-container #item-options"); var quantity = parseInt(); var quantitySelect = document.querySelector("#smart-button-container #quantitySelect"); if (!isNaN(quantity)) { quantitySelect.style.visibility = "visible"; } var orderDescription = 'Please select an option for art products'; if(orderDescription === '') { orderDescription = 'Item'; } paypal.Buttons({ style: { shape: 'pill', color: 'gold', layout: 'vertical', label: 'paypal', }, createOrder: function(data, actions) { var selectedItemDescription = itemOptions.options[itemOptions.selectedIndex].value; var selectedItemPrice = parseFloat(itemOptions.options[itemOptions.selectedIndex].getAttribute("price")); var tax = (19 === 0 || false) ? 0 : (selectedItemPrice * (parseFloat(19)/100)); if(quantitySelect.options.length > 0) { quantity = parseInt(quantitySelect.options[quantitySelect.selectedIndex].value); } else { quantity = 1; } tax *= quantity; tax = Math.round(tax * 100) / 100; var priceTotal = quantity * selectedItemPrice + parseFloat(shipping) + tax; priceTotal = Math.round(priceTotal * 100) / 100; var itemTotalValue = Math.round((selectedItemPrice * quantity) * 100) / 100; return actions.order.create({ purchase_units: [{ description: orderDescription, amount: { currency_code: 'EUR', value: priceTotal, breakdown: { item_total: { currency_code: 'EUR', value: itemTotalValue, }, shipping: { currency_code: 'EUR', value: shipping, }, tax_total: { currency_code: 'EUR', value: tax, } } }, items: [{ name: selectedItemDescription, unit_amount: { currency_code: 'EUR', value: selectedItemPrice, }, quantity: quantity }] }] }); }, onApprove: function(data, actions) { return actions.order.capture().then(function(orderData) { // Full available details console.log('Capture result', orderData, JSON.stringify(orderData, null, 2)); // Show a success message within this page, e.g. const element = document.getElementById('paypal-button-container'); element.innerHTML = ''; element.innerHTML = '<h3>Thank you for your payment!</h3>'; // Or go to another URL: actions.redirect('thank_you.html'); }); }, onError: function(err) { console.log(err); }, }).render('#paypal-button-container'); } initPayPalButton(); </script>










