2017 © Pedro PelΓ‘ez
 

yii2-extension yii2-order

yii2-order it's a module for site cart order

image

dvizh/yii2-order

yii2-order it's a module for site cart order

  • Monday, February 5, 2018
  • by pistol88
  • Repository
  • 5 Watchers
  • 9 Stars
  • 740 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 7 Forks
  • 6 Open issues
  • 1 Versions
  • 15 % Grown

The README.md

Yii2-order

Π­Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ½Π°Π»Π° Π·Π°ΠΊΠ°Π·Π° Π½Π° сайтС. БСйчас Π² Π·Π°ΠΊΠ°Π· ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ элСмСнты ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π² качСствС сСрвиса ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ dvizh/yii2-cart., (*1)

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»:, (*2)

  • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ полями Π·Π°ΠΊΠ°Π·Π° Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ способами доставки ΠΈ ΠΎΠΏΠ»Π°Ρ‚Ρ‹ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅

Установка

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, (*3)

php composer require dvizh/yii2-order "@dev"

Или Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² composer.json, (*4)

"dvizh/yii2-order": "@dev",

И Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, (*5)

php composer update

Π”Π°Π»Π΅Π΅, ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Π±Π°Π·Ρƒ:, (*6)

php yii migrate --migrationPath=vendor/dvizh/yii2-order/src/migrations

Π”Π°Π»Π΅Π΅, связываСм ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΊΠΎΡ€Π·ΠΈΠ½ΠΎΠΉ. УстанавливаСм dvizh/yii2-cart, (*7)

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ аспСкт:, (*8)

 'putElements'
        ];
    }

    public function putElements($event)
    {
        $order = $event->model;

        foreach(yii::$app->cart->elements as $element) {
            $elementModel = new Element;

            $elementModel->setOrderId($order->id);
            $elementModel->setAssigment($order->is_assigment);
            $elementModel->setModelName($element->getModelName());
            $elementModel->setName($element->getName());
            $elementModel->setItemId($element->getItemId());
            $elementModel->setCount($element->getCount());
            $elementModel->setBasePrice($element->getPrice(false));
            $elementModel->setPrice($element->getPrice());
            $elementModel->setOptions(json_encode($element->getOptions()));
            $elementModel->setDescription('');
            $elementModel->saveData();
        }

        $order->base_cost = 0;
        $order->cost = 0;

        foreach($order->elements as $element) {
            $order->base_cost += ($element->base_price*$element->count);
            $order->cost += ($element->price*$element->count);
        }
        $order->save();

        yii::$app->cart->truncate();
    }
}
```

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π·Π°ΠΊΠ°Π·Π° с ΠΊΠΎΡ€Π·ΠΈΠ½ΠΎΠΉ, присваиваСм аспСкт ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Π·Π°ΠΊΠ°Π·Π° Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅:
```
        'order' => [
            'class' => 'dvizh\order\Module',
            //...
            'as order_filling' => '\common\aspects\OrderFilling',
        ],
```

Установка ΠΊΠ°ΠΊ модуля
---------------------------------
Если Π’Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ мноТСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΉ Π² ΠΊΠΎΠ΄, Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ с Github Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π² Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ:
```
git clone https://github.com/dvizh/yii2-order.git
```

Π’ composer.json добавляСтС ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ модуля:
```
"autoload": {
    "psr-4": {
      "dvizh\\order\\": "common/modules/order"
    }
  }
```
ЗапускаСтС update:
```
php composer update
```

Π”Π΅Π»Π°Π΅Ρ‚Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ:
```
php yii migrate --migrationPath=common/modules/order/migrations
```

ДобавляСтС Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³:
```
'bootstrap' => ['dvizh\order\Bootstrap'],
```
БвязываСтС с ΠΊΠΎΡ€Π·ΠΈΠ½ΠΎΠΉ, ΠΊΠ°ΠΊ описано Π²Ρ‹ΡˆΠ΅.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ настройка
---------------------------------
Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» прилоТСния Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ order

```php
    'modules' => [
        'order' => [
            'class' => 'dvizh\order\Module',
            'layoutPath' => 'frontend\views\layouts',
            'successUrl' => '/page/thanks', //Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π°, ΠΊΡƒΠ΄Π° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π°
            'adminNotificationEmail' => 'test@yandex.ru', //ΠœΡ‹Π»ΠΎ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ²
        ],
        //...
    ]
```


БСрвисы
---------------------------------

ΠœΠΎΠ΄ΡƒΠ»ΡŒ автоматичСски ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΈΡ‚ Π² yii2 (Π² Service locator) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ order (сСрвис), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ доступСн глобально Ρ‡Π΅Ρ€Π΅Π· yii::$app->order ΠΈ прСдоставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сСрвисы:

* get($id) - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π· ΠΏΠΎ ID
* getStatInMoth($month) - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ статистику Π·Π°ΠΊΠ°Π·ΠΎΠ² Π·Π° мСсяц
* getStatByDate($date) - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ статичтику Π·Π°ΠΊΠ°Π·ΠΎΠ² Π·Π° дСнь
* getStatByDatePeriod($dateStart, $dateStop) - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ статистику Π·Π°ΠΊΠ°Π·ΠΎΠ² Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄
* getStatByModelAndDatePeriod($model, $dateStart, $dateStop) - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ статистику Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹
---------------------------------
Π—Π° Π²Ρ‹Π²ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹ Π·Π°ΠΊΠ°Π·Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ dvizh\order\widgets\OrderForm

```php
=OrderForm::widget();?>

Кнопка "заказ в один клик" - dvizh\order\widgets\OneClick:, (*9)

<?=OneClick::widget(['model' => $model]);?>

Π’Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹

Π’ Module:, (*10)

  • create - созданиС Π·Π°ΠΊΠ°Π·Π°
  • delete_order - ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°
  • delete_element - ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта Π·Π°ΠΊΠ°Π·Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³:, (*11)

    'order' => [
        'class' => 'dvizh\order\Module',
        'on create' => function($event) {
            send_sms(...); //ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ БМБ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅
        },
    ],

Онлайн ΠΎΠΏΠ»Π°Ρ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ способ ΠΎΠΏΠ»Π°Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ?r=/order/payment-type/index, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ способ, Π³Π΄Π΅ Π² ΠΏΠΎΠ»Π΅ "Π’ΠΈΠ΄ΠΆΠ΅Ρ‚" ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ класс Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΠΏΠ»Π°Ρ‚Ρ‹. Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΎΠΏΠ»Π°Ρ‚Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ., (*12)

Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹

Π€ΠΎΡ€ΠΌΠ° Π·Π°ΠΊΠ°Π·Π° 1 Главная панСль 2 Поиск ΠΏΠΎ Π·Π°ΠΊΠ°Π·Π°ΠΌ 3 Бтатистика 4, (*13)

The Versions

05/02 2018

dev-master

9999999-dev https://github.com/dvizh/yii2-cart

yii2-order it's a module for site cart order

  Sources   Download

Apache-2.0 BSD-3-Clause Apache

The Requires

 

The Development Requires

by Ilya Pistol

yii2 module yii 2 application shop order dvizh