ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° 1Π‘ Ρ ΡΠ°ΠΉΡΠΎΠΌ Bitrix Π΄Π»Ρ Yii2 ΒΆ
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΡ 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
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.