vendor/valantic/sales-channel-product-data/src/ValSalesChannelProductData.php line 21

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. /**
  3.  * valantic CEC Deutschland GmbH
  4.  * Copyright (c) 2022.
  5.  *
  6.  * All rights reserved.
  7.  *
  8.  * @see https://www.valantic.com/
  9.  *
  10.  * @author sw6
  11.  * Date: 13.01.2022 08:20
  12.  */
  13. namespace Valantic\SalesChannelProductData;
  14. use Doctrine\DBAL\Connection;
  15. use Shopware\Core\Framework\Plugin;
  16. use Shopware\Core\Framework\Plugin\Context\ActivateContext;
  17. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  18. class ValSalesChannelProductData extends Plugin
  19. {
  20.     public function activate(ActivateContext $activateContext): void
  21.     {
  22.         $connection $this->container->get(Connection::class);
  23.         $connection->executeStatement('
  24.                         INSERT INTO val_product_data (id, product_visibility_id, sales, stock, available_stock, is_closeout, available, created_at, release_date)
  25.                         SELECT pv.id , pv.id as product_visibility_id, p.sales, p.stock, p.available_stock, p.is_closeout, p.available, NOW(), p.release_date
  26.                         FROM product_visibility pv
  27.                         INNER JOIN product p on pv.product_id = p.id
  28.                         LEFT JOIN val_product_data vpd ON vpd.product_visibility_id = pv.id
  29.                         WHERE vpd.id IS NULL
  30.                     ');
  31.     }
  32.     public function uninstall(UninstallContext $uninstallContext): void
  33.     {
  34.         parent::uninstall($uninstallContext);
  35.         if ($uninstallContext->keepUserData()) {
  36.             return;
  37.         }
  38.         $connection $this->container->get(Connection::class);
  39.         // Delete 'val-product_data' table
  40.         $connection->executeStatement('
  41.             DROP TABLE IF EXISTS val_product_data
  42.         ');
  43.     }
  44. }