website_configuration.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. use Magento\Config\Model\Config;
  8. use Magento\Framework\App\Config\ScopeConfigInterface;
  9. use Magento\Store\Model\ResourceModel\Store as StoreResourceModel;
  10. use Magento\Store\Model\ResourceModel\Website as WebsiteResourceModel;
  11. use Magento\Store\Model\ScopeInterface;
  12. use Magento\Store\Model\Store;
  13. use Magento\Store\Model\StoreManagerInterface;
  14. use Magento\Store\Model\Website;
  15. use Magento\TestFramework\Helper\Bootstrap;
  16. $objectManager = Bootstrap::getObjectManager();
  17. /** @var $website Website */
  18. $website = $objectManager->create(Website::class);
  19. $website->setData(['code' => 'test_website', 'name' => 'Test Website', 'default_group_id' => '1', 'is_default' => '0']);
  20. $websiteResourceModel = $objectManager->create(WebsiteResourceModel::class);
  21. $websiteResourceModel->save($website);
  22. $websiteId = $website->getId();
  23. $store = $objectManager->create(Store::class);
  24. $groupId = Bootstrap::getObjectManager()->get(StoreManagerInterface::class)
  25. ->getWebsite()
  26. ->getDefaultGroupId();
  27. $store->setCode('test_second_store')
  28. ->setWebsiteId($websiteId)
  29. ->setGroupId($groupId)
  30. ->setName('Test Second Store')
  31. ->setSortOrder(10)
  32. ->setIsActive(1);
  33. $storeResourceModel = $objectManager->create(StoreResourceModel::class);
  34. $storeResourceModel->save($store);
  35. /* Refresh stores memory cache */
  36. $objectManager->get(StoreManagerInterface::class)->reinitStores();
  37. $processConfigData = function (Config $config, array $data) {
  38. foreach ($data as $key => $value) {
  39. $config->setDataByPath($key, $value);
  40. $config->save();
  41. }
  42. };
  43. // save signifyd configuration for the default scope
  44. $configData = [
  45. 'fraud_protection/signifyd/active' => '1',
  46. ];
  47. /** @var Config $defConfig */
  48. $defConfig = $objectManager->create(Config::class);
  49. $defConfig->setScope(ScopeConfigInterface::SCOPE_TYPE_DEFAULT);
  50. $processConfigData($defConfig, $configData);
  51. // save signifyd website config data
  52. $websiteConfigData = [
  53. 'fraud_protection/signifyd/active' => '0',
  54. ];
  55. /** @var Config $websiteConfig */
  56. $websiteConfig = $objectManager->create(Config::class);
  57. $websiteConfig->setScope(ScopeInterface::SCOPE_WEBSITES);
  58. $websiteConfig->setWebsite($websiteId);
  59. $processConfigData($websiteConfig, $websiteConfigData);