Best practice is to customize the SKUInfoProvider.GetSKUPriceInternal method. There is a nice example how to return different price for different culture in our Code Samples. You can do the same thing for different sites. You can add new fields into SKUInfo class (eq SiteAPrice, SiteBPrice) to store additional data. Please see CustomSKUInfoProvider in Code Samples.