Introduction
bitcoinprices.js is a JavaScript library for presenting Bitcoin prices with currency conversion.
Example:
Features
- Sourcing data from bitcoinaverage.com exchange rate market data API
- Easy to place on any web page and Bitcoin store
- Web and mobile friendly
- Integrates with Bootstrap front-end framework
- Integrates with Font Awesome icon font
- Change currency through a dropdown menu
- Change currency by clicking / touching a price on the page
- Manual currency conversions
- npm packaged for browserify consumption.
See also
-
Liberty Music Store is an online store which allows musicians to sell their songs and receive Bitcoins.. The source code of Liberty Music Store is on Github, so you can check it for the integration example.
-
The sister project bitcoinaaddress.js for making bitcoin payments and QR codes.
Demos
Demo with clickable bitcoin prices, bitcoin price menu and manu bitcoin price conversion.
Installation
No server-side components needed.
You must have jQuery (version 1.9 or later) installed.
Put bitcoinprices.js
in your application.
You manually need to call bitcoinprices.init()
to trigger the loading of exchange rate data and
making price switching logic to work:
All configuration parameters can be omitted. Then defaults from bitcoinprices.js
is used (defaultConfig
variable).
How it works
Your templating language must output Bitcoin prices with attribute:
Example price: 1.0 BTC
- You manually initialize the library with and give it a config you want to use, including bitcoinaverage.com API URL. See the demo for an example.
bitcoinprices.init()
fires HTML documentmarketdataavailable
event when the script manages to load exchange rates- Whenever the user changes price presentation format HTML document
activecurrencychange
event is fired - You can manually call
bitcoinprices.convert()
to convert between any currencies supported by bitcoinaverage.com - You can manually call call
bitcoinprices.updatePrices()
if your own JavaScripts sets the active currency and all prices on the page are updatd.
It is suggested that you cache bitcoinaverage.com API output on a local server with proper cache headers. This may considerably speed up your site and reduces bitcoinaverage.com load.
Drupal and UberCart integration
Here is another example how bitcoinprices.js
is used
with popular Drupal content management system and its UberCart eCommerce add on.
An example live site, It's time for plan B.
Integration instructions
Change UberCart templates to output price as data-price-usd
attribute.
Example modification to node--production.tpl.php
:
$usd_price = round(render($content['sell_price']['#value']) , 2); <?=$usd_price ?>
Include bitcoinprices.js
in your CSS.
Add CSS styles for .clickable-price
selector (prices become clickable only when succesful market data
exchange rates have been downloaded from bitcoinaverage). clickable-price
CSS class is added
automatically you don't need to add it to your templates:
Include an initialization JavaScript snippet as a separate JS file:
/** * Drupal + Ubercart integration for bitcoinprices.js * * Make Bitcoin prices clickable, based on the dollar amount. * * Scan document for elements with `data-price-usd` attributes, * make them clickable. */ { // Entry point to processing ; }jQuery;
Author
Mikko Ohtamaa (blog, Facebook, Twitter, Google+)
Contact for work and consulting offers.