1. 程式人生 > >支援多店鋪系統的開發(轉)

支援多店鋪系統的開發(轉)

Magento支援多店鋪,但是,即便如此,如果你的擴充套件沒考慮多店鋪,結果你的系統也只能支援單店鋪。

支援多店鋪的開發一般就是遵循一些基本原則:
1.查詢那些和店鋪有關的資料,必須加入store過濾
2.儲存店鋪有關的資料,必須指定store

II. 查詢相關店鋪相關的資料例:

1. 前端查詢某當前店鋪下的所有產品資料:
 

Php程式碼
  1. $collection = Mage::getModel('catalog/product')->getCollection();//預設裝載當前店鋪下的產品

$collection = Mage::getModel('catalog/product')->getCollection();//預設裝載當前店鋪下的產品


如果想查詢指定店鋪下的產品,需明確指定店鋪ID,在前面程式碼基礎上增加:
 

Php程式碼
  1. $collection = $collection->setStoreId(3); // 3為某店鋪ID

$collection = $collection->setStoreId(3); // 3為某店鋪ID



2. 前端裝載當前店鋪的某個產品
 

Php程式碼
  1. $prd = Mage::getModel('catalog/product')->load(112); // 112是產品的id

$prd = Mage::getModel('catalog/product')->load(112); // 112是產品的id


這裡不用指定店鋪id,預設轉載當前店鋪的資料,如果明確載入某個店鋪下的產品,應在load之前指定店鋪ID
 

Php程式碼
  1. $prd->setStoreId(3); // 店鋪ID號

$prd->setStoreId(3); // 店鋪ID號



3. 前端查詢某當前店鋪下的所有分類資料
與裝載產品非常類似
 

Php程式碼
  1. $collection = Mage::getModel('catalog/category')->getCollection(); //預設裝載當前店鋪的所有分類。

$collection = Mage::getModel('catalog/category')->getCollection(); //預設裝載當前店鋪的所有分類。


如果指定要裝載某個店鋪下的分類,增加如下程式碼:
 

Php程式碼
  1. $collection = $collection->setStoreId(3); // 3為店鋪ID

$collection = $collection->setStoreId(3); // 3為店鋪ID


4. 前端裝載一個Category
與裝載產品非常類似
 

Php程式碼
  1. $model = Mage::getModel('catalog/category')->load(12); // 12是分類的id

$model = Mage::getModel('catalog/category')->load(12); // 12是分類的id


這裡不用指定店鋪id,預設轉載當前店鋪的資料,如果明確載入某個店鋪下的分類,應在load之前指定店鋪ID
 

Php程式碼
  1. $model->setStoreId(3); // 店鋪ID號

$model->setStoreId(3); // 店鋪ID號



5. 前端獲得配置資料
當然,首先要知道你所要檢索的配置資料path,同前極類似:
 

Php程式碼
  1. Mage::getStoreConfig('cartz/configuration/brand_root'); //裝載當前店鋪下的資料

Mage::getStoreConfig('cartz/configuration/brand_root'); //裝載當前店鋪下的資料


以下程式碼達到同樣效果
 

Php程式碼
  1. Mage::getStoreConfig('cartz/configuration/brand_root', Mage::app()->getStore()->getId());  

Mage::getStoreConfig('cartz/configuration/brand_root', Mage::app()->getStore()->getId());


第二個引數Mage::app()->getStore()->getId()即為當前店鋪ID

如果想獲得某個店鋪下的配置,需明確指定店鋪ID.
 

Php程式碼
  1. Mage::getStoreConfig('cartz/configuration/brand_root', 3); //3為某店鋪ID.

Mage::getStoreConfig('cartz/configuration/brand_root', 3); //3為某店鋪ID.



II. 後臺店鋪相關的資料管理儲存:
一旦你建立了多個店鋪,你就會發現在很多頁面都有一個Store Switcher:

你如果也想讓自己的後臺頁面有一個這樣的swithcer,可以在合適的地方呼叫這個block,比如,在你的controller的 action方法中加入下面的程式碼
 

Php程式碼
  1. if (!Mage::app()->isSingleStoreMode()) {  
  2.   $this->_addLeft($this->getLayout()->createBlock('store_switcher'));  
  3. }  

if (!Mage::app()->isSingleStoreMode()) {
  $this->_addLeft($this->getLayout()->createBlock('store_switcher'));
}


就可以實現上述目的。有了這個基礎方便接下來店鋪資料切換。比如,當切換到某一個店鋪時,載入該店鋪下的單個或者多個產品時,別忘記根據 switcher傳入的store引數值正確呼叫setStoreId。

相關推薦

支援店鋪系統開發

Magento支援多店鋪,但是,即便如此,如果你的擴充套件沒考慮多店鋪,結果你的系統也只能支援單店鋪。 支援多店鋪的開發一般就是遵循一些基本原則: 1.查詢那些和店鋪有關的資料,必須加入store過濾 2.儲存店鋪有關的資料,必須指定store II. 查詢相關店鋪相關

linux下mysql實例安裝

ont 數據庫 fill 行修改 安裝部署 file 常見 soc -s 轉自:http://www.cnblogs.com/xuchenliang/p/6843990.html 1.MySQL多實例介紹 1.1.什麽是MySQL多實例 MySQL多實例就是在一臺機器上

maven配置倉庫鏡像

區別 組合 conf tail bar AI posit 奇葩 HR 原文地址:maven配置多倉庫鏡像 問題場景: 1、國內訪問maven默認遠程中央鏡像特別慢 2、用阿裏的鏡像替代遠程中央鏡像 3、大部分jar包都可以在阿裏鏡像中找到,部分jar包在阿裏鏡像中沒

【轉載】Vue 2.x 實戰之後臺管理系統開發

