Ether and ERC20 tokens WooCommerce Payment Gateway

Description

Ether and ERC20 tokens WooCommerce Payment Gateway is the only one true decentralized ether and ERC20, ERC777 and ERC223 token payment plugin. It enables customers to pay with Ether or any ERC20, ERC777 or ERC223 token on your WooCommerce store. Your customers will be offered the option of paying with Ether or some ERC20, ERC777 or ERC223 token at checkout. If they choose that option then they will be quoted a price in Ether or ERC20, ERC777 or ERC223 token for their order automatically.

After submitting their order they will be given the details of the Ether or ERC20, ERC777 or ERC223 token transaction they should make.

Features

  • Accept payment in Ether or any ERC20, ERC777 or ERC223 token of your choice
  • Second payment method can be configured to accept Ether or token only.
  • Mobile ready with QR codes
  • Free to use. Fixed fee per purchase
  • User friendly payment wizard
  • Automatically convert order value to Ether or ERC20, ERC777 or ERC223 token at checkout
  • Option for adding a percentage mark-up to the converted price of Ether and/or tokens to help cover currency fluctuations.
  • Allows easy payment via MetaMask or any other Web3 Wallet client. If customer do not want to use MetaMask, she can just copy and paste Value, Address, and Data fields in her favorite wallet software.
  • Provides a link to install MetaMask on desktop and deep link to install Trust Wallet on mobile
  • The Disallow customer to pay with Ether option is useful to accept only some token
  • Automatic transaction tracking / reconciliation and order updates
  • Integration with the Ethereum Wallet plugin is provided. Ethereum Wallet PRO is required.
  • Token rate can be specified in the store’s base currency code
  • myCRED Point Based Stores are supported: points can be sold for ERC20 tokens
  • Custom WooCommerce currency based stores support
  • Dynamic token prices from livecoin.net, coinmarketcap.com, coinbase.com, cryptocompare.com, kanga.exchange
  • Markup per token
  • Digits after a decimal point display count setting
  • Ethereum Node JSON-RPC Endpoint and Ethereum Node Websocket Endpoint admin settings allows you to use your own Ethereum node.
  • Transaction explorer URL setting can be used to set your own blockchain explorer for tx links shown
  • The WooCommerce Deposits and other similar plugins are supported
  • The Cryptocurrency Product for WooCommerce plugin token product icons are shown on the WooCommerce Checkout page.
  • The only one true decentralized ether and ERC20, ERC777 or ERC223 token payment plugin. There are no service other that Ethereum blockchain is used in this plugin. You do not need to trust us or any other party. This plugin uses a public smart contract in the Ethereum blockchain to record and confirm orders
  • The Payment Gateway smart contract: 0x75Cc8dB78d0Ea491fdF2f254ADAaFcB46BBEDE13

Combined with the Cryptocurrency Product for WooCommerce plugin it can allow you to sell ERC20, ERC777 or ERC223 tokens for Ether or Ether for ERC20, ERC777 or ERC223 tokens.

Ether, ERC777 or ERC223 payment

The payment with Ether, ERC777 or ERC223 tokens is a simple one step process. Customer have to send one transactions to the Ethereum blockchain.

ERC20 token payment

The ERC20 token payment consists of two steps:

  • Deposit funds to the payment gateway smart contract in the Ethereum blockchain, and
  • Use this deposit to pay for your order

Customer have to send two transactions to the Ethereum blockchain:

  • first for deposit and
  • second for the real payment

    There are no need to refund the deposit to cancel the first step, since it is actually a Token.approve call that doesn’t transfer any tokens.

Business Version Features

This feature is only supported for the Business plan. Upgrade to Business

  • Custom or private network. Support for your own custom or private Ethereum fork or Quorum network.

Disclaimer

By using this free plugin you accept all responsibility for handling the account balances for all your users.

Under no circumstances is ethereumico.io or any of its affiliates responsible for any damages incurred by the use of this plugin.

Every effort has been made to harden the security of this plugin, but its safe operation depends on your site being secure overall. You, the site administrator, must take all necessary precautions to secure your WordPress installation before you connect it to any live wallets.

You are strongly advised to take the following actions (at a minimum):

By continuing to use the Ether and ERC20 tokens WooCommerce Payment Gateway plugin, you indicate that you have understood and agreed to this disclaimer.

Troubleshooting

WooCommerce session broken

If you are getting this message: ETH price quote has been updated, please check and confirm before proceeding it means that your server installation settings broke the WooCommerse session somehow. Install the WordPress Native PHP Sessions in this case.

Configure for woocommerce-deposits plugin

Use this snippet in your function.php file if the woocommerce-deposits plugin is used and you want to disable tokens payment for the full payment case.

// @see https://wordpress.stackexchange.com/a/138598/137915
add_filter('woocommerce_available_payment_gateways','my_filter_gateways',1);
function my_filter_gateways($gateways) {
    global $woocommerce;
    //Remove a specific payment option
    if (isset($gateways['ether-and-erc20-tokens-woocommerce-payment-gateway']) &&
        !(isset(WC()->cart->deposit_info['deposit_enabled']) && 
          true === WC()->cart->deposit_info['deposit_enabled'])
    ) {
        unset($gateways['ether-and-erc20-tokens-woocommerce-payment-gateway']);
    }
    return $gateways;
}

Testing

You can test this plugin in some test network for free.

