添加客服咨詢詳情
咨詢熱線:15918671994
多用戶
商城系統(tǒng)
訂單
管理系統(tǒng)
訂貨
管理系統(tǒng)
多語言
商城系統(tǒng)
發(fā)表于 2017-11-30 15:14:54 瀏覽:5032
需要完成一個獨立的網(wǎng)上商城系統(tǒng),系統(tǒng)分類和店鋪商品分類是必不可少的。讓我們看看商品分類是什么:商品分類是概括一定范圍內(nèi)的集合總體,任何集合總體都可按照一定的標(biāo)志和特征歸納成若干范圍較小的單元,直到劃分為最小的單元。商品的分類,是指按照一定目的,為滿足某種需要選擇適當(dāng)?shù)姆诸悩?biāo)志和特征,將商品集合總體科學(xué)地、系統(tǒng)地逐次劃分為不同的大類、中類、小類、品類或品目、品種,以至規(guī)格、品級等細目的過程。
下面我們以網(wǎng)上商城系統(tǒng)為例,看看這套系統(tǒng)是如何設(shè)計、實現(xiàn)網(wǎng)上商城系統(tǒng)的商品分類。
一:設(shè)計分類數(shù)據(jù)表:
商品的分類,會涉及到:catId自增ID;parentId父ID用于關(guān)聯(lián);isShow是否顯示在前臺展示;isFloor是否顯示在首頁的展示;catName名稱;catSort用于首頁排序展示;dataFlag刪除;createTime時間。
建好后,如下圖,這樣就建好商城系統(tǒng)系統(tǒng)分類的數(shù)據(jù)庫了。
二:后臺查看,新增,編輯,刪除分類:
下面我們要對網(wǎng)上商城系統(tǒng)分類進行代碼的編寫,實現(xiàn)分類的增刪改,以編輯商品分類來演示一下吧,新增,刪除和此類似:
public function edit(){
$catId = input('post.id/d');
$data = input('post.');
WSTUnset($data,'catId,dataFlag,createTime');
$result = $this->validate('GoodsCats.edit')->allowField(true)->save($data,['catId'=>$catId]);
$ids = array();
$ids = $this->getChild($catId);
$this->where("catId in(".implode(',',$ids).")")->update(['isShow' => (int)$data['isShow'],'isFloor'=> $data['isFloor'],'commissionRate'=>(float)$data['commissionRate']]);
if(false !== $result){
if($data['isShow']==0){
//刪除購物車?yán)锏南嚓P(guān)商品
$goods = Db::name('goods')->where(["goodsCatId"=>['in',$ids],'isSale'=>1])->field('goodsId')->select();
if(count($goods)>0){
$goodsIds = [];
foreach ($goods as $key =>$v){
$goodsIds[] = $v['goodsId'];
}
Db::name('carts')->where(['goodsId'=>['in',$goodsIds]])->delete();
}
//把相關(guān)的商品下架了
Db::name('goods')->where("goodsCatId in(".implode(',',$ids).")")->update(['isSale' => 0]);
WSTClearAllCache();
}
return WSTReturn("修改成功", 1);
}else{
return WSTReturn($this->getError(),-1);
}
}
還可對網(wǎng)上商城系統(tǒng)分類進行多級新增,編輯,刪除
三:將后臺管理的商品分類在前臺展示:
獲取網(wǎng)上商城系統(tǒng)的商品分類數(shù)據(jù),然后顯示出來:
function WSTSideCategorys(){
$data = cache('WST_SIDE_CATS');
if(!$data){
$cats1 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>0])->field("catName,catId,catImg")->order('catSort asc')->select();
if(count($cats1)>0){
$ids1 = [];$ids2 = [];$cats2 = [];$cats3 = [];$mcats3 = [];$mcats2 = [];
foreach ($cats1 as $key =>$v){
$ids1[] = $v['catId'];
}
$tmp2 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>['in',$ids1]])->field("catName,catId,parentId,catImg")->order('catSort asc')->select();
if(count($tmp2)>0){
foreach ($tmp2 as $key =>$v){
$ids2[] = $v['catId'];
}
$tmp3 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>['in',$ids2]])->field("catName,catId,parentId,catImg")->order('catSort asc')->select();
if(count($tmp3)>0){
//組裝第三級
foreach ($tmp3 as $key =>$v){
$mcats3[$v['parentId']][] = $v;
}
}
//組裝第二級
foreach ($tmp2 as $key =>$v){
if(isset($mcats3[$v['catId']]))$v['list'] = $mcats3[$v['catId']];
$mcats2[$v['parentId']][] = $v;
}
//組裝第一級
foreach ($cats1 as $key =>$v){
if(isset($mcats2[$v['catId']]))$cats1[$key]['list'] = $mcats2[$v['catId']];
}
}
unset($ids1,$ids2,$cats2,$cats3,$mcats3,$mcats2);
}
cache('WST_SIDE_CATS',$cats1);
return $cats1;
}
return $data;
}
根據(jù)網(wǎng)上商城系統(tǒng)分類級別的循環(huán)展示出來,第一級和第二級關(guān)聯(lián),和下次級鮮明的展示關(guān)系,配搭上品牌和廣告,就顯示出首頁的效果了。
這樣我們便實現(xiàn)了網(wǎng)上商城系統(tǒng)的商品分類,實現(xiàn)商品分類并不難,理解思路明確,就可以實現(xiàn)。
文中相關(guān)代碼我就不另外貼了,大家有興趣的可以在WSTMart官網(wǎng)下載。
獲取體驗賬號 最新優(yōu)惠及電商資訊