PHPackages                             pistol88/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. [Framework](/categories/framework)
4. /
5. pistol88/yii2-cart

ActiveYii2-extension[Framework](/categories/framework)

pistol88/yii2-cart
==================

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

81.2k7[3 issues](https://github.com/pistol88/yii2-cart/issues)[1 PRs](https://github.com/pistol88/yii2-cart/pulls)PHP

Since Dec 28Pushed 9y ago8 watchersCompare

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

READMEChangelogDependenciesVersions (3)Used By (0)

Внимание!
=========

[](#внимание)

Разработка модуля с 24.04.2017 ведется здесь: [dvizh/yii2-cart](https://github.com/dvizh/yii2-cart). Рекомендую устанавливать модуль из репозитория Dvizh, именно там находится последняя версия.

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

[](#yii2-cart)

Это модуль корзины для Yii2 фреймворка. Позволяет добавить в корзину любую модель, имплементирующую интерфейс pistol88\\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)

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

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

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

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

```
php composer require pistol88/yii2-cart "*"

```

Или добавить в composer.json

```
"pistol88/yii2-cart": "*",

```

И выполнить

```
php composer update

```

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

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

```

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

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

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

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

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

```
    'modules' => [
        'cart' => [
            'class' => 'pistol88\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 \pistol88\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;
```

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

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

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

```