Testing in ropsten

  • Set the Blockchain setting to ropsten
  • Buy some 0x6Fe928d427b0E339DB6FF1c7a852dc31b651bD3a TSX token by sending some Ropsten Ether amount to it’s Crowdsale contract: 0x773F803b0393DFb7dc77e3f7a012B79CCd8A8aB9
  • You can “buy” some Ropsten Ether for free using MetaMask
  • Set the Supported ERC20 tokens list setting to support the 0x6Fe928d427b0E339DB6FF1c7a852dc31b651bD3a token
  • Create a cheap test product in your store
  • Buy this product with Ropsten Ether and/or this TSX token
  • Check that proper amount of Ropsten Ether and/or TSX token has been sent to your payment address

Testing in rinkeby

  • Set the Blockchain setting to rinkeby
  • Buy some 0x194c35B62fF011507D6aCB55B95Ad010193d303E TSX token by sending some Rinkeby Ether amount to it’s Crowdsale contract: 0x669519e1e150dfdfcf0d747d530f2abde2ab3f0e
  • You can “buy” some Rinkeby Ether for free here: rinkeby.io
  • Set the Supported ERC20 tokens list setting to support the 0x194c35B62fF011507D6aCB55B95Ad010193d303E
  • Create a cheap test product in your store
  • Buy this product with Rinkeby Ether and/or this TSX token
  • Check that proper amount of Rinkeby Ether and/or TSX token has been sent to your payment address

Fees

The fee is published in a blockchain and is limited by a maxFee property in smart contract.
This guaranties your safety as a plugin customer. The feePercent and maxFee values a saved as % * 10^6:

  • The maxFee is 3% which is saved as 3000000 and can not be changed.
  • The feePercent is 1,5% which is saved as 1500000 and can be changed in a 0% to 3% range.

We reserve the right to change the fee in the 0% to 3% range to reflect the market changes.

l10n

This plugin is localization ready.

Languages this plugin is available now:

  • English
  • Russian(Русский)
  • Polish(Polski) by Jacek from btcleague dot net
  • Spanish(Español)
  • Chinese(中文)

Feel free to translate this plugin to your language.

Screenshots

  • The payment method choice
  • MetaMask payment method
  • Advanced panel expanded
  • QR-code dialog
  • ERC777 token payment
  • ERC20 token payment. The first (deposit) step
  • QR-code payment method account input dialog with QR-code scan button option
  • Confirmations waiting dialog
  • Payment succeeded indication panel
  • Order notes with transaction link
  • Settings: payment address and supported tokens
  • Settings: Disable Ether and Mark up percents
  • Blockchain settings
  • Gas and confirmations number settings
  • API Credentials
  • Advanced settings
  • Earnings panel: The payment method choice
  • Earnings panel: Withdraw funds panel

Installation

  • Make sure that System Requirements are met on your hosting provider. These providers are tested for compliance: Cloudways, Bluehost, SiteGround
  • Install and activate it as you would any other plugin
  • Head over to WooCommerce » Settings » Checkout » Ether and ERC20 tokens WooCommerce Payment Gateway
  • Enter your Ethereum address to receive payments and confirm markup %
  • Register for an Infura.io and Coinmarketcap.com API keys and put it in admin settings. It is required to interact with Ethereum blockchain and obtain rates. Use this guide for Infura.io: Get infura API Key.
  • Tune other options if you need to

Reviews

October 24, 2019
I have been trying to review the developers code for our project and ended up installing this plugin on our site only to find out that the contract in which users are required to send funds is not verified. Raising a lot of red flags and questions as to if at some point all funds will be removed and taken. Proceed with caution.
May 20, 2018
Oleg is an amazing developer, he has gone out of his way to help with integration issues with the plugin, which itself is amazing!
Read all 3 reviews

Contributors & Developers

“Ether and ERC20 tokens WooCommerce Payment Gateway” is open source software. The following people have contributed to this plugin.

Contributors

“Ether and ERC20 tokens WooCommerce Payment Gateway” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Ether and ERC20 tokens WooCommerce Payment Gateway” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

3.2.2

  • fix token icon display on checkout page

3.2.1

  • fix withdraw in some corner cases

3.2.0

  • Second payment method is added
  • fix Ethereum Wallet payment problem

3.1.1

  • Prepare for use with the Gateway Wrapper plugin

3.1.0

  • Spanish and Chinese locales are added

3.0.4

  • Freemius.com menu fix

3.0.3

  • Force minimum gas limit to 400000

3.0.2

  • Show Ethereum Wallet payment option only if PRO plan is active for it.
  • Support more browsers in a browserslist build

3.0.1

  • Bug fix release

3.0.0

  • Ethereum Node JSON-RPC Endpoint amd Ethereum Node Websocket Endpoint admin settings are added to allow your own Ethereum or Ethereum fork node usage.
  • New Gateway smart contract to allow one-step payment for ERC777 and ERC223
  • Funds are collected on the Gateway smart contract address. Seller can withdraw funds from the admin settings page
  • Complete UI rewrite
  • Digits after a decimal point display count setting is added for Ether and tokens
  • Fix copy buttons problem on mobile
  • Set gas price dynamically
  • Dynamic token prices from https://www.livecoin.net, https://coinmarketcap.com, https://coinbase.com, https://cryptocompare.com, https://kanga.exchange
  • Markup per token
  • Visual editor for tokens configuration on admin page
  • The Cryptocurrency Product for WooCommerce integration is added to show token product icons on the WooCommerce Checkout page.
  • FIX: If MM is not logged in, wizard allows to switch to payment without deposit made
  • Add Ether or token symbol after the Amount number
  • If not enough funds on wallet, show a link to the product page where to buy it
  • Make Wallet and MetaMask buttons same color and size
  • Make the Deposit with Ethereum Wallet button non-active and grey if there are not enough balance
  • Print user wallet chosen token and Ether balances
  • Renaming the “Next” button to “Deposit with MetaMask”