Hello paypal community, I am currently implementing a paypal checkout with the REST API for two products. One is a hardcover book which requires a shipping cost enabled at the checkout, the other is an e-book which means no shipping costs needed. The code currently reflects the shipping costs being applied to both products... Here is the code: < div id = "smart-button-container-1" > < div class = "paypal-dropdown" > < select id = "item-options-1" > < option value = "Book" price = "10" > Book - £10 </ option > < option value =" eBook" price = "6" > eBook - £6 </ option > </ select > < select style = " visibility: hidden " id = "quantitySelect1" > < option value = "1" > 1 </ option > < option value = "2" > 2 </ option > < option value = "3" > 3 </ option > < option value = "4" > 4 </ option > < option value = "5" > 5 </ option > < option value = "6" > 6 </ option > < option value = "7" > 7 </ option > < option value = "8" > 8 </ option > < option value = "9" > 9 </ option > < option value = "10" > 10 </ option > < option value = "11" > 11 </ option > < option value = "12" > 12 </ option > < option value = "13" > 13 </ option > < option value = "14" > 14 </ option > < option value = "15" > 15 </ option > < option value = "16" > 16 </ option > < option value = "17" > 17 </ option > < option value = "18" > 18 </ option > < option value = "19" > 19 </ option > < option value = "20" > 20 </ option > </ select > </ div > < div class = "paypal-checkout" id = "paypal-button-container-1" ></ div > </ div > < script > function initPayPalButton1 () { var shipping = 8 ; var itemOptions = document . querySelector ( "#smart-button-container-1 #item-options-1" ); var quantity = parseInt ( 20 ); var quantitySelect = document . querySelector ( "#smart-button-container-1 #quantitySelect1" ); if (! isNaN ( quantity )) { quantitySelect . style . visibility = "visible" ; } var orderDescription = "Acheter un livre " ; if ( orderDescription === "" ) { orderDescription = "Item" ; } paypal . Buttons ({ style : { shape : "pill" , color : "blue" , layout : "vertical" , label : "paypal" , }, createOrder : function ( data , actions ) { var selectedItemDescription = itemOptions . options [ itemOptions . selectedIndex ]. value ; var selectedItemPrice = parseFloat ( itemOptions . options [ itemOptions . selectedIndex ]. getAttribute ( "price" ) ); var tax = 0 === 0 || false ? 0 : selectedItemPrice * ( parseFloat ( 0 ) / 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 : "GBP" , value : priceTotal , breakdown : { item_total : { currency_code : "GBP" , value : itemTotalValue , }, shipping : { currency_code : "GBP" , value : shipping , }, tax_total : { currency_code : "GBP" , value : tax , }, }, }, items : [ { name : selectedItemDescription , unit_amount : { currency_code : "GBP" , 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 ) ); actions . redirect ( "thank_you_en.html" ); }); }, onError : function ( err ) { console . log ( err ); }, }) . render ( "#paypal-button-container-1" ); } initPayPalButton1 (); paypal . Buttons ({ onCancel : function ( data ) { actions . redirect ( "resources_en.html" ); }, }) </ script > Could anyone help with this request? Many Thanks!
... View more