DEVELOPING SOLID DIGITAL COMMERCE SYSTEMS: A PROGRAMMER’S GUIDE