Is there any way to have e customer text box/note for the new buttons,

Josephtrevize
Contributor
Contributor

I think this was possible with the old buttons, but not anymore. Can anyone confirm this? What I want is an option for the buyer to send a message to the seller when they make the payment, by either choosing to pay from their PP balance or by using a credit card. So the instructions box should be on the sellung site, not on the PP checkout page.

Login to Me Too
7 REPLIES 7

Nexus_Software
Contributor
Contributor

Hello,

 

One way to enable customers to add a comment is to use the custom input in your form code. E.g. :

Enter your message:

<input type="text" name="custom"> or  <textarea name="custom"></textarea>
Login to Me Too

Josephtrevize
Contributor
Contributor
That's the old html form code. I'm talking about the new one, which is just a div and a js file. The input cannot be used.
Login to Me Too

Nexus_Software
Contributor
Contributor

Hello @Josephtrevize,

 

In the context of the JavaScript SDK, there are the following available fields.

  • reference_id
  • description
  • custom_id

For example : 

paypal.Buttons({
    createOrder: function(data, actions) {
        return actions.order.create({
            purchase_units: [{
                reference_id: "Internal Reference ID for this Transaction.",
                description: "Transaction Description",
                custom_id: "127 Character string",

 When implementing your buttons, the contents of the text box could be passed to one of these variables.

 

Thank you.

Login to Me Too

Josephtrevize
Contributor
Contributor

Thank you, Nexus, but HOW exactly?

Login to Me Too

Nexus_Software
Contributor
Contributor

Hi @Josephtrevize,

 

You're welcome. One way is to get the value of the comments box into your variable using the built-in JavaScript onblur() function, then pass it to your custom_id or description field.

paypal_js_comments.png

 

This looks like the following on your page.

paypal_htm_comments.png

The result is visible in your transaction ...

comments_result.PNG

 

Thank you.

 

Powered by Custom Software : NexWebSites.com
PayPal Developers

Login to Me Too

Hey @Nexus_Software 

thanks for this idea. 
Unfortunaly it´s seems like this doesn´t work for subscriptions.

plan_id: 'myplan',
quantity: 1 // The quantity of the product for a subscription
custom_id: "comment_txt"

Do you have an idea how to solve this?

Thanks ahead!

Login to Me Too

Tggaw
Contributor
Contributor

Any help would be greatly appreciated if you could show me exactly how I can insert the coding into the code below for a text box (For personalization name) and a text/area field (for a gift message).  The code is from the old Button factory generator which is deleted now.

 

Exactly where would I insert code?

 

Much like this code: https://www.paypal-community.com/t5/PayPal-Payments-Standard/Is-there-any-way-to-have-e-customer-tex...

 

-----------------------------------

 

<script src="https://www.paypal.com/sdk/js?client-id=INSERT_LIVE_KEY=venmo&currency=USD" data-sdk-integration-source="button-factory"></script><script>
function initPayPalButton() {
var shipping = 8.95;
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 = 'Hanes T-shirt, Dream Big, #DBytertey4646';
if(orderDescription === '') {
orderDescription = 'Item';
}
paypal.Buttons({
style: {
shape: 'pill',
color: 'gold',
layout: 'vertical',
label: 'buynow',

},
createOrder: function(data, actions) {
var selectedItemDescription = itemOptions.options[itemOptions.selectedIndex].value;
var selectedItemPrice = parseFloat(itemOptions.options[itemOptions.selectedIndex].getAttribute("price"));
var tax = (7.5 === 0 || false) ? 0 : (selectedItemPrice * (parseFloat(7.5)/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: 'USD',
value: priceTotal,
breakdown: {
item_total: {
currency_code: 'USD',
value: itemTotalValue,
},
shipping: {
currency_code: 'USD',
value: shipping,
},
tax_total: {
currency_code: 'USD',
value: tax,
}
}
},
items: [{
name: selectedItemDescription,
unit_amount: {
currency_code: 'USD',
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>

Login to Me Too

Haven't Found your Answer?

It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.