ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ Ρ 24.04.2017 Π²Π΅Π΄Π΅ΡΡΡ Π·Π΄Π΅ΡΡ: dvizh/yii2-order. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Dvizh, ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΌ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ., (*1)
Yii2-order
ΠΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠ½Π°Π»Π° Π·Π°ΠΊΠ°Π·Π° Π½Π° ΡΠ°ΠΉΡΠ΅. Π‘Π΅ΠΉΡΠ°Ρ Π² Π·Π°ΠΊΠ°Π· ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠ·ΠΈΠ½Ρ, ΡΠΎΠ²Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ pistol88/yii2-cart., (*2)
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»:, (*3)
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°, ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠΌΠΈ Π·Π°ΠΊΠ°Π·Π° Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΎΠΏΠ»Π°ΡΡ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, (*4)
php composer require pistol88/yii2-order "*"
ΠΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² composer.json, (*5)
"pistol88/yii2-order": "*",
Π Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, (*6)
php composer update
ΠΠ°Π»Π΅Π΅, ΠΌΠΈΠ³ΡΠΈΡΡΠ΅ΠΌ Π±Π°Π·Ρ:, (*7)
php yii migrate --migrationPath=vendor/pistol88/yii2-order/migrations
ΠΠ°Π»Π΅Π΅, ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΊΠΎΡΠ·ΠΈΠ½ΠΎΠΉ. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ pistol88/yii2-cart ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³Π° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:, (*8)
yii::$container->set('pistol88\order\interfaces\Cart', 'pistol88\order\drivers\Pistol88Cart');
Π§ΡΠΎΠ±Ρ ΡΠ²ΡΠ·Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΡΠ·ΠΈΠ½ΠΎΠΉ:, (*9)
yii::$container->set('pistol88\order\interfaces\Cart', 'app\objects\Cart');
app\objects\Cart Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ»Π°ΡΡ, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡΡΡΠΈΠΉ \pistol88\order\interfaces\Cart., (*10)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΡΠ»ΠΈ ΠΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ Π²Π½ΠΎΡΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΉ Π² ΠΊΠΎΠ΄, Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ., (*11)
ΠΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΠ΅ Ρ Github ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π² Π½ΡΠΆΠ½ΡΡ ΠΏΠ°ΠΏΠΊΡ:, (*12)
git clone https://github.com/pistol88/yii2-order.git
Π composer.json Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΠΏΡΡΡ Π΄ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ:, (*13)
"autoload": {
"psr-4": {
"pistol88\\order\\": "common/modules/order"
}
}
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ update:, (*14)
php composer update
ΠΠ΅Π»Π°Π΅ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ:, (*15)
php yii migrate --migrationPath=common/modules/order/migrations
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³:, (*16)
'bootstrap' => ['pistol88\order\Bootstrap'],
Π‘Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ Ρ ΠΊΠΎΡΠ·ΠΈΠ½ΠΎΠΉ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅., (*17)
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ order, (*18)
'modules' => [
'order' => [
'class' => 'pistol88\order\Module',
'layoutPath' => 'frontend\views\layouts',
'successUrl' => '/page/thanks', //Π‘ΡΡΠ°Π½ΠΈΡΠ°, ΠΊΡΠ΄Π° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π°
'ordersEmail' => 'test@yandex.ru', //ΠΡΠ»ΠΎ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ²
],
//...
]
ΠΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ:, (*19)
- orderStatuses - ΡΡΠ°ΡΡΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'new' => 'ΠΠΎΠ²ΡΠΉ', 'approve' => 'ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½', 'cancel' => 'ΠΡΠΌΠ΅Π½Π΅Π½', 'process' => 'Π ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅', 'done' => 'ΠΡΠΏΠΎΠ»Π½Π΅Π½')
- defaultStatus - ΡΡΠ°ΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 'new')
- successUrl - ΡΡΠ», ΠΊΡΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΏΠΎΠΊΡΠΏΠΊΠΈ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ /order/info/thanks/)
- ordersEmail - ΠΏΠΎΡΡΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°, ΡΡΠ΄Π° ΡΡ
ΠΎΠ΄ΡΡ ΠΏΠΈΡΡΠΌΠ° Ρ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ
- robotEmail - e-mail ΡΠΎΠ±ΠΎΡΠ° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ no-reply@localhost)
- robotName - ΠΈΠΌΡ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠ±ΠΎΡΠ° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Robot)
- orderColumns - ΠΌΠ°ΡΡΠΌΠ² ΠΏΠΎΠ»Π΅ΠΉ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ID ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ: ['field' => 2, 'label' => 'ΠΠ²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ']
- dateFormat - ΡΠΎΡΠΌΠ°Ρ Π΄Π°ΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ d.m.Y H:i:s)
-
cartService - ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠΎΡΠ·ΠΈΠ½Π° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ cart). ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΌΠΎΡΡΠ΅ΡΡ Π² pistol88/yii2-cart., (*20)
-
currency - Π²Π°Π»ΡΡΠ°, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ±Π»ΠΈ, (*21)
- currencyPosition - ΠΏΠΎΠ·ΠΈΡΠΈΡ Π·Π½Π°ΡΠΊΠ° Π²Π°Π»ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π½Ρ (before ΠΈΠ»ΠΈ after)
- priceFormat - ΡΠΎΡΠΌΠ°Ρ ΡΠ΅Π½Ρ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ [2, '.', ''])
- adminRoles - ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ Π² CRUD Π·Π°ΠΊΠ°Π·Π° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ['admin', 'superadmin'])
Π‘Π΅ΡΠ²ΠΈΡΡ
ΠΠΎΠ΄ΡΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡ Π² yii2 (Π² Service locator) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ order (ΡΠ΅ΡΠ²ΠΈΡ), ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π· yii::$app->order ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ:, (*22)
- get($id) - ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΊΠ°Π· ΠΏΠΎ ID
- getStatInMoth($month) - ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² Π·Π° ΠΌΠ΅ΡΡΡ
- getStatByDate($date) - ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² Π·Π° Π΄Π΅Π½Ρ
- getStatByDatePeriod($dateStart, $dateStop) - ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄
- getStatByModelAndDatePeriod($model, $dateStart, $dateStop) - ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄
ΠΠΈΠ΄ΠΆΠ΅ΡΡ
ΠΠ° Π²ΡΠ²ΠΎΠ΄ ΡΠΎΡΠΌΡ Π·Π°ΠΊΠ°Π·Π° ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π²ΠΈΠ΄ΠΆΠ΅Ρ pistol88\order\widgets\OrderForm, (*23)
<?=OrderForm::widget();?>
ΠΠ½ΠΎΠΏΠΊΠ° "Π·Π°ΠΊΠ°Π· Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ" - pistol88\order\widgets\OneClick:, (*24)
<?=OneClick::widget(['model' => $model]);?>
Π’ΡΠΈΠ³Π³Π΅ΡΡ
Π Module:, (*25)
- create - ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°
- delete_order - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°
- delete_element - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π·Π°ΠΊΠ°Π·Π°
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³:, (*26)
'order' => [
'class' => 'pistol88\order\Module',
'on create' => function($event) {
send_sms(...); //ΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π‘ΠΠ‘ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅
},
],
ΠΠ½Π»Π°ΠΉΠ½ ΠΎΠΏΠ»Π°ΡΠ°
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΠ»Π°ΡΡ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ?r=/order/payment-type/index, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, Π³Π΄Π΅ Π² ΠΏΠΎΠ»Π΅ "ΠΠΈΠ΄ΠΆΠ΅Ρ" ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π°Π²Π°ΡΡ ΡΠΎΡΠΌΡ ΠΎΠΏΠ»Π°ΡΡ. ΠΠΈΠ΄ΠΆΠ΅ΡΡ ΠΎΠΏΠ»Π°ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ., (*27)
Π‘ΠΊΡΠΈΠ½ΡΠΎΡΡ
Π€ΠΎΡΠΌΠ° Π·Π°ΠΊΠ°Π·Π°
ΠΠ»Π°Π²Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ
ΠΠΎΠΈΡΠΊ ΠΏΠΎ Π·Π°ΠΊΠ°Π·Π°ΠΌ
Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ°
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°
, (*28)