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 an initializer to set these fields, a `__str__` method to return a string representation of the item (name and price), and a `to_dict` method to convert the item to a dictionary.
  
  
  def create_store_item_class():
      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
              }
      return StoreItem
  
  # Example usage
  StoreItem = create_store_item_class()
  item = StoreItem(1, 'Laptop', 999.99, 'High-performance laptop')
  print(item)
  print(item.to_dict())
  
  # Assert tests
  assert str(item) == 'Laptop, $999.99'
  assert item.to_dict() == {'item_id': 1, 'name': 'Laptop', 'price': 999.99, 'description': 'High-performance laptop'}
  
output: def create_store_item_class():
      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
              }
      return StoreItem