I have generate following form with Single-select-List options from PayPal
Now I Need Few Input To be Added on This Form like below.
Stacking Fee and Delivery Fee Have to insert. Delivery Fee will stay constant but Iron Bark and Stacking Fee charge will depend upon Qty that user select.
Iron bark price = $250 x QTY
Stacking Fee = $25 x QTY
So when user click paypal button for payment then at paypal check out page:
I try to Modify PayPal generate code but it’s not working, paypal doesnt allow to modify auto generated code:
function initPayPalButton() {
var shipping = 50;
//var stackfee = 25;
var itemOptions = document.querySelector("#smart-button-container #item-options");
var quantity = parseInt(10);
var quantitySelect = document.querySelector("#smart-button-container #quantitySelect");
if (!isNaN(quantity)) {
quantitySelect.style.visibility = "visible";
}
var orderDescription = '';
if(orderDescription === '') {
orderDescription = 'Item';
}
paypal.Buttons({
style: {
shape: 'rect',
color: 'gold',
layout: 'vertical',
label: 'paypal',
tagline: 'false',
},
createOrder: function(data, actions) {
var selectedItemDescription = itemOptions.options[itemOptions.selectedIndex].value;
var selectedItemPrice = parseFloat(itemOptions.options[itemOptions.selectedIndex].getAttribute("price"));
var tax = (10 === 0 || false) ? 0 : (selectedItemPrice * (parseFloat(10)/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: 'AUD',
value: priceTotal,
breakdown: {
item_total: {
currency_code: 'AUD',
value: itemTotalValue,
},
shipping: {
currency_code: 'AUD',
value: shipping,
},
tax_total: {
currency_code: 'AUD',
value: tax,
}
}
},
items: [{
name: selectedItemDescription,
unit_amount: {
currency_code: 'AUD',
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');
}
So what is the possible way to achieve this requirement…