1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- namespace Dotdigitalgroup\Email\Setup;
- use Magento\Framework\Setup\ExternalFKSetup;
- use Magento\Framework\Setup\InstallSchemaInterface;
- use Magento\Framework\Setup\ModuleContextInterface;
- use Magento\Framework\Setup\SchemaSetupInterface;
- use Magento\Framework\DB\Ddl\Table;
- /**
- * Catalog recurring setup
- */
- class Recurring implements InstallSchemaInterface
- {
- /**
- * @var ExternalFKSetup
- */
- protected $externalFKSetup;
- /**
- * @var Schema\Shared
- */
- private $shared;
- /**
- * @param ExternalFKSetup $externalFKSetup
- * @param Schema\Shared $shared
- */
- public function __construct(
- ExternalFKSetup $externalFKSetup,
- Schema\Shared $shared
- ) {
- $this->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);
- }
- }
- }
|