2016-09-15 16:42:10 +03:00
|
|
|
<?php
|
2022-03-02 15:40:53 +03:00
|
|
|
|
|
|
|
use Bitrix\Main\ArgumentOutOfRangeException;
|
|
|
|
use Bitrix\Main\Context;
|
|
|
|
use Bitrix\Main\Loader;
|
|
|
|
use Intaro\RetailCrm\Component\ConfigProvider;
|
|
|
|
use Intaro\RetailCrm\Component\Factory\ClientFactory;
|
|
|
|
use Intaro\RetailCrm\Component\ServiceLocator;
|
|
|
|
use Intaro\RetailCrm\Service\CookieService;
|
|
|
|
use Intaro\RetailCrm\Service\OrderLoyaltyDataService;
|
|
|
|
use Intaro\RetailCrm\Service\LoyaltyService;
|
|
|
|
use Intaro\RetailCrm\Service\LoyaltyAccountService;
|
|
|
|
use Intaro\RetailCrm\Service\CustomerService;
|
|
|
|
use Intaro\RetailCrm\Vendor\Doctrine\Common\Annotations\AnnotationReader;
|
|
|
|
use Intaro\RetailCrm\Vendor\Doctrine\Common\Annotations\AnnotationRegistry;
|
|
|
|
use \Intaro\RetailCrm\Component\Builder\Api\CustomerBuilder;
|
|
|
|
use RetailCrm\Exception\CurlException;
|
|
|
|
|
|
|
|
require_once __DIR__ . '/RetailcrmClasspathBuilder.php';
|
|
|
|
|
|
|
|
$retailcrmModuleId = 'intaro.retailcrm';
|
|
|
|
$server = Context::getCurrent()->getServer()->getDocumentRoot();
|
2017-09-04 11:36:04 +03:00
|
|
|
$version = COption::GetOptionString('intaro.retailcrm', 'api_version');
|
2016-09-15 16:42:10 +03:00
|
|
|
|
2022-03-02 15:40:53 +03:00
|
|
|
$builder = new RetailcrmClasspathBuilder();
|
|
|
|
$builder->setDisableNamespaces(true)
|
|
|
|
->setDocumentRoot($server)
|
|
|
|
->setModuleId($retailcrmModuleId)
|
|
|
|
->setPath('classes')
|
|
|
|
->setVersion($version)
|
|
|
|
->build();
|
|
|
|
|
|
|
|
Loader::registerAutoLoadClasses('intaro.retailcrm', $builder->getResult());
|
|
|
|
AnnotationRegistry::registerLoader('class_exists');
|
|
|
|
|
|
|
|
ServiceLocator::registerServices([
|
|
|
|
\Intaro\RetailCrm\Service\Utils::class,
|
|
|
|
Logger::class,
|
|
|
|
AnnotationReader::class,
|
|
|
|
CookieService::class,
|
|
|
|
LoyaltyAccountService::class,
|
|
|
|
LoyaltyService::class,
|
|
|
|
CustomerService::class,
|
|
|
|
OrderLoyaltyDataService::class,
|
|
|
|
CustomerBuilder::class
|
|
|
|
]);
|
|
|
|
|
|
|
|
$arJsConfig = [
|
|
|
|
'intaro_countdown' => [
|
|
|
|
'js' => '/bitrix/js/intaro/sms.js',
|
|
|
|
'rel' => [],
|
|
|
|
],
|
|
|
|
];
|
|
|
|
|
|
|
|
foreach ($arJsConfig as $ext => $arExt) {
|
|
|
|
CJSCore::RegisterExt($ext, $arExt);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty(ConfigProvider::getSitesAvailable())) {
|
|
|
|
$client = ClientFactory::createClientAdapter();
|
|
|
|
try {
|
|
|
|
$credentials = $client->getCredentials();
|
|
|
|
|
2023-03-15 11:55:04 +03:00
|
|
|
ConfigProvider::setSitesAvailable($credentials->sitesAvailable[0] ?? '');
|
2022-03-02 15:40:53 +03:00
|
|
|
} catch (ArgumentOutOfRangeException | CurlException $exception) {
|
|
|
|
Logger::getInstance()->write($exception->getMessage());
|
|
|
|
}
|
|
|
|
}
|