使用Java框架Scipio ERP創(chuàng)建一個(gè)在線商店
Scipio ERP 具有包羅萬象的應(yīng)用程序和功能。
如果,你想在網(wǎng)上銷售產(chǎn)品或服務(wù),但要么找不到合適的軟件,要么覺得定制成本太高?那么,Scipio ERP 也許正是你想要的。
Scipio ERP 是一個(gè)基于 Java 的開源的電子商務(wù)框架,具有包羅萬象的應(yīng)用程序和功能。這個(gè)項(xiàng)目于 2014 年從 Apache OFBiz 分叉而來,側(cè)重于更好的定制和更現(xiàn)代的吸引力。這個(gè)電子商務(wù)組件非常豐富,可以在多商店環(huán)境中工作,同時(shí)支持國際化,具有琳瑯滿目的產(chǎn)品配置,而且它還兼容現(xiàn)代 HTML 框架。該軟件還為許多其他業(yè)務(wù)場景提供標(biāo)準(zhǔn)應(yīng)用程序,例如會(huì)計(jì)、倉庫管理或銷售團(tuán)隊(duì)自動(dòng)化。它都是高度標(biāo)準(zhǔn)化的,因此易于定制,如果你想要的不僅僅是一個(gè)虛擬購物車,這是非常棒的。
該系統(tǒng)也使得跟上現(xiàn)代 Web 標(biāo)準(zhǔn)變得非常容易。所有界面都是使用系統(tǒng)的“模板工具包”構(gòu)建的,這是一個(gè)易于學(xué)習(xí)的宏集,可以將 HTML 與所有應(yīng)用程序分開。正因?yàn)槿绱?,每個(gè)應(yīng)用程序都已經(jīng)標(biāo)準(zhǔn)化到核心。聽起來令人困惑?它真的不是 HTML——它看起來很像 HTML,但你寫的內(nèi)容少了很多。
初始安裝
在你開始之前,請(qǐng)確保你已經(jīng)安裝了 Java 1.8(或更高版本)的 SDK 以及一個(gè) Git 客戶端。完成了?太棒了!接下來,切換到 Github 上的主分支:
git clone https://github.com/ilscipio/scipio-erp.git
cd scipio-erp
git checkout master
要安裝該系統(tǒng),只需要運(yùn)行 ./install.sh
并從命令行中選擇任一選項(xiàng)。在開發(fā)過程中,最好一直使用 “installation for development”(選項(xiàng) 1),它還將安裝一系列演示數(shù)據(jù)。對(duì)于專業(yè)安裝,你可以修改初始配置數(shù)據(jù)(“種子數(shù)據(jù)”),以便自動(dòng)為你設(shè)置公司和目錄數(shù)據(jù)。默認(rèn)情況下,系統(tǒng)將使用內(nèi)部數(shù)據(jù)庫運(yùn)行,但是它也可以配置使用各種關(guān)系數(shù)據(jù)庫,比如 PostgreSQL 和 MariaDB 等。
按照安裝向?qū)瓿沙跏寂渲?/em>
通過命令 ./start.sh
啟動(dòng)系統(tǒng)然后打開鏈接 https://localhost:8443/setup/ 完成配置。如果你安裝了演示數(shù)據(jù), 你可以使用用戶名 admin
和密碼 scipio
進(jìn)行登錄。在安裝向?qū)е?,你可以設(shè)置公司簡介、會(huì)計(jì)、倉庫、產(chǎn)品目錄、在線商店和額外的用戶配置信息。暫時(shí)在產(chǎn)品商店配置界面上跳過網(wǎng)站實(shí)體的配置。系統(tǒng)允許你使用不同的底層代碼運(yùn)行多個(gè)在線商店;除非你想這樣做,一直選擇默認(rèn)值是最簡單的。
祝賀你,你剛剛安裝了 Scipio ERP!在界面上操作一兩分鐘,感受一下它的功能。
捷徑
在你進(jìn)入自定義之前,這里有一些方便的命令可以幫助你:
- 創(chuàng)建一個(gè) shop-override:
./ant create-component-shop-override
- 創(chuàng)建一個(gè)新組件:
./ant create-component
- 創(chuàng)建一個(gè)新主題組件:
./ant create-theme
- 創(chuàng)建管理員用戶:
./ant create-admin-user-login
- 各種其他實(shí)用功能:
./ant -p
- 用于安裝和更新插件的實(shí)用程序:
./git-addons help
另外,請(qǐng)記下以下位置:
- 將 Scipio 作為服務(wù)運(yùn)行的腳本:
/tools/scripts/
- 日志輸出目錄:
/runtime/logs
- 管理應(yīng)用程序:
<https://localhost:8443/admin/>
- 電子商務(wù)應(yīng)用程序:
<https://localhost:8443/shop/>
最后,Scipio ERP 在以下五個(gè)主要目錄中構(gòu)建了所有代碼:
framework
: 框架相關(guān)的源,應(yīng)用程序服務(wù)器,通用界面和配置applications
: 核心應(yīng)用程序addons
: 第三方擴(kuò)展themes
: 修改界面外觀hot-deploy
: 你自己的組件
除了一些配置,你將在 hot-deploy
和 themes
目錄中進(jìn)行開發(fā)。
在線商店定制
要真正使系統(tǒng)成為你自己的系統(tǒng),請(qǐng)開始考慮使用組件。組件是一種模塊化方法,可以覆蓋、擴(kuò)展和添加到系統(tǒng)中。你可以將組件視為獨(dú)立 Web 模塊,可以捕獲有關(guān)數(shù)據(jù)庫(實(shí)體)、功能(服務(wù))、界面(視圖)、事件和操作和 Web 應(yīng)用程序等的信息。由于組件功能,你可以添加自己的代碼,同時(shí)保持與原始源兼容。
運(yùn)行命令 ./ant create-component-shop-override
并按照步驟創(chuàng)建你的在線商店組件。該操作將會(huì)在 hot-deploy
目錄內(nèi)創(chuàng)建一個(gè)新目錄,該目錄將擴(kuò)展并覆蓋原始的電子商務(wù)應(yīng)用程序。
一個(gè)典型的組件目錄結(jié)構(gòu)。
你的組件將具有以下目錄結(jié)構(gòu):
config
: 配置data
: 種子數(shù)據(jù)entitydef
: 數(shù)據(jù)庫表定義script
: Groovy 腳本的位置servicedef
: 服務(wù)定義src
: Java 類webapp
: 你的 web 應(yīng)用程序widget
: 界面定義
此外,ivy.xml
文件允許你將 Maven 庫添加到構(gòu)建過程中,ofbiz-component.xml
文件定義整個(gè)組件和 Web 應(yīng)用程序結(jié)構(gòu)。除了一些在當(dāng)前目錄所能夠看到的,你還可以在 Web 應(yīng)用程序的 WEB-INF
目錄中找到 controller.xml
文件。這允許你定義請(qǐng)求實(shí)體并將它們連接到事件和界面。僅對(duì)于界面來說,你還可以使用內(nèi)置的 CMS 功能,但優(yōu)先要堅(jiān)持使用核心機(jī)制。在引入更改之前,請(qǐng)熟悉 /applications/shop/
。
添加自定義界面
還記得模板工具包嗎?你會(huì)發(fā)現(xiàn)它在每個(gè)界面都有使用到。你可以將其視為一組易于學(xué)習(xí)的宏,它用來構(gòu)建所有內(nèi)容。下面是一個(gè)例子:
<@section title="Title">
<@heading id="slider">Slider</@heading>
<@row>
<@cell columns=6>
<@slider id="" class="" controls=true indicator=true>
<@slide link="#" image="https://placehold.it/800x300">Just some content…</@slide>
<@slide title="This is a title" link="#" image="https://placehold.it/800x300"></@slide>
</@slider>
</@cell>
<@cell columns=6>Second column</@cell>
</@row>
</@section>
不是很難,對(duì)吧?同時(shí),主題包含 HTML 定義和樣式。這將權(quán)力交給你的前端開發(fā)人員,他們可以定義每個(gè)宏的輸出,并堅(jiān)持使用自己的構(gòu)建工具進(jìn)行開發(fā)。
我們快點(diǎn)試試吧。首先,在你自己的在線商店上定義一個(gè)請(qǐng)求。你將修改此代碼。一個(gè)內(nèi)置的 CMS 系統(tǒng)也可以通過 https://localhost:8443/cms/ 進(jìn)行訪問,它允許你以更有效的方式創(chuàng)建新模板和界面。它與模板工具包完全兼容,并附帶可根據(jù)你的喜好采用的示例模板。但是既然我們?cè)噲D在這里理解系統(tǒng),那么首先讓我們采用更復(fù)雜的方法。
打開你商店 webapp
目錄中的 controller.xml 文件。控制器會(huì)跟蹤請(qǐng)求事件并相應(yīng)地執(zhí)行操作。下面的操作將會(huì)在 /shop/test
下創(chuàng)建一個(gè)新的請(qǐng)求:
<!-- Request Mappings -->
<request-map uri="test">
<security https="true" auth="false"/>
<response name="success" type="view" value="test"/>
</request-map>
你可以定義多個(gè)響應(yīng),如果需要,可以在請(qǐng)求中使用事件或服務(wù)調(diào)用來確定你可能要使用的響應(yīng)。我選擇了“視圖”類型的響應(yīng)。視圖是渲染的響應(yīng);其他類型是請(qǐng)求重定向、轉(zhuǎn)發(fā)等。系統(tǒng)附帶各種渲染器,可讓你稍后確定輸出;為此,請(qǐng)?zhí)砑右韵聝?nèi)容:
<!-- View Mappings -->
<view-map name="test" type="screen" page="component://mycomponent/widget/CommonScreens.xml#test"/>
用你自己的組件名稱替換 my-component
。然后,你可以通過在 widget/CommonScreens.xml
文件的標(biāo)簽內(nèi)添加以下內(nèi)容來定義你的第一個(gè)界面:
<screen name="test">
<section>
<actions>
</actions>
<widgets>
<decorator-screen name="CommonShopAppDecorator" location="component://shop/widget/CommonScreens.xml">
<decorator-section name="body">
<platform-specific><html><html-template location="component://mycomponent/webapp/mycomponent/test/test.ftl"/></html></platform-specific>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
商店界面實(shí)際上非常模塊化,由多個(gè)元素組成(小部件、動(dòng)作和裝飾器)。為簡單起見,請(qǐng)暫時(shí)保留原樣,并通過添加第一個(gè)模板工具包文件來完成新網(wǎng)頁。為此,創(chuàng)建一個(gè)新的 webapp/mycomponent/test/test.ftl
文件并添加以下內(nèi)容:
<@alert type="info">Success!</@alert>
一個(gè)自定義的界面。
打開 https://localhost:8443/shop/control/test/ 并驚嘆于你自己的成就。
自定義主題
通過創(chuàng)建自己的主題來修改商店的界面外觀。所有主題都可以作為組件在 themes
文件夾中找到。運(yùn)行命令 ./ant create-theme
來創(chuàng)建你自己的主題。
一個(gè)典型的主題組件布局。
以下是最重要的目錄和文件列表:
- 主題配置:
data/*ThemeData.xml
- 特定主題封裝的 HTML:
includes/*.ftl
- 模板工具包 HTML 定義:
includes/themeTemplate.ftl
- CSS 類定義:
includes/themeStyles.ftl
- CSS 框架:
webapp/theme-title/
快速瀏覽工具包中的 Metro 主題;它使用 Foundation CSS 框架并且充分利用了這個(gè)框架。然后,然后,在新構(gòu)建的 webapp/theme-title
目錄中設(shè)置自己的主題并開始開發(fā)。Foundation-shop 主題是一個(gè)非常簡單的特定于商店的主題實(shí)現(xiàn),你可以將其用作你自己工作的基礎(chǔ)。
瞧!你已經(jīng)建立了自己的在線商店,準(zhǔn)備個(gè)性化定制吧!
一個(gè)搭建完成的基于 Scipio ERP的在線商店。
接下來是什么?
Scipio ERP 是一個(gè)功能強(qiáng)大的框架,可簡化復(fù)雜的電子商務(wù)應(yīng)用程序的開發(fā)。為了更完整的理解,請(qǐng)查看項(xiàng)目文檔,嘗試在線演示,或者加入社區(qū).