Hi,
There is no such mechanism but you could somehow achieve it with a bit of work. You could:
- configure the "access level" setting of the prices to "registered" in each product
- set the "display add to cart button for free products" to "No" in the HikaShop configuration
This would remove the price and add to cart buttons from the products when not logged in, and instead display a "Free" text. You could then use a translation override to change that text to look like an Add to cart button but actually, it would redirect to the login form. For example:
FREE_PRICE="<a href='XXX' class='hikabtn hikacart'>Add to cart</a>"
where XXX would be the URL of the registration form with the login module on the side.
However, I think it won't be much useful and will only lower your sales by making the process more convoluted for the users. The guest carts as probably either people who didn't buy and wouldn't have even if you were doing these changes, or crawler bots (from Google, Bing, etc) scanning your pages. So I don't think you'll gain anything changing this. Also, if you have too many old carts, I would recommend looking at the cart cleaning settings of the HikaShop configuration, under the advanced tab. Maybe you would need to reduce the check frequency so that the cart clean up can keep up with the new carts.