while numberOfItem != 2: will loop until you got 2 items. 
This wont run the loop body if you initially have 2 items in it - this kind of check is used when you add/remove things to your list inside the loop body and want to stop at exactly 2 items in list. 
You need to somehow modify the value you check in your condition inside your loop (or directly do a while len(yourList) != 2: dynamic checking at the while - lvl) or you have a endless loop.
You refine your code using your dict to verify only valid items are given. 
You can store the inputs into a second dict along with amounts and sum them after all inputs are done, something along:
(The code incorporates Asking the user for input until they give a valid response methods to verify user input) 
itemCostDic = {"wood":200, "paper":100, "pen":10, "eraser":5}
print("Inventory:")
for k,v in itemCostDic.items():
    print( "   - {} costs {}".format(k,v))
print("Buy two:")
shoppingDic = {}
while len(shoppingDic) != 2:
   # item input and validation
   item = input("Item:").lower()
   if item not in itemCostDic:   # check if we have the item in stock
          print("Not in stock.")
          continue # jumps back to top of while
   if item in shoppingDic:       # check if already bought, cant buy twice
          print("You bought all up. No more in stock.")
          continue # jumps back to top of while
   # amount input and validation
   amount = input("Amount:")
   try:
          a = int(amount)         # is it a number? 
   except ValueError:             
          print("Not a number.")  
          continue # start over with item input, maybe next time user is wiser
   # add what was bought to the cart
   shoppingDic[item] = a
s = 0
print("Bought:")
for k,v in shoppingDic.items():
    print( "   - {} * {} = {}".format(k,v, itemCostDic[k]*v))
    s += itemCostDic[k]*v
print("Total: {:>12}".format( s)) 
Output:
Inventory:
   - wood costs 200
   - paper costs 100
   - pen costs 10
   - eraser costs 5
Buy two:
Item:socks
Not in stock.
Item:paper
Amount:5
Item:paper
You bought all up. No more in stock.
Item:pen
Amount:k
Not a number.
Item:pen
Amount:10
Bought:
   - paper * 5 = 500
   - pen * 10 = 100
Total:          600
No amounts:
itemCostDic = {"wood":200, "paper":100, "pen":10, "eraser":5}
print("Inventory:")
for k,v in itemCostDic.items():
    print( "   - {} costs {}".format(k,v))
print("Buy two:")
shoppingCart = set() # use a list if you can shop for 2 times paper
while len(shoppingCart) != 2:
   # item input and validation
   item = input("Item:").lower()
   if item not in itemCostDic:   # check if we have the item in stock
          print("Not in stock.")
          continue # jumps back to top of while
   if item in shoppingCart:       # check if already bought, cant buy twice
          print("You bought all up. No more in stock.")
          continue # jumps back to top of while
   # add what was bought to the cart
   shoppingCart.add(item)
s = 0
print("Sum of shopped items: {:>6}".format( sum ( itemCostDic[i] for i in shoppingCart) ))
Output:
Inventory:
   - wood costs 200
   - paper costs 100
   - pen costs 10
   - eraser costs 5
Buy two:
Item:socks
Not in stock.
Item:paper
Item:paper
You bought all up. No more in stock.
Item:wood
Sum of shopped items:    300