input: Write a function to create a Python class for an online store item that includes fields for ID, name, price, and description. The class should have a constructor to initialize these fields and methods to return the item's information as a string and as a dictionary.
  
  class StoreItem:
      def __init__(self, item_id, name, price, description):
          self.item_id = item_id
          self.name = name
          self.price = price
          self.description = description
  
      def __str__(self):
          return f'{self.name}, ${self.price}'
  
      def to_dict(self):
          return {
              'item_id': self.item_id,
              'name': self.name,
              'price': self.price,
              'description': self.description
          }
  
  assert str(StoreItem(1, "Laptop", 999.99, "High-end gaming laptop"))=="Laptop, $999.99"
  assert StoreItem(2, "Smartphone", 699.99, "Latest model with 5G").to_dict()=={"item_id": 2, "name": "Smartphone", "price": 699.99, "description": "Latest model with 5G"}
  assert str(StoreItem(3, "Headphones", 199.99, "Noise-cancelling wireless"))=="Headphones, $199.99"
  assert StoreItem(4, "Tablet", 499.99, "10-inch screen with stylus").to_dict()=={"item_id": 4, "name": "Tablet", "price": 499.99, "description": "10-inch screen with stylus"}
  assert str(StoreItem(5, "Camera", 799.99, "Full-frame DSLR"))=="Camera, $799.99"
output: class StoreItem:
      def __init__(self, item_id, name, price, description):
          self.item_id = item_id
          self.name = name
          self.price = price
          self.description = description
  
      def __str__(self):
          return f'{self.name}, ${self.price}'
  
      def to_dict(self):
          return {
              'item_id': self.item_id,
              'name': self.name,
              'price': self.price,
              'description': self.description
          }