Help Regarding PayPal Api with Form

I have generate following form with Single-select-List options from PayPal
55
Now I Need Few Input To be Added on This Form like below.

56

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:

Capture

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…

  1. Well you cant change the text for “Shipping” - thats something Paypal puts on the page, not you.
  2. Your example shows a Delivery fee of 50$, not 100$.
  3. You would have to add a second item to the items[] array, name it “Stack fee”, and give it the value you give it. Make sure you specify its tax as 0 if it’s not to be taxed (you may also have to specify the tax on the actual deliverable also, just so Paypal’s internal processor is happy that you’ve totaled your tax correctly in the breakdown), but I dont know your country’s tax laws as regards such fees, so… you do whatever you need to do there.
1 Like

solved through paypal integrate form