dicr/yii2-exchange1c ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» 1Π‘ ΠΎΠ±ΠΌΠ΅Π½Π° с сайтом Bitrix для Yii2

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° 1Π‘ с сайтом Bitrix для Yii2 ΒΆ

  1. БСрвСрная Ρ‡Π°ΡΡ‚ΡŒ
  2. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° сСрвСрная Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов ΠΎΡ‚ 1Π‘, Π° Ρ‚Π°ΠΊΠΆΠ΅ клиСнтская Ρ‡Π°ΡΡ‚ΡŒ, которая эмулируСт запросы 1Π‘ ΠΊ сСрвСру сайта.

БСрвСрная Ρ‡Π°ΡΡ‚ΡŒ ΒΆ

Бостоит ΠΈΠ·:

  • настраиваСмого модуля dicr\exchange1c\Module
  • web-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° dicr\exchane1c\DefaultController для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов ΠΎΡ‚ 1Π‘
  • абстрактного ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° dicr\exchange1c\BaseHandler ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
Настройка сСрвСрной части ΒΆ
$config = [
    'modules' => [
        'exchange1c' => dicr\exchange1c\Module::class,
        'handler' => 'Π’Π°ΡˆΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ˜ΠΌΠΏΠΎΡ€Ρ‚Π°::class',
        
        // ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ
        'as basicAuth' => [
            'class' => yii\filters\auth\HttpBasicAuth::class,
            'auth' => static function($username, $password) {
                // ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ пароля
            }
        ]
    ]
];

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠ±ΠΌΠ΅Π½Π° с 1Π‘, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс dicr\exchange1c\Handler. Для удобства Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ абстрактны Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс dicr\exchange1c\BaseHandler Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… (importProp, importGroup, importProd) ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° SimpleXmlElement Π² Π±Π°Π·Ρƒ своСго сайта.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΒΆ

Бостоит ΠΈΠ·:

  • настраиваСмого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° dicr\exchange1c\Client
  • консольного прилоТСния ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° dicr\exchange1c\ClientController
Настройка клиСнтской части ΒΆ
$config = [
    'components' => [
        'client' => [
            'class' => dicr\exchange1c\Client::class,
            'url' => 'https://адрСс_ΠΎΠ±ΠΌΠ΅Π½Π°/сайта',
            
            // ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ авторизация Π½Π° сайтС
            'login' => 'Π»ΠΎΠ³ΠΈΠ½',
            'password' => 'ΠΏΠ°Ρ€ΠΎΠ»ΡŒ'
        ]
    ]       
];
ИспользованиС ¢
/** @var dicr\exchange1c\Client $client */
$client = Yii::$app->get('client');

// авторизация (ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΡƒΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ)
$client->requestCatalogCheckAuth();

// инициализация ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ±ΠΌΠ΅Π½Π° (ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ zip, file_limit)
$client->requestCatalogInit();

// Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»Π° Π½Π° сайт
$data = $client->requestCatalogFile('/home/files/import.xml');

// ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…
$client->requestCatalogImport('import.xml');
КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΒΆ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π² консоли.

Для настроСк ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» configs/local.php с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ:

/** @var ?string адрСс ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π° сайтС */
const EXCHANGE_URL = 'https://ΠΌΠΎΠΉ-сайт.Ρ€Ρ„/exchange1c';

/** @var ?string Π»ΠΎΠ³ΠΈΠ½ */
const EXCHANGE_LOGIN = 'ΠΌΠΎΠΉ-Π»ΠΎΠ³ΠΈΠ½';

/** @var ?string ΠΏΠ°Ρ€ΠΎΠ»ΡŒ */
const EXCHANGE_PASSWORD = 'ΠΌΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ';

АргумСнты ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

# ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π½Π° сайт
./yii client/catalog-file /home/files/import.xml

# ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ² Π½Π° сайт
./yii client/sale-file /home/files/orders.xml

# запрос Π·Π°ΠΊΠ°Π·ΠΎΠ² с сайта
./yii client/sale-query
0 0
1 follower
9 downloads
Yii Version: 2.0
License: BSD-3-Clause
Category: Database
Developed by: Igor Tarasov Igor Tarasov
Created on: May 20, 2021
Last updated: (not set)
Packagist Profile
Code Repository

Related Extensions