2017 © Pedro PelΓ‘ez
 

yii2-extension yii2-cart

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

image

pistol88/yii2-cart

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

  • Monday, April 24, 2017
  • by pistol88
  • Repository
  • 8 Watchers
  • 8 Stars
  • 1,012 Installations
  • PHP
  • 4 Dependents
  • 0 Suggesters
  • 9 Forks
  • 4 Open issues
  • 3 Versions
  • 2 % Grown

The README.md

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° модуля с 24.04.2017 вСдСтся здСсь: dvizh/yii2-cart. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ· рСпозитория Dvizh, ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΌ находится послСдняя вСрсия., (*1)

Yii2-cart

Π­Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹ для Yii2 Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ Π»ΡŽΠ±ΡƒΡŽ модСль, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ интСрфСйс pistol88\cart\interfaces\CartElement, (*2)

yii2-cart, (*3)

Для добавлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π·Π°ΠΊΠ°Π·Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ: pistol88/yii2-order., (*4)

Установка

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

php composer require pistol88/yii2-cart "*"

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

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

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

php composer update

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

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

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ настройка

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» прилоТСния Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ cart, (*9)

    'components' => [
        'cart' => [
            'class' => 'pistol88\cart\Cart',
            'currency' => 'Ρ€.', //Π’Π°Π»ΡŽΡ‚Π°
            'currencyPosition' => 'after', //after ΠΈΠ»ΠΈ before (позиция Π·Π½Π°Ρ‡ΠΊΠ° Π²Π°Π»ΡŽΡ‚Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ†Π΅Π½Ρ‹)
            'priceFormat' => [2,'.', ''], //Π€ΠΎΡ€ΠΌΠ° Ρ†Π΅Π½Ρ‹
        ],
        //...
    ]

И ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹), (*10)

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

ИспользованиС

МоТно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ элСмСнты ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ эктиона, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ:, (*11)

//use...
class ProductController extends Controller
{
    public function actionAddToCart($id)
    {
        //Π›ΡŽΠ±Π°Ρ модСль
        $model = $this->findModel($id);
        //КладСм Π΅Π΅ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ (Π² количСствС 1, Π±Π΅Π· ΠΎΠΏΡ†ΠΈΠΉ)
        $cartElement = yii::$app->cart->put($model, 1, []);
    }
}

ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡŽΠ±ΡƒΡŽ модСль, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ интСрфСйс CartElement. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ:, (*12)

//...
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'],
            ]
        ];
    }
    //..
}

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнты ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹:, (*13)

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

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹

Π’ состав модуля Π²Ρ…ΠΎΠ΄ΠΈΡ‚ нСсколько Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². ВсС Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ аяксом., (*14)




= BuyButton::widget([
    'model' => $model,
    'text' => 'Π—Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ',
    'htmlTag' => 'a',
    'cssClass' => 'custom_class'
]) ?>


= CartInformer::widget(['htmlTag' => 'a', 'offerUrl' => '/?r=cart', 'text' => '{c} Π½Π° {p}']); ?>


= TruncateButton::widget(); ?>

 ElementsList::TYPE_FULL) элСмСнтами списка.
МоТно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· otherFields (['ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ' => 'amount']).
*/
?>
=ElementsList::widget(['type' => ElementsList::TYPE_DROPDOWN]);?>


=DeleteButton::widget(['model' => $item]);?>


=ChangeCount::widget(['model' => $item]);?>
 ChangeOptions::TYPE_RADIO) */ ?>
=ChangeOptions::widget(['model' => $item]);?>

Π‘ΠΊΠΈΠ΄ΠΊΠΈ

Π‘ΠΊΠΈΠ΄ΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ(ΠΈΠ»ΠΈ) событиС. ΠšΠΎΡ€Π·ΠΈΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ любоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅):, (*15)

        'cart' => [
            'class' => 'pistol88\cart\Cart',
            //...
            'as discount' => [
                'class' => 'pistol88\cart\behaviors\Discount',
                'percent' => 50,
            ],
        ],

ПовСдСниС цСпляСтся ΠΊ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ EVENT_CART_COST ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ скидку (см. pistol88\cart\behaviors\Discount)., (*16)

МоТно ΠΏΠΎΠ΄Ρ†Π΅ΠΏΠΈΡ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ:, (*17)

        'cart' => [
            'class' => 'pistol88\cart\Cart',
            //...
            'on cart_cost' => function($event) {
                $event->cost = ($event->cost*50)/100;
            }
        ],

Бобытия

ВсС события ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹:, (*18)

  • EVENT_CART_COST - ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ†Π΅Π½Ρ‹
  • EVENT_CART_COUNT - ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ количСства
  • EVENT_CART_TRUNCATE - ΠΎΡ‡ΠΈΡ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹
  • EVENT_CART_PUT - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта
  • EVENT_ELEMENT_COST - ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ†Π΅Π½Ρ‹ элСмСнта
  • EVENT_ELEMENT_ROUNDING - ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅Π½Ρ‹ элСмСнта

The Versions

24/04 2017

dev-master

9999999-dev https://github.com/pistol88/

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

  Sources   Download

BSD-3-Clause

The Requires

 

by Ilya Pistol

yii2 module yii 2 application shop cart pistol88

06/03 2017

dev-refactor

dev-refactor https://github.com/pistol88/

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

  Sources   Download

BSD-3-Clause

The Requires

 

by Ilya Pistol

yii2 module yii 2 application shop cart pistol88

28/12 2016

dev-new-event-and-element-list-view

dev-new-event-and-element-list-view https://github.com/pistol88/

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

  Sources   Download

BSD-3-Clause

The Requires

 

by Ilya Pistol

yii2 module yii 2 application shop cart pistol88