shared = $shared; $this->externalFKSetup = $externalFKSetup; } /** * @param SchemaSetupInterface $setup * @param ModuleContextInterface $context */ public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) { $installer = $setup; $installer->startSetup(); $this->externalFKSetup->install( $installer, 'catalog_product_entity', 'entity_id', Schema::EMAIL_CATALOG_TABLE, 'product_id' ); $this->checkAndCreateAbandonedCart($setup, $context); $installer->endSetup(); } /** * Create table for abandoned carts if doesn't exists between two versions. * * @param SchemaSetupInterface $setup * @param ModuleContextInterface $context */ private function checkAndCreateAbandonedCart($setup, $context) { $connection = $setup->getConnection(); $abandonedCartTableName = $setup->getTable(Schema::EMAIL_ABANDONED_CART_TABLE); if (version_compare($context->getVersion(), '2.3.8', '>') && ! $connection->isTableExists($abandonedCartTableName) ) { $this->shared->createAbandonedCartTable($setup, $abandonedCartTableName); } } }