A couple of issues:
The first is this line:
if stock > 0:
You are checking if stock is greater than 0. stock is a dictionary, not the individual item you want, however. Logically python shouldn't let you ask if a non int (non number) is greater than an int. This is a silly quirk of python 2.x and you cannot do it in python 3.x.
From the python docs:
The operators <, >, ==, >=, <=, and != compare the values of two objects. The objects need not have the same type. If both are numbers, they are converted to a common type. Otherwise, objects of different types always compare unequal, and are ordered consistently but arbitrarily.
The last line is the key bit for us and is basically saying for us here is if you have two different types (dict and int for us), one will always be greater than other. There isn't any reasoning to which one is larger but that type will always be larger than the other. In our case, a dict will always be larger than an int, even if it is an empty dict and the value of the int was infinity. As a result this is always coming out as True.
To solve this think what you need to change so you aren't comparing the whole dictionary, but rather the value from it you want.
Your next issue is in this line:
stock[items] -= stock[items]
What are we being asked to do?
If the item is in stock and after you add the price to the total, subtract one from the item's stock count.
Ok, so we are being asked to subtract just one item. Think about what you are subtracting. If you are still having trouble seeing where you went wrong, try writing it out but instead of the variable stock[items], try putting in a real number.
I've tried not to just give you the answer, if you need more help, just ask.