Difference between revisions of "Store"
From Viper_Registry
(Created page with "2002 Viper GTS Book <html> <div id="smart-button-container"> <div style="text-align: center;"> <div id="paypal-button-container"></div> </div> </div>...") |
|||
Line 4: | Line 4: | ||
<div id="smart-button-container"> | <div id="smart-button-container"> | ||
<div style="text-align: center;"> | <div style="text-align: center;"> | ||
− | <div id="paypal-button-container"></div> | + | <div style="margin-bottom: 1.25rem;"> |
+ | <p>V-11 B2 2002 Viper GTS</p> | ||
+ | <select id="item-options"><option value="Entire Book" price="134.00">Entire Book - 134.00 USD</option><option value="Graphite Metallic Clear Coat Only" price="64.07">Graphite Metallic Clear Coat Only - 64.07 USD</option><option value="Viper Race Yellow Clear Coat" price="51.26">Viper Race Yellow Clear Coat - 51.26 USD</option><option value="Viper Red Clear Coat" price="55.46">Viper Red Clear Coat - 55.46 USD</option></select> | ||
+ | <select style="visibility: hidden" id="quantitySelect"></select> | ||
+ | </div> | ||
+ | <div id="paypal-button-container"></div> | ||
</div> | </div> | ||
</div> | </div> | ||
− | + | <script src="https://www.paypal.com/sdk/js?client-id=ASiqKx9_ADFu0v5LYsTD6osKhXWgdBG4LX5aH0sBVjGmmX8TqBWs7GveP1xqjfpb_T3tdPoN_PR9XacK&enable-funding=venmo¤cy=USD" data-sdk-integration-source="button-factory"></script> | |
− | + | <script> | |
− | + | function initPayPalButton() { | |
− | paypal.Buttons({ | + | var shipping = 0; |
− | + | 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 = 'V-11 B2 2002 Viper GTS'; |
+ | 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 = (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; | |
− | onApprove: function(data, actions) { | + | 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) { | + | }); |
− | + | }, | |
− | + | onError: function(err) { | |
− | + | console.log(err); | |
− | + | }, | |
− | + | }).render('#paypal-button-container'); | |
− | + | } | |
+ | initPayPalButton(); | ||
+ | </script> | ||
</html> | </html> |
Latest revision as of 13:53, 12 November 2022
2002 Viper GTS Book