onurokkyay / yii2-shopping
Yii2 shopping Module
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=7.0
- yiisoft/yii2: ~2.0.13
Requires (Dev)
- phpunit/phpunit: 8.*.*
This package is auto-updated.
Last update: 2024-05-23 19:40:01 UTC
README
Yii2 shopping Module
Yii2 KOU E-Ticaret Sitesi
Projeyi bir grup olarak 4 arkadaş yaptık.
Modüller:
180202052-Melih Çalışkan-> Products=> Ürünleri listeleme,Sepete Ekleme,Admin için Ürün Ekleme sekmesi
180202039-Onur Okyay-> Shopping=>Sepetteki ürünleri listeleme,Satın alma,Geçmiş satın alımları gösterme
180202105-Sabri Kusay Gülmez-> Category=> Kategori listeleme,Seçilen kategoriye göre ürünleri listeleme,Admin için Kategori Ekleme
180202026-Imran Kucur-> Reviews=>Her bir ürün için yorum ekleme ve puan verme,Seçilen ürüne yapılan tüm yorumları gösterme
User=> Kayıt-Giriş,Hesabım sekmesi
Kurulum
Vagrantı kaldırdıktan sonra ssh ile bağlanın ve terminalde advanced içine girdikten sonra(cd /var/www/advanced) aşağıdakileri yazınız.
composer require melih058/yii2-migrations "dev-main"
composer require melih058/yii2-products "dev-main"
composer require sabsay03/yii2-categories "dev-main"
composer require imrankucur/yii2-reviews "dev-main"
composer require sabsay03/yii2-user "dev-main"
composer require onurokkyay/yii2-shopping "dev-main"
Advanced içinde vendor klasöründe bu dosyaların oluşması gerekir
Advanced->backend->config->main.php içerisine modüller aşağıda belirtilen şekilde referans edilmelidir.
'modules' => [
'products' => [
'class'=>'melih058\products\Module'
],
'shopping' => [
'class' => 'onurokkyay\shopping\Module',
],
'user' => [
'class' => 'sabsay03\user\Module',
],
'categories' => [
'class' => 'sabsay03\categories\Module',
],
'reviews' => [
'class' => 'imrankucur\reviews\Module',
],
]
Migrations
Advancedin içindeyken (cd /var/www/advanced) terminale bu komutu yazınız.
advanced/phpmyadmin e user kısmına root yazıp giriş yaptıktan sonra yii2advanced adında yeni bir database oluşturun.
php yii migrate --migrationPath=@melih058/migrations/migrations
7 yeni migration gördükten sonra yes diyip onaylayın ve sonra tabloları phpmyadminde kontrol edin.
Site Görünüşü
advanced->backend->views->layout->main.php'nin içine aşağıdakilerin hepsini kopyalayıp yapıştırın.
<?php
/* @var $this \yii\web\View */
/* @var $content string */
use backend\assets\AppAsset;
use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use common\widgets\Alert;
AppAsset::register($this);
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
<meta charset="<?= Yii::$app->charset ?>">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php $this->registerCsrfMetaTags() ?>
<title><?= Html::encode($this->title) ?></title>
<?php $this->head() ?>
</head>
<body>
<?php $this->beginBody() ?>
<div class="wrap">
<?php
NavBar::begin([
'brandLabel' => '<class="img-responsive"/>Admin',
'brandUrl' => 'http://advanced/backend/web/index.php?r=user/user/index',
'options' => [
'class' => 'navbar-inverse navbar-fixed-top',
],
]);
$menuItems = [
['label' => 'Ana Sayfa', 'url' => ['/site/index']],
['label' => 'Ürünler', 'url' => ['/products/products/index']],
['label' => 'Kategoriler', 'url' => ['/categories/categories/index']],
];
if (Yii::$app->user->isGuest) {
$menuItems[] = ['label' => 'Giriş Yap', 'url' => ['/site/login']];
$menuItems[] = ['label' => 'Kayıt Ol', 'url' => ['/site/signup']];
} else {
$menuItems[] = ['label' => 'Sepetim', 'url' => ['/shopping/shopping/index']];
$menuItems[] = ['label' => 'Sipariş Geçmişim', 'url' => ['/shopping/purchasehistory/index']];
$menuItems[] = ['label' => 'Hesabım', 'url' => ['/user/user/view']];
$menuItems[] = '<li>'
. Html::beginForm(['/site/logout'], 'post')
. Html::submitButton(
'Çıkış Yap (' . Yii::$app->user->identity->username . ')',
['class' => 'btn btn-link logout']
)
. Html::endForm()
. '</li>';
}
echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => $menuItems,
]);
NavBar::end();
?>
<div class="container">
<?= Breadcrumbs::widget([
'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
]) ?>
<?= Alert::widget() ?>
<?= $content ?>
</div>
</div>
<footer class="footer">
<div class="container ">
<p class="pull-left">© <?= Html::encode(Yii::$app->name) ?> <?= date('Y') ?></p>
<p class="pull-right"><?= Yii::powered() ?></p>
</div>
</footer>
<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>
advanced->backend->views->site->index.php'nin içine aşağıdakilerin hepsini kopyalayıp yapıştırın.
<?php
/* @var $this yii\web\View */
$this->title = 'KOU E-Ticaret';
?>
<div class="site-index">
<div class="jumbotron">
<h1>Hoşgeldiniz</h1>
<p><a class="btn btn-lg btn-success" href=/backend/web/index.php?r=products/products/index>Alışverişe Başla!</a></p>
<p><a class="btn btn-lg btn-success" href=/backend/web/index.php?r=categories/categories/index>Kategoriler</a></p>
</div>
</div>
Kayıt Olma
Aşağıdaki linkten kayıt olunuz.
http://advanced/frontend/web/index.php?r=site%2Fsignup
Sonra phpmyadmine girip user tablosunda status'u 9 dan 10 a çevirin.
Kayıt olma işlemi tamamlandıktan aşağıdaki linkten giriş yapınız.
http://advanced/backend/web/index.php?r=site%2Flogin
İlk kayıt olan kullanıcının user tablosundaki id'si 1 olduğu için 1 sayılır.Yani idsi 1 olan kullanıcı admindir.Sitede sol üstte bulunan admin özelliklerini kullanabilir.Diğer kullanıcılar bu sekmeyi kullanamaz. Admin kullanıcı adı: admin şifre: 12345678
Yii2 Shopping Modülü
Giriş yaptıktan sonra sepetim ve sipariş geçmişim sekmesi aktif olur.
Sepetim Sayfası
advanced/backend/web/index.php?r=shopping/purchasehistory/index
Sepetteki tüm ürünleri ListView::widget ile gösterir.
shoppingcart tablosunda güncel userid (user tablosundaki id ile eşleşir.) ile sepete eklenen ürün productid (products tablosundaki id ile eşleşir) tutulur.
Delete butonuna tıklayarak ürünü silebilirsiniz.
Alışverişi tamamla butonuna tıklayarak tüm ürünleri satın alabilirsiniz.shoppingcart tablosunda giriş yapmış olan kullanıcıya ait userid'li tüm değerler shoppingcart tablosundan alınır ve purchasehistory tablosuna eklenir.Eklendikten sonra shoppingcart'tan userid'si giriş yapan kullanıcıyla eşleşen tüm değerler silinir.
Alışveriş butonu Purchase.php'ye yönlendirir ve ShoppingcartController'daki actionPurchase çalışır.Veritabanı işlemleri aşağıdaki gibidir.
public function actionPurchase()
{
$uid=Yii::$app->user->id;
$sql = "select productid from shoppingcart where userid='$uid) . '";
$result=Yii::$app->db
->createCommand($sql)
->queryColumn();
foreach ($result as $row) {
$sql1 = "insert into purchasehistory (userid,productid) values ( '$uid) . ','$row) . ')";
$result=Yii::$app->db
->createCommand($sql1)
->execute();
}
$sql2 = "delete from shoppingcart where userid='$uid) . '";
$result=Yii::$app->db
->createCommand($sql2)
->execute();
}
Sepetim Sayfası
Sipariş Geçmişi Sayfası
http://advanced/backend/web/index.php?r=shopping/shopping/index
Güncel userid'ye ait satın alınan tüm ürünleri ListView::widget ile gösterir.
purchasehistory tablosunda güncel userid'ye (user tablosundaki id ile eşleşir.) ait olan tüm satırları (productid products tablosundaki id ile eşleşir) listeler.