input: Write a function to generate a Python class for an online store item that includes fields for ID, name, price, and description. The function should return the class definition with an initializer, a string representation method, and a method to convert the object to 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, 'Apple', 0.5, 'Fresh red apple'))=='Apple, $0.5'
  assert StoreItem(2, 'Book', 10.99, 'Best-seller novel').to_dict()=={'item_id': 2, 'name': 'Book', 'price': 10.99, 'description': 'Best-seller novel'}
  assert StoreItem(3, 'Laptop', 999.99, 'High-performance laptop').__str__()=='Laptop, $999.99'
  assert StoreItem(4, 'Shirt', 19.99, 'Casual wear shirt').to_dict()['price']==19.99
  assert StoreItem(5, 'Headphones', 50, 'Noise-canceling headphones').__str__()==f'Headphones, ${50}'
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
          }