Electronic commerce software provides basic functions like catalog displays, shopping carts, and transaction processing. More advanced software offers middleware for integration with other systems, as well as enterprise applications, web services, and tools for customer relationship management and supply chain management. Companies must choose software based on their size, from mall-style providers for small businesses to large, customizable systems for large enterprises.