I want to sell a product's access (URL so that it can be downloaded) using smart contract on blockchain. I dont think I can add that URL on the product's specification contract as that would be visible to everybody that is looking at the contract. How can I sell the product so that everyone can review that product was sold (blockchain use-case) but nobody can access that access url but the buyer (not really blockchain use-case) ?
In your product contract you can store the download link and the address of the buyer. When the buyer wants to download the product, he can follow the download link and send a request to the download server signed with his private key. The download server will deliver the product only if the signature matches the address stored in the contract.