null element asc 其他 就會 ans 目錄 asi all 2. 常見需求 01. 父子組件通信 a. 父 -> 子(父組件傳遞數據給子組件) 使用 props,具體查看文檔 - 使用 Prop 傳遞數據(cn.vuejs.org/v2/guide

運動會分數統計系統開發第一版

/*************************************************** * 版權所有 (C/C++) 2015,辛志勐 * 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:終極版.cpp * 作者:辛志勐 * 完成日期:201

#46 小小型應用系統開發______100以內的四則運算

編寫程式,用隨機數實現100以內的加、減、乘、除運算,其中和與積不能超過100,差不為負(即須大減小),商不為小數或分數(即必須整除)。要求總計輸出10個運算式,每輸出一個運算式,等待輸入結果,然後進行

為什麼瀏覽器會使用程序架構。

在使用瀏覽器時偶然發現雖然僅僅開啟一個標籤頁,但是在工作管理員內發現有多個瀏覽器程序在執行,佔用了不小的記憶體,當時很納悶:為什麼一個瀏覽器卻需要多個程序呢?不經意間在網上發現這篇文章,以Google chrome瀏覽器為例,講解了使用多程序構架的瀏覽器。翻譯給大家,希望

Panda學習筆記4——表功能開發2後端介面開發

進行功能性的開發,主要涉及到: 序號 型別 名稱 1 DTO CodeRulesTest1Header 2 DTO CodeRulesTest1Line 3 Mapper CodeRulesTest1HeaderMapper 4 Ma

chrome外掛開發

作者原文:https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html 寫在前面 我花了將近一個多月的時間斷斷續續寫下這篇博文,並精心寫下完整demo,寫部落格的辛苦大家懂的,所以轉載務必保留出處。本

前言 - 作為一個合格的軟體開發

慎於說Yes 在沒有搞清楚開發需求、任務工作量、團隊期望值之前,100分的程式設計師不會輕易答應。特別是對於新人來說,比較急於表現自己,對於同事或者老闆的工作安排來者不拒,精神可嘉,方法不可取。承諾太多,會出現自己無法按時完成的情況,即使按時完成,也可能沒有達到別人的期望值,長期以往別人對你的失

c++適合做什麼樣的開發?

         C++是一門廣泛用於工業軟體研發的大型語言,具有很高的複雜性和解決問題的能力。C ++不僅在開發上極具價值,同時在學術界也就有很高的價值。有關C++的文章應該可以用浩如煙海來形容了吧。C++的世界級經典書籍也是數不勝數。然而,目前開發語言是如此地繁榮,就連微

深入理解Tomcat系列之一:系統架構

前言 Tomcat是Apache基金組織下的開源專案,性質是一個Web伺服器。下面這種情況很普遍:在eclipse床架一個web專案並部署到Tomcat中,啟動tomcat,在瀏覽器中輸入一個類似http://localhost:8080/webproject/anyname.jsp的url,然後就可以看到

Vue 2.x 實戰之後臺管理系統開發

1. 導語 該文章將從頭到尾梳理我是如何使用 Vue 2 開發一個後臺管理專案的,我會將自己遇到的問題貼出,希望可以幫助到其他人。 2. 開發前須知 我的後臺管理系統專案運用瞭如下框架/外掛: Vue 2.x —— 專案所使用的 js 框架

linux 執行緒程式設計

2009-07-16 17:10 45人閱讀 評論(0) 收藏 舉報 1 引言   執行緒(thread)技術早在60年代就被提出,但真正應用多執行緒到作業系統中去,是在80年代中期,solaris是這方面的佼佼者。傳統的Unix也支援執行緒的概念,但是在一個程序(

執行緒開發1:主執行緒,前臺執行緒,後臺執行緒,守護執行緒,子執行緒,託管執行緒的關係

1.主執行緒 當一個程式啟動時,就有一個程序被作業系統(OS)建立,與此同時一個執行緒也立刻執行,該執行緒通常叫做程式的主執行緒(Main Thread),因為它是程式開始時就執行的,如果你需要再建立執行緒,那麼建立的執行緒就是這個主執行緒的子執行緒。每個程序至少都有一個

後端管理系統開發:登入篇

作為後端程式設計師,想寫一個數據展示的系統,主要用於資料查詢、資料展示,當然也有登入功能了,有沒有比較快的方式呢,於此,Vue-A

Android開發中怎樣用進程、用進程的好處、進程的缺陷、解決方法

傳遞 標簽 事情 打印 ide 即時通訊 ice cati 一個數 轉自:http://blog.csdn.net/spencer_hale/article/details/54968092 1.怎樣用多進程 Android多進程概念:一般情況下,一個應用程序就是一個進

python 全棧開發,Day73(django表新增,基於物件的跨表查詢)

昨日內容回顧 多表方案: 如何確定表關係呢? 表關係是在2張表之間建立的,沒有超過2個表的情況。 那麼相互之間有2條關係線,先來判斷一對多的關係。 如果其中一張表的記錄能夠對應另外一張表的多條記錄,那麼關係線成立! 如果只

python 全棧開發,Day72(昨日作業講解,昨日內容回顧,Django表建立)

昨日作業講解 1.圖書管理系統 實現功能:book單表的增刪改查 1.1 新建一個專案bms,建立應用book。過程略... 1.2 手動建立static目錄,並在目錄裡面建立css資料夾,修改settings.py,設定static的目錄位置 STATI

web開發流程

ctu 圖片 hit 處理 隨著 使用 一個bug 原型開發 href a、項目經理與公司決策層的溝通,以確定這個需求有沒有足夠的人手和可行性去實現,以及與現有產品的依存關系。  b、公司決策層與市場/策劃部門的交流,這個過程將進行的相當充分,並且是反復、長期的,它致力於