Develop the smart contract using Solidity. You are tasked with building a smart-contract-based retail transaction system that allows users to create profiles, purchase products, and manage transactions on the Ethereum blockchain. Leave necessary and concise comments on the codes. The smart contract is supposed to achieve the following features.
1. Buyer Registration: A user can register by generating the profile with their name, email, and shipping address. Only one profile can be registered per address. Once registered, the buyer can view their own profile information.
2. Seller Registration: Only one address can register as the seller by depositing a certain amount of Ethereum coins, and the seller address is not allowed to be a buyer. Once registered, the seller can add products for sale with a name, price, and inventory. Only the seller address is allowed to add product information.
3. Product Information: Anyone can input the product id and view the corresponding product information, including the name, price, and inventory.