Abstract: The present application describes a vending machine, communicatively coupled with a server. The vending machine comprises a Vending Machine Controller (VMC), a Data Exchange (DEX), a Vivid Transaction System (VTS), a payment device and a microcontroller. The microcontroller selects one of the DEX and the VTS, by changing a jumper setting on a GPIO. The microcontroller communicates with the VMC, the DEX and/or the VTS and the payment device in order to facilitate transaction associated with the vending machine. The microcontroller extracts at least one of inventory data and transaction data from the DEX or VTS associated with the vending machine and transmit at least one of the inventory data and the transaction data to the server for further processing and analysis. The microcontroller receives recommendation information pertaining to at least one of inventory and transaction associated to the vending machine from the server based upon the processing and analysis.