Sometimes when you use Magento 2 you can get the Magento catalog_product_super_link table doesn`t exists error. It appears because some module tries to make an SQL request with SQL query that includes "catalog_product_super_link" table and the table does not exist. So actually, the error is self-explaining.
Why catalog_product_super_link table might not exist?
This table is defined in Magento 2 module Magento_ConfigurableProduct. So please make sure it is enabled in app/etc/config.php. If not, enable it by changing 0 to 1 in the right part, e.g:
'Magento_ConfigurableProduct' => 1,
Then, run the following commands:
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
If this does not help, then you can create the table using these SQL queries (you can run them e.g. in phpMyAdmin):
Attention! Replace "prefix_" and "PREFIX_" with your actual Magento 2 database prefix, or just remove them if you don't use the prefix for the database table names.
CREATE TABLE `prefix_catalog_product_super_link` (
`link_id` int UNSIGNED NOT NULL COMMENT 'Link ID',
`product_id` int UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Product ID',
`parent_id` int UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Parent ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='Catalog Product Super Link Table';
ALTER TABLE `prefix_catalog_product_super_link`
ADD PRIMARY KEY (`link_id`),
ADD UNIQUE KEY `PREFIX_CATALOG_PRODUCT_SUPER_LINK_PRODUCT_ID_PARENT_ID` (`product_id`,`parent_id`),
ADD KEY `PREFIX_CATALOG_PRODUCT_SUPER_LINK_PARENT_ID` (`parent_id`);
ALTER TABLE `prefix_catalog_product_super_link`
MODIFY `link_id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Link ID';
ALTER TABLE `prefix_catalog_product_super_link`
ADD CONSTRAINT `PREFIX_CAT_PRD_SPR_LNK_PARENT_ID_PREFIX_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`parent_id`) REFERENCES `prefix_catalog_product_entity` (`entity_id`) ON DELETE CASCADE,
ADD CONSTRAINT `PREFIX_CAT_PRD_SPR_LNK_PRD_ID_PREFIX_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`product_id`) REFERENCES `prefix_catalog_product_entity` (`entity_id`) ON DELETE CASCADE;
COMMIT;