* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PrestashopFacebook\Provider; use PrestaShop\Module\PrestashopFacebook\Repository\ShopRepository; use PrestaShop\Module\Ps_facebook\Tracker\Segment; use Shop; class MultishopDataProvider { /** * @var ShopRepository */ private $shopRepository; /** * @var Segment */ private $segment; public function __construct( ShopRepository $shopRepository, Segment $segment ) { $this->shopRepository = $shopRepository; $this->segment = $segment; } /** * It appeared that PS Account is currently incompatible with multistore feature. * While a new major version is prepared, we display a message if the merchant * onboarded one other shop. * * To revent this, we check if a shop is already onboarded and * warn the merchant accordingly. * * @param Shop $currentShop * * @return bool */ public function isCurrentShopInConflict(Shop $currentShop) { $configurationData = $this->shopRepository->getShopDomainsAndConfiguration(); foreach ($configurationData as $shopData) { if ((int) $shopData['id_shop'] === (int) $currentShop->id) { continue; } if (empty($shopData['acces_token_value'])) { continue; } $this->segment->setMessage('[FBK] Error: Warn about multistore incompatibility with PS Account'); $this->segment->track(); return true; } return false; } }