PayPal Checkout (javascript) with Smart Payment Buttons create order problem PayPal Checkout (javascript) with Smart Payment Buttons create order problem javascript javascript

PayPal Checkout (javascript) with Smart Payment Buttons create order problem


After some more digging I have found the correct format:

paypal.Buttons({    createOrder: function(data, actions) {        return actions.order.create({            purchase_units: [            {                reference_id: "PUHF",                description: "Some description",                custom_id: "Something7364",                soft_descriptor: "Great description 1",                amount: {                    currency_code: "EUR",                    value: "200.00",                    breakdown: {                        item_total: {                            currency_code: "EUR",                            value: "200.00"                        }                    }                },                items: [                    {                        name: "Item 1",                        description: "The best item ever",                        sku: "xyz-2654",                        unit_amount: {                            currency_code: "EUR",                            value: "100.00"                        },                        quantity: "1"                    },                    {                        name: "Item 2",                        description: "Not bad too",                        sku: "zdc-3942",                        unit_amount: {                            currency_code: "EUR",                            value: "50.00"                        },                        quantity: "2"                    }                ],            }        ]    });},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('/api/paypal-transaction-complete', {            method: 'post',            headers: {                'content-type': 'application/json'            },            body: JSON.stringify({                orderID: data.orderID            })        });    });}}).render('#paypal-button-container');

This is an example of complete set of options:

paypal.Buttons({    createOrder: function(data, actions) {        return actions.order.create({            purchase_units: [{                reference_id: "PUHF",                description: "Sporting Goods",                custom_id: "CUST-HighFashions",                soft_descriptor: "HighFashions",                amount: {                    currency_code: "USD",                    value: "230.00",                    breakdown: {                        item_total: {                            currency_code: "USD",                            value: "180.00"                        },                        shipping: {                            currency_code: "USD",                            value: "30.00"                        },                        handling: {                            currency_code: "USD",                            value: "10.00"                        },                        tax_total: {                            currency_code: "USD",                            value: "20.00"                        },                        shipping_discount: {                            currency_code: "USD",                            value: "10"                        }                    }                },                items: [{                    name: "T-Shirt",                    description: "Green XL",                    sku: "sku01",                    unit_amount: {                         currency_code: "USD",                         value: "90.00"                    },                    tax: {                        currency_code: "USD",                        value: "10.00"                    },                    quantity: "1",                    category: "PHYSICAL_GOODS"                },                    {                    name: "Shoes",                    description: "Running, Size 10.5",                    sku: "sku02",                    unit_amount: {                         currency_code: "USD",                         value: "45.00"                    },                    tax: {                        currency_code: "USD",                        value: "5.00"                    },                    quantity: "2",                    category: "PHYSICAL_GOODS"                }                ],                shipping: {                    method: "United States Postal Service",                    address: {                        name: {                            full_name: "John",                            surname: "Doe"                        },                        address_line_1: "123 Townsend St",                        address_line_2: "Floor 6",                        admin_area_2: "San Francisco",                        admin_area_1: "CA",                        postal_code: "94107",                        country_code: "US"                    }                }            }]        })    },    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('/api/paypal-transaction-complete', {                method: 'post',                headers: {                    'content-type': 'application/json'                },                body: JSON.stringify({                    orderID: data.orderID                })            })        })    }}).render('#paypal-button-container')