Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SwitchPriceAttributeScopeOnConfigChange.php
Go to the documentation of this file.
1 <?php
7 
15 
21 {
25  private $config;
26 
30  private $productAttributeRepository;
31 
35  private $searchCriteriaBuilder;
36 
42  public function __construct(
44  ProductAttributeRepositoryInterface $productAttributeRepository,
45  SearchCriteriaBuilder $searchCriteriaBuilder
46  ) {
47  $this->config = $config;
48  $this->productAttributeRepository = $productAttributeRepository;
49  $this->searchCriteriaBuilder = $searchCriteriaBuilder;
50  }
51 
60  public function execute(EventObserver $observer)
61  {
62  $this->searchCriteriaBuilder->addFilter('frontend_input', 'price');
63  $criteria = $this->searchCriteriaBuilder->create();
64 
65  $scope = $this->config->getValue(Store::XML_PATH_PRICE_SCOPE);
66  $scope = ($scope == Store::PRICE_SCOPE_WEBSITE)
69 
70  $priceAttributes = $this->productAttributeRepository->getList($criteria)->getItems();
71 
73  foreach ($priceAttributes as $priceAttribute) {
74  $priceAttribute->setScope($scope);
75  $this->productAttributeRepository->save($priceAttribute);
76  }
77  }
78 }
$config
Definition: fraud_order.php:17
__construct(ReinitableConfigInterface $config, ProductAttributeRepositoryInterface $productAttributeRepository, SearchCriteriaBuilder $searchCriteriaBuilder)
$searchCriteriaBuilder
$productAttributeRepository