Specific line items in paypal checkout
Asked Answered
V

1

11

I'm trying to set up PayPal to take payments on my website, and I would like to specify line items for the payments (Using the new SDK, not the javascript version)

I have tried going through the API documentation listed here: https://developer.paypal.com/docs/api/orders/v2/. However, it says I either have invalid syntax or I am missing a field.

<head>
<script>
paypal.Buttons({
    createOrder: function(data, actions) {
    return actions.order.create({
        purchase_units: [{
        amount: {
            currency_code: 'USD',
            value: '0.01',
            amount_breakdown: {

            }

          },
            items: {
                item: {
                    name: 'Cake',
                    quantity:'1',
                    unit_amount:{
                        currency_code:'USD',
                        value:'0.01'
                    }
                }
            }



    }],
        application_context: {
            shipping_preference: 'NO_SHIPPING',
        }

      });
    },
    onApprove: function(data, actions) {
    return actions.order.capture().then(function(details) {
            alert('Transaction completed by ' + details.payer.name.given_name);
            // Call your server to save the transaction
            return fetch('/paypal-transaction-complete', {
          method: 'post',
          body: JSON.stringify({
            orderID: data.orderID
          })
        });
      });
}
  }).render('#paypal-button-container');
</script>
</head>

<body>
<div id="paypal-button-container"></div>
</body>
Valerlan answered 11/2, 2019 at 23:48 Comment(0)
P
21

This is correct code for me for purchase_units. Got it from here:

https://github.com/paypal/paypal-checkout-components/issues/1016

purchase_units: [{
                amount: {
                    value: '7',
                    currency_code: 'USD',
                    breakdown: {
                        item_total: {value: '7', currency_code: 'USD'}
                    }
                },
                invoice_id: 'muesli_invoice_id',
                items: [{
                    name: 'Hafer',
                    unit_amount: {value: '3', currency_code: 'USD'},
                    quantity: '1',
                    sku: 'haf001'
                }, {
                    name: 'Discount',
                    unit_amount: {value: '4', currency_code: 'USD'},
                    quantity: '1',
                    sku: 'dsc002'
                }]
            }]
Pius answered 15/2, 2019 at 15:32 Comment(1)
sku is not a required field, although it may be important for you CalebRondo

© 2022 - 2024 — McMap. All rights reserved.