PHPackages                             dvizh/yii2-cart - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. dvizh/yii2-cart

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

dvizh/yii2-cart
===============

yii2-cart it's a simple cart module to collect application models, that implement cart interface + widgets

204.5k[9 issues](https://github.com/dvizh/yii2-cart/issues)PHP

Since Feb 5Pushed 8y ago2 watchersCompare

[ Source](https://github.com/dvizh/yii2-cart)[ Packagist](https://packagist.org/packages/dvizh/yii2-cart)[ RSS](/packages/dvizh-yii2-cart/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Yii2-cart
=========

[](#yii2-cart)

Это модуль корзины для Yii2 фреймворка. Позволяет добавить в корзину любую модель, имплементирующую интерфейс dvizh\\cart\\interfaces\\CartElement

[![yii2-cart](https://cloud.githubusercontent.com/assets/8104605/15093925/aeb7a35a-14ae-11e6-96b1-72b737fa4a58.png)](https://cloud.githubusercontent.com/assets/8104605/15093925/aeb7a35a-14ae-11e6-96b1-72b737fa4a58.png)

Для добавления функционала заказа можно использовать этот модуль: [dvizh/yii2-order](https://github.com/dvizh/yii2-order).

Установка
---------

[](#установка)

Выполнить команду

```
php composer require dvizh/yii2-cart "@dev"

```

Или добавить в секцию require composer.json

```
"dvizh/yii2-cart": "@dev",

```

И выполнить

```
php composer update

```

Далее, мигрируем базу:

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

```

Подключение и настройка
-----------------------

[](#подключение-и-настройка)

В конфигурационный файл приложения добавить компонент cart

```
    'components' => [
        'cart' => [
            'class' => 'dvizh\cart\Cart',
            'currency' => 'р.', //Валюта
            'currencyPosition' => 'after', //after или before (позиция значка валюты относительно цены)
            'priceFormat' => [2,'.', ''], //Форма цены
        ],
        //...
    ]
```

И модуль (если хотите использовать виджеты)

```
    'modules' => [
        'cart' => [
            'class' => 'dvizh\cart\Module',
        ],
        //...
    ]
```

Использование
-------------

[](#использование)

Можно добавлять в корзину элементы самостоятельно через компонент, а можно использовать готовые виджеты. Пример эктиона, добавляющего товар в корзину:

```
//use...
class ProductController extends Controller
{
    public function actionAddToCart($id)
    {
        //Любая модель
        $model = $this->findModel($id);
        //Кладем ее в корзину (в количестве 1, без опций)
        $cartElement = yii::$app->cart->put($model, 1, []);
    }
}
```

Положить в корзину можно любую модель, имплемементирующую интерфейс CartElement. Пример модели:

```
//...
class Product extends ActiveRecord implements \dvizh\cart\interfaces\CartElement
{
    //..
    public function getCartId()
    {
        return $this->id;
    }

    public function getCartName()
    {
        return $this->name;
    }

    public function getCartPrice()
    {
        return $this->price;
    }

    //Опции продукта для выбора при добавлении в корзину
    public function getCartOptions()
    {
        return [
            '1' => [
                'name' => 'Цвет',
                'variants' => ['1' => 'Красный', '2' => 'Белый', '3' => 'Синий'],
            ],
            '2' => [
                'name' => 'Размер',
                'variants' => ['4' => 'XL', '5' => 'XS', '6' => 'XXL'],
            ]
        ];
    }
    //..
}
```

Получить элементы корзины:

```
//...
$elements = yii::$app->cart->elements;
```

Виджеты
=======

[](#виджеты)

В состав модуля входит несколько виджетов. Все работают аяксом.

```
