shop main listing and basic cart add functions