class_docstr: The Stripe Products Table implementation
class_docstr_tok: ["The","Stripe","Products","Table","implementation"]
code: def delete_products(self, product_ids: List[Text]) -> None:
      stripe = self.handler.connect()
      for product_id in product_ids:
          deleted_product = stripe.Product.delete(product_id)
          if "id" not in deleted_product.to_dict():
              raise Exception("Product deletion failed")
          else:
              logger.info(
                  f'Product {deleted_product.to_dict()["id"]} deleted'
              )
  
imports: import pandas
  import stripe
  from typing import Text, List, Dict, Any
  from mindsdb_sql.parser import ast
  from mindsdb.integrations.libs.api_handler import APITable
  from mindsdb.integrations.handlers.utilities.query_utilities import INSERTQueryParser, DELETEQueryParser, UPDATEQueryParser, DELETEQueryExecutor, UPDATEQueryExecutor
  from mindsdb_sql.parser import ast
  from mindsdb.integrations.libs.api_handler import APITable
  from mindsdb.integrations.handlers.utilities.query_utilities.select_query_utilities import SELECTQueryParser, SELECTQueryExecutor
  from mindsdb.utilities import log
label_desc: Use image node_id 9 for calling the ProductsTable obj's underlying member method code with example usage: obj.delete_products(product_ids) without return types