Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
website_attribute_sync_rollback.php
Go to the documentation of this file.
1 <?php
7 use \Magento\Framework\App\ObjectManager;
8 use \Magento\Store\Api\StoreRepositoryInterface;
9 use \Magento\Framework\App\ResourceConnection;
11 use \Magento\Framework\Registry;
12 use \Magento\TestFramework\Helper\Bootstrap;
13 use \Magento\Catalog\Api\ProductRepositoryInterface;
14 
22 $productId = 333;
23 $objectManager = Bootstrap::getObjectManager();
24 $storeRepository = $objectManager->get(StoreRepositoryInterface::class);
25 $resourceConnection = $objectManager->get(ResourceConnection::class);
29 $connection = $resourceConnection->getConnection();
30 $registry = $objectManager->get(Registry::class);
31 $productRepository = $objectManager->get(ProductRepositoryInterface::class);
32 
33 
37 $isSecuredAreaSystemState = $registry->registry('isSecuredArea');
38 $registry->unregister('isSecureArea');
39 $registry->register('isSecureArea', true);
40 
44 $store = $storeRepository->get('customstoreview1');
45 $storeGroupId = $store->getStoreGroupId();
46 $websiteId = $store->getWebsiteId();
47 
48 try {
50  if ($product->getId()) {
52  }
53 } catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
54  //Product already removed
55 }
56 
61  'customstoreview1',
62  'customstoreview2',
63 ];
64 
65 $connection->delete(
66  $resourceConnection->getTableName('store'),
67  [
68  'code IN (?)' => $storeCodes,
69  ]
70 );
71 
75 $connection->delete(
76  $resourceConnection->getTableName('store_group'),
77  [
78  'group_id = ?' => $storeGroupId,
79  ]
80 );
81 
86 $website = Bootstrap::getObjectManager()->create(\Magento\Store\Model\Website::class);
87 $website->load((int)$websiteId);
88 $website->delete();
89 
93 ObjectManager::getInstance()
94  ->create(\Magento\CatalogSearch\Model\Indexer\Fulltext\Processor::class)
95  ->reindexAll();
96 
100 $registry->unregister('isSecuredArea');
101 $registry->register('isSecuredArea', $isSecuredAreaSystemState);
if($product->getId()) catch(\Magento\Framework\Exception\NoSuchEntityException $e) $storeCodes