fixed the promotion/rule bmsm class. replace orderby with order().reverse_order
Check for user when calculating and determining eligibility. This allows users to populate cart even not logged in.