Yep. Unfortunately there is no easy way to insert multiple records when doing it with VALUES(.....) so you will have to loop through and run an insert for each item. Build your sql query string and run it within the loop.
I take it that your cart is an object in javascript or php. If you used a cart that stored each item in a table as the user selected them, then an INSERT .... SELECT from cart table would do it all in one query. Worth thinking about. You see, users take time to browse and add to cart, but you want to process their order quickly once they go to checkout, so a loop through each item is not the best option. Simply build a carts table to store the contents of their carts and a seperate orders table to store the transaction once you've processed their payment.