dev-master
9999999-devShoppingCart for Yii2
MIT
The Requires
component yii2 shoppingcart
ShoppingCart for Yii2
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ., (*1)
ΠΠ΄Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Shopping Cart Π΄Π»Ρ Yii 1.x, (*2)
ΠΠΎΡΠ·ΠΈΠ½Π° - ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ, ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ., (*3)
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ΅ΡΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ., (*4)
php composer.phar require developeruz/shopping-cart-component "*", (*5)
ΠΠΎΠ±Π°Π²ΠΈΡΡ:, (*6)
'components' => [ 'shoppingCart' => [ 'class' => 'developeruz\shopping\EShoppingCart' ] ]
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:, (*7)
$cart = Yii::$app->shoppingCart;
$cart = Yii::createObject('developeruz\shopping\EShoppingCart'); $cart->init(); $book = Books::findOne(1); $cart->put($book);
ΠΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² ΠΊΠΎΡΠ·ΠΈΠ½Ρ,
Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IECartPosition
:, (*8)
use developeruz\shopping\IECartPosition; class Book extends CActiveRecord implements IECartPosition { ... public function getId() { return $this->id; } public function getPrice() { return $this->price; } public function getAviable() { return true; } public function getTitle() { return $this->title; } public function getCostWithDiscount($quality) { if($quality > 10) return $quality * $this->getPrice() * 0.75; else return $quality * $this->getPrice(); } }
ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠ²Π°ΡΠ° Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ $quantity. ΠΡΠ»ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠ²Π°ΡΠ° ΡΠΆΠ΅ Π±ΡΠ»Π° Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅, ΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° $quantity, (*9)
$book = Books::findOne(1); $cart->put($book); //Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ 1 ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ id=1 Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ 1 Π΅Π΄ΠΈΠ½ΠΈΡΠ°. $cart->put($book,2); //Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ 1 ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ id=1 Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ 3 Π΅Π΄ΠΈΠ½ΠΈΡΡ. $book2 = Books::findOne(2); $cart->put($book2); //Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ 2 ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Ρ id=1 ΠΈ id=2
ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠ²Π°ΡΠ°. ΠΡΠ»ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠ²Π°ΡΠ° ΡΠΆΠ΅ Π±ΡΠ»Π° Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅, ΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π² $quantity. ΠΡΠ»ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π΅ Π±ΡΠ»ΠΎ Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅, ΡΠΎ ΠΎΠ½Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² Π½Π΅ΠΉ. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ $quantity<1, ΡΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΠΊΠΎΡΠ·ΠΈΠ½Ρ, (*10)
$book = Books::findOne(1); $cart->put($book); //Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ 1 ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ id=1 Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ 1 Π΅Π΄ΠΈΠ½ΠΈΡΠ°. $cart->update($book,2); //Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ 1 ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ id=1 Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ 2 Π΅Π΄ΠΈΠ½ΠΈΡΡ.
Π£Π΄Π°Π»ΡΠ΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠ· ΠΊΠΎΡΠ·ΠΈΠ½Ρ, (*11)
$book = Books::findOne(1); $cart->put($book,2); //Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ 1 ΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ id=1 Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ 2 Π΅Π΄ΠΈΠ½ΠΈΡΡ. $cart->remove($book); //Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ Π½Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ
ΠΡΠΈΡΠ°Π΅Ρ ΠΊΠΎΡΠ·ΠΈΠ½Ρ, (*12)
$cart->clear();
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ ΠΊΠΎΡΠ·ΠΈΠ½Π° ΠΏΡΡΡΠ°Ρ., (*13)
if($cart->isEmpty())
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ, (*14)
$cart->put($book,2); $cart->put($book2,3); $cart->getCount(); //2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²Π°ΡΠΎΠ², (*15)
$cart->put($book,2); $cart->put($book2,3); $cart->getItemsCount(); //5
ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ., (*16)
[php] $cart->put($book,2); $cart->put($book2,3); $cart->getItemsCount($book); //2
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π²ΡΠ΅ΠΉ ΠΊΠΎΡΠ·ΠΈΠ½Ρ, (*17)
$cart->put($book,2); //price=100 $cart->put($book2,1); //price=200 $cart->getCost(); //400
ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ. Π Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, (*18)
$cart->put($book,2); //price=100 $cart->put($book2,1); //price=200 $cart->getCost($book); //2*100 = 200
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΊΠΈΠ΄ΠΊΠΈ, (*19)
$cart->put($book,2); //price=100 ΡΠΊΠΈΠ΄ΠΊΠ° 25% ΠΏΡΠΈ ΠΏΠΎΠΊΡΠΏΠΊΠ΅ 2 ΡΡ $cart->put($book2,1); //price=200 $cart->getDiscountCost(); //350
ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ. Π Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, (*20)
$cart->put($book,2); //price=100 $cart->put($book2,1); //price=200 $cart->getDiscountCost($book); //2*100*0.75 = 150
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎΠ·ΠΈΡΠΈΠΉ, (*21)
$positions = $cart->getPositions(); foreach($positions as $position) { ... }
ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅: item - ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠ΅ ΡΠ΅ΡΠ΅Π· $model->getTitle(), quality - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ price - ΡΠ΅Π½Π° Π·Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΎΠ²Π°ΡΠ° ($model->getPrice()) cost - ΠΎΠ±ΡΠ°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠΎΠ²Π°ΡΠ° cost_with_discount - ΠΎΠ±ΡΠ°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΊΠΈΠ΄ΠΎΠΊ, (*22)
ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ., (*23)
$positions = $cart->getPositions($book1);
ShoppingCart for Yii2
MIT
component yii2 shoppingcart