When creating a new store or restarting in OpenCart, sometimes it is necessary to clear data such as categories, products, attributes and other entries in the database. Deleting products and categories in OpenCart
Here are some SQL queries to help you clean up your data:
Clear all categories in OpenCart 3:
TRUNCATE TABLE oc_category;
TRUNCATE TABLE oc_category_description;
TRUNCATE TABLE oc_category_filter;
TRUNCATE TABLE oc_category_path;
TRUNCATE TABLE oc_category_to_layout;
TRUNCATE TABLE oc_category_to_store;
DELETE FROM oc_seo_url WHERE query LIKE 'category_id=%';
Remove only SEO URLs from categories:
DELETE FROM oc_seo_url WHERE query LIKE 'category_id=%';

Clear all products in OpenCart 3:

SET foreign_key_checks = 0;
TRUNCATE TABLE oc_product;
TRUNCATE TABLE oc_product_attribute;
TRUNCATE TABLE oc_product_description;
TRUNCATE TABLE oc_product_discount;
TRUNCATE TABLE oc_product_image;
TRUNCATE TABLE oc_product_option;
TRUNCATE TABLE oc_product_option_value;
TRUNCATE TABLE oc_product_related;
TRUNCATE TABLE oc_product_related;
TRUNCATE TABLE oc_product_reward;
TRUNCATE TABLE oc_product_special;
TRUNCATE TABLE oc_product_to_category;
TRUNCATE TABLE oc_product_to_download;
TRUNCATE TABLE oc_product_to_layout;
TRUNCATE TABLE oc_product_to_store;
TRUNCATE TABLE oc_review;
DELETE FROM oc_seo_url WHERE query LIKE 'product_id=%';
Remove only SEO URL from products:
DELETE FROM oc_seo_url WHERE query LIKE 'product_id=%';
Clear all attributes in OpenCart:
TRUNCATE TABLE oc_attribute;
TRUNCATE TABLE oc_attribute_description;
TRUNCATE TABLE oc_attribute_group;
TRUNCATE TABLE oc_attribute_group_description;
TRUNCATE TABLE oc_product_attribute;
Clear all options in OpenCart:
TRUNCATE TABLE oc_option;
TRUNCATE TABLE oc_option_description;
TRUNCATE TABLE oc_option_value;
TRUNCATE TABLE oc_option_value_description;
TRUNCATE TABLE oc_product_option;
Removing all manufacturers:
TRUNCATE TABLE oc_manufacturer;
Deleting all orders:
TRUNCATE TABLE oc_order;
TRUNCATE TABLE oc_order_history;
TRUNCATE TABLE oc_order_option;
TRUNCATE TABLE oc_order_product;
TRUNCATE TABLE oc_order_recurring;
TRUNCATE TABLE oc_order_recurring_transaction;
TRUNCATE TABLE oc_order_total;
TRUNCATE TABLE oc_order_voucher;
Removing all customers:
TRUNCATE oc_customer;
TRUNCATE oc_customer_activity;
TRUNCATE oc_customer_history;
TRUNCATE oc_customer_login;
TRUNCATE oc_customer_ip;
TRUNCATE oc_customer_online;
TRUNCATE oc_customer_reward;
TRUNCATE oc_customer_transaction;
TRUNCATE oc_customer_search;
TRUNCATE oc_customer_wishlist;
TRUNCATE oc_custom_field;
TRUNCATE oc_custom_field_customer_group;
TRUNCATE oc_custom_field_description;
TRUNCATE oc_custom_field_value;
TRUNCATE oc_custom_field_value_description;
Please note that some tables may be missing, have a different prefix, or may already be empty, so remove the rows causing the error and rerun the query until it succeeds.