Fecshop 產(chǎn)品

2018-05-25 14:16 更新

Fecshop 產(chǎn)品

作為電商系統(tǒng),很多地方都是圍繞產(chǎn)品展開的,譬如產(chǎn)品分類,產(chǎn)品搜索,產(chǎn)品評(píng)論,
產(chǎn)品收藏,購(gòu)物車產(chǎn)品,訂單產(chǎn)品等等。

后臺(tái)產(chǎn)品編輯

產(chǎn)品屬性組:

產(chǎn)品除了價(jià)格,名字,庫(kù)存等一些公用的屬性外, 產(chǎn)品根據(jù)不同的分類,會(huì)有一些獨(dú)有的屬性, 譬如電腦類產(chǎn)品會(huì)有cpu型號(hào),主板型號(hào)等屬性, 衣服類有顏色尺碼等屬性,在這里引入產(chǎn)品屬性組的概念, 一類產(chǎn)品從屬于一個(gè)屬性組。

屬性組的配置:

打開文件:@common/config/fecshop_local_services/Product.php文件 可以看到對(duì)屬性組的配置

配置文件的內(nèi)容太多,這么不貼出來的,您可以打開這個(gè)文件查看具體內(nèi)容,里面有注釋

屬性組里面的屬性有類別,目前有三個(gè)類:

1、spu_attr

1.1 spu和sku的概念:sku是產(chǎn)品的唯一標(biāo)示,最小庫(kù)存單位,譬如一款鞋子為一個(gè)spu,這款鞋子的不同的顏色和不同的尺碼為一個(gè)sku,

1.2 什么是spu屬性(spu_attr),當(dāng)一款鞋子的不同的sku是顏色和尺碼的不同,那么顏色和尺碼就是這款鞋子的spu屬性(spu_attr)。

1.3 spu_attr是用來在產(chǎn)品詳細(xì)頁(yè)面,將這個(gè)spu下面的所有sku串聯(lián)起來,譬如頁(yè)面:http://fecshop.appfront.fancyecommerce.com/index.php/raglan-sleeves-letter-printed-crew-neck-sweatshirt-53386451-77774122 訪問這款衣服的每一個(gè)SKU,都會(huì)把其他的sku列出來,點(diǎn)擊后,就進(jìn)去其他sku的頁(yè)面,您會(huì)發(fā)現(xiàn)url是變化的,這個(gè)是類似于京東的方式。 注意:

1.3.1 因?yàn)榻M合的復(fù)雜性,spu attr最多設(shè)置2個(gè)屬性,不能超過2個(gè)(如果超過會(huì)出問題。spu屬性會(huì)都不顯示),超過兩個(gè)請(qǐng)使用customer_option的方式。也就是類似于淘寶的方式。

1.3.2 這里的屬性需要嚴(yán)格按照下面的格式進(jìn)行配置,如果您想配置自己的spu屬性,那么

1.3.3 通過鏈接:https://fecshop.appfront.fancyecommerce.com/raglan-sleeves-letter-printed-crew-neck-sweatshirt-41214715 您可以看到,color屬性是用圖片來顯示的, 在spu_attr中,第一個(gè)屬性默認(rèn)用圖片顯示,譬如:

'spu_attr' => [  # spu用來區(qū)分sku的屬性,譬如下面的屬性的不同,對(duì)應(yīng)不同的sku,進(jìn)而是不同的庫(kù)存
    # 第一個(gè)屬性會(huì)被用戶當(dāng)做圖片來顯示。
    'color'   => [
        'dbtype'=> 'String',
        'label' =>'顏色',
        'name'  =>'color',
        'sort_order' => 1,
        'display'=>[
            'type' => 'select',
            'data' => [
                'one-color'     => 'one-color',
                'red'           => 'red',
                'white'         => 'white',
                'black'         => 'black',
                'blue'          => 'blue',
                'green'         => 'green',
                'yellow'        => 'yellow',
                'gray'          => 'gray',
                'khaki'         => 'khaki',

                
                'ivory'         => 'ivory',
                'beige'         => 'beige',
                'orange'            => 'orange',
                'cyan'          => 'cyan',
                'leopard'       => 'leopard',
                'camouflage'    => 'camouflage',

                
                'silver'        => 'silver',
                'pink'          => 'pink',
                'purple'        => 'purple',
                'brown'         => 'brown',
                'golden'        => 'golden',
                'multicolor'    => 'multicolor',
                'white & blue'  => 'White & Blue',
                'white & black'     => 'White & Black',
            ]
        ],
        //'require' => 0,
        //'default' => 2,
    ],
    # 第二個(gè)屬性不會(huì)當(dāng)做圖片來顯示
    'size'    => [
        'dbtype'=> 'String',
        'label' =>'尺碼',
        'name'  =>'size',
        'sort_order' => 2,
        'display'   =>[
            'type'  =>'select',
            'data'  =>[
                'one-size'  => 'one-size',
                'S'     => 'S',
                'M'     => 'M',
                'L'     => 'L',
                'XL'    => 'XL',
                'XXL'   => 'XXL',
                'XXXL'  => 'XXXL',
            ]
        ],
        //'require' => 0,
        //'default' => 2,
    ],

    
],

color 將會(huì)被當(dāng)做圖片來顯示出來。

2、general_attr(普通屬性),可以是各種格式的值,譬如時(shí)間格式,email格式,下拉條選擇值等。這些屬性可以用于分類側(cè)欄屬性過濾。

示例配置:

'general_attr' => [  
    # 這是input type='text' 的類型
    'my_remark' => [
        'dbtype'=> 'String',
        'label'=>'我的備注',
        'name'=>'my_remark',
        'display'=>[
            'type' => 'inputString',   # 字符串格式的屬性
        ],
        'require' => 0,
    ],
    # 這是input type='email' 的類型
    'my_email' =>[
        'dbtype'=> 'String',
        'label'=>'我的郵箱',
        'name'=>'my_email',
        'require' => 0,
        'display'=>[
            'type' => 'inputEmail',      # 字符串格式的屬性(email格式驗(yàn)證)
        ],
    ],
    # 這是input type='date' 的類型
    'my_date'  => [
        'label'=>'我的日期',
        'name'=>'my_date',
        'display'=>[
            'type' => 'inputDate',       # 字符串格式的屬性(Date格式驗(yàn)證)
        ],
    ],
    # 這是<select> 的類型
    'style'   => [
        'dbtype'=> 'String',
        'label' =>'類型',
        'name'  =>'style',
        'display'   =>[
            'type'  =>'select',      # 下拉條選擇格式的屬性
            'data'  =>[
                'Casual'    => 'Casual',
                'Cute'      => 'Cute',
                'Sexy & Club'=> 'Sexy & Club',
                'Bohemian'  => 'Bohemian',
                'Vintage '  => 'Vintage ',
                'Brief'     => 'Brief',
                'Work'      => 'Work',
                'Novelty'   => 'Novelty',
            ]
        ],
    ],

    
    'dresses-length'    => [
        'dbtype'=> 'String',
        'label' =>'裙長(zhǎng)',
        'name'  =>'dresses-length',
        'display'   =>[
            'type'  =>'select',  # 下拉條選擇格式的屬性
            'data'  =>[
                'Mini'  => 'Mini',
                'Knee-Length'       => 'Knee-Length',
                'Mid-Calf'=> 'Mid-Calf',
                'Ankle-Length'  => 'Ankle-Length',
                'Floor-Length '     => 'Floor-Length ',

                
            ]
        ],
    ],

    

    
    'pattern-type'  => [
        'dbtype'=> 'String',
        'label' =>'款式',
        'name'  =>'pattern-type',    # 屬性名字
        'display'   =>[
            'type'  =>'select',  # 下拉條選擇格式的屬性
            'data'  =>[
                'Animal'    => 'Animal',
                'Character'         => 'Character',
                'Floral'=> 'Floral',
                'Geometric '    => 'Geometric ',
                'Leopard '=> 'Leopard ',
                'Letter'=> 'Letter',
                'Paisley'=> 'Paisley',
                'Patchwork'=> 'Patchwork',
                'Polka Dot'=> 'Polka Dot',
                'Print'=> 'Print',
                'Striped'=> 'Striped',

                
            ]
        ],
    ],

    
    'sleeve-length'     => [
        'dbtype'=> 'String',
        'label' =>'袖長(zhǎng)',
        'name'  =>'sleeve-length',
        'display'   =>[
            'type'  =>'select',
            'data'  =>[
                'Sleeveless'    => 'Sleeveless',
                'Short-Sleeves'         => 'Short Sleeves',
                'Half-Sleeves'=> 'Half Sleeves',
                '3-4-Length-Sleeves '   => '3/4 Length Sleeves ',
                'Long-Sleeves '=> 'Long Sleeves ',

                
            ]
        ],
    ],

    
    'collar' => [
        'dbtype'=> 'String',
        'label' =>'領(lǐng)口',      # 后臺(tái)顯示的中文名(目前后臺(tái)只有中文)
        'name'  =>'collar',
        'display'   =>[
            'type'  =>'select',
            'data'  =>[
                'Round Neck'    => 'Round Neck', # 下拉條里面對(duì)應(yīng)的各個(gè)可以選擇的值。
                'V-Neck'    => 'V-Neck',
                'Hooded'    => 'Hooded',
                'Turn-down-Collar'  => 'Turn-down Collar',

                
            ]
        ],
        //'require' => 0,
        //'default' => 2,
    ],
],

3、custom_options用戶自定義屬性,顯示方式方面有點(diǎn)和spu屬性類似,spu屬性顯示的方式是京東的方式,點(diǎn)擊每一個(gè)選項(xiàng)是url跳轉(zhuǎn)的 用戶自定義類似于淘寶的方式,選擇各個(gè)顏色尺碼,頁(yè)面是不跳轉(zhuǎn)的,各個(gè)顏色尺碼有相應(yīng)的圖片,庫(kù)存,價(jià)格,sku等。 您可以查看演示地址:http://fecshop.appfront.fancyecommerce.com/index.php/reindeer-pattern-glitter-christmas-dress-86519596 您可以給產(chǎn)品屬性組添加的屬性類型就上面幾種,在后臺(tái)編輯產(chǎn)品的時(shí)候,選擇不同的屬性組,就會(huì)加載相應(yīng)的屬性出來。

示例配置:

'custom_options' => [

                    
    'my_color'    => [
        'dbtype'=> 'String',  #類型
        'label' =>'My Color', # 顯示的名字
        'name'  =>'color',     # 在數(shù)據(jù)庫(kù)中存在的列名
        'showAsImg' => true,  # (在前端展示部分)通過圖片的方式展示屬性。譬如;http://fecshop.appfront.fancyecommerce.com/index.php/reindeer-pattern-glitter-christmas-dress-86519596,
                              #     你會(huì)發(fā)現(xiàn),該屬性對(duì)應(yīng)的顯示方式不是值,而是產(chǎn)品的圖片。
        'require' => 1,  # 1代表是必填選項(xiàng),0代表選填
        'display'=>[
            'type' => 'select',
            'data' => [
                'red'           => 'red',
                'white'         => 'white',
                'black'         => 'black',
                'blue'          => 'blue',
                'green'         => 'green',
                'yellow'        => 'yellow',
                'gray'          => 'gray',
                'khaki'         => 'khaki',

                
                'ivory'         => 'ivory',
                'beige'         => 'beige',
                'orange'            => 'orange',
                'cyan'          => 'cyan',
                'leopard'       => 'leopard',
                'camouflage'    => 'camouflage',

                
                'silver'        => 'silver',
                'pink'          => 'pink',
                'purple'        => 'purple',
                'brown'         => 'brown',
                'golden'        => 'golden',
                'leopard'       => 'leopard',
                'multicolor'    => 'multicolor',
                'white & blue'  => 'White & Blue',
                'white & black'     => 'White & Black',
            ]
        ],

        
    ],

    
    'my_size'     => [
        'dbtype'=> 'String',
        'label' =>'My Size',
        'name'  =>'size',
        'require' => 1,
        'display'   =>[
            'type'  =>'select',
            'data'  =>[
                'S'     => 'S',
                'M'     => 'M',
                'L'     => 'L',
                'XL'    => 'XL',
                'XXL'   => 'XXL',
                'XXXL'  => 'XXXL',
            ]
        ],

        
    ],

    


],

通過鏈接:https://fecshop.appfront.fancyecommerce.com/reindeer-pattern-glitter-christmas-dress 。您可以看到顏色是用圖片實(shí)現(xiàn)的,如果您想用圖片顯示,那么 您需要設(shè)置'showAsImg' => true 即可。 只能有一個(gè)custom_option屬性設(shè)置為true,如果多個(gè)設(shè)置為true,只有一個(gè) 有效,其他的會(huì)被忽略。

上面是屬性組里面的三種屬性類型,分別是: spu_attr general_attrcustom_options
,我們可以通過配置的方式添加多個(gè)屬性組,每一個(gè)屬性組包含上面 的三種屬性,譬如衣服裙子一個(gè)屬性組,電腦一個(gè)屬性組,手機(jī)一個(gè)屬性組 等等, 通過屬性組配置的方式可以很方便的擴(kuò)展產(chǎn)品獨(dú)有的屬性, 在配置文件中配置好產(chǎn)品屬性組后, 在后臺(tái) 編輯產(chǎn)品的時(shí)候選擇相應(yīng)的屬性組即可添加相應(yīng)的屬性,對(duì)于屬性組里面的屬性,一旦編輯后 。盡量不要經(jīng)常的改動(dòng)。

分類頁(yè)面產(chǎn)品屬性過濾的設(shè)置

就是前端頁(yè)面?zhèn)葯诘漠a(chǎn)品過濾,如圖:

如何設(shè)置呢?

1、全局設(shè)置:首先打開配置文件 @appfront/config/fecshop_local_modules/Catalog.php

配置

return [
    'catalog' => [
        'params'=> [
            ###############################
            ##      category部分設(shè)置     ##
            ###############################
            'category_breadcrumbs' => false, # 是否顯示分類的面包屑導(dǎo)航。
            /**
             * 注意:做側(cè)欄分類產(chǎn)品過濾的屬性,必須是select類型的,其他的類型請(qǐng)不要用,
             * 對(duì)于select類型,目前不支持多語(yǔ)言數(shù)據(jù)庫(kù)存儲(chǔ),select類型的各個(gè)值是通過前端翻譯文件來實(shí)現(xiàn)翻譯的、
             * 對(duì)于color  size 對(duì)應(yīng)的保存值,只可以使用 '數(shù)字','字符','空格','&','-','_' 這6類字符
             */
            'category_filter_attr' =>[
                'color','size',
            ], 

            
            'category_filter_category'  => true,
            'category_filter_price'     => true,

category_filter_attr 就是配置分類側(cè)欄的產(chǎn)品屬性過濾,目前設(shè)置了color和size ,這里設(shè)置后是一個(gè)公用的設(shè)置,也就是所有的分類就默認(rèn)為這兩個(gè)屬性的過濾。

category_filter_category代表側(cè)欄是否顯示分類的過濾

category_filter_price代表側(cè)欄是否顯示價(jià)格的過濾。

2、個(gè)性化設(shè)置

在上面設(shè)置的全局設(shè)置的基礎(chǔ)上,可以進(jìn)行個(gè)性化設(shè)置,后臺(tái)打開分類,如圖:

分類產(chǎn)品過濾屬性:是在全局設(shè)置的基礎(chǔ)上添加一些新的產(chǎn)品屬性,用于分類側(cè)欄屬性過濾

分類產(chǎn)品非過濾屬性:是在全局設(shè)置的基礎(chǔ)上刪除一些產(chǎn)品屬性,譬如下面的圖中, 添加的是size,雖然在全局設(shè)置中添加了size,但是該分類添加了size,因此該 分類側(cè)欄的屬性過濾不會(huì)有size。

通過上面,我們可以很方便的添加產(chǎn)品在分類側(cè)欄的屬性過濾。

搜索頁(yè)面產(chǎn)品屬性過濾的設(shè)置

1.首先設(shè)置搜索語(yǔ)言,@common/config/fecshop_local_services/Search.php

1.1

return [
    'search' => [
        'filterAttr' => [
            'color','size', # 在搜索頁(yè)面?zhèn)葯诘乃阉鬟^濾屬性字段
        ],
        'childService' => [
            'mongoSearch' => [
                'searchIndexConfig'  => [ #設(shè)置用于全文搜索的產(chǎn)品屬性以及權(quán)重,權(quán)重高的屬性,排名靠前。
                    'name' => 10,    # 產(chǎn)品name作為full search text的屬性,權(quán)重為10
                    'description' => 5,   # 產(chǎn)品description作為full search text的屬性,權(quán)重為5
                ],  
                # more: https://docs.mongodb.com/manual/reference/text-search-languages/#text-search-languages
                'searchLang'  => [
                    'en' => 'english',
                    'fr' => 'french',
                    'de' => 'german',
                    'es' => 'spanish',
                    'ru' => 'russian',
                    'pt' => 'portuguese',
                ],
            ],
            'xunSearch'  => [
                'fuzzy' => true,  # 是否開啟模糊查詢
                'synonyms' => true, #是否開啟同義詞翻譯
                'searchLang'    => ['zh'],
            ],
        ],
    ]
];

1.1 filterAttr是添加在搜索頁(yè)面?zhèn)葯谟糜谶^濾的產(chǎn)品屬性。

1.2 searchIndexConfig是設(shè)置用于全文搜索的產(chǎn)品屬性以及權(quán)重,權(quán)重高的屬性,排名靠前。

1.3 searchLang是設(shè)置搜索的語(yǔ)言,全文搜索是需要根據(jù)語(yǔ)言切詞的, 因此各個(gè)語(yǔ)言的搜索會(huì)略有差異,根據(jù)各個(gè)語(yǔ)言,生成對(duì)應(yīng)的產(chǎn)品語(yǔ)言搜索表。

2.生成搜索表

首先需要根據(jù)上面的配置文件,設(shè)置您的所有的語(yǔ)言。也就是上面的searchLang。

每一個(gè)語(yǔ)言對(duì)應(yīng)一個(gè)產(chǎn)品搜索表,這是因?yàn)閙ongodb的full text search,一個(gè)表只能有一個(gè) 語(yǔ)言選項(xiàng),因此需要生成多個(gè)產(chǎn)品搜索表,生成的腳本為:

@fecshop/shell/search/fullSearchSync.sh,您進(jìn)入@fecshop/shell/search下 執(zhí)行sh fullSearchSync.sh即可。

設(shè)置產(chǎn)品的自定義屬性

產(chǎn)品的自定義屬性如圖:

1.產(chǎn)品的自定義有方式,京東模式和淘寶模式

1.1京東模式:類似于京東的產(chǎn)品,選擇每一個(gè)選項(xiàng)后,頁(yè)面會(huì)跳轉(zhuǎn)到另外一個(gè)url頁(yè)面, 也就是說:每一個(gè)選項(xiàng)就是一個(gè)產(chǎn)品(在數(shù)據(jù)庫(kù)產(chǎn)品表中是一行數(shù)據(jù))。

1.2淘寶模式:類似于淘寶商城的產(chǎn)品,選擇一個(gè)選項(xiàng)后,產(chǎn)品頁(yè)面不會(huì)跳轉(zhuǎn)。

2.下面詳細(xì)說明:

2.1京東模式:這種模式,需要引入sku和spu的概念,關(guān)于這個(gè)概念在上面已經(jīng)說明。 譬如頁(yè)面(演示demo):http://fecshop.appfront.fancyecommerce.com/index.php/raglan-sleeves-letter-printed-crew-neck-sweatshirt-53386451-77774122

2.1.1配置:首先需要設(shè)置一個(gè)屬性組,上面的內(nèi)容已經(jīng)說明,在配置文件中添加, 需要注意的spu屬性不能超過兩個(gè)(spu屬性組合的復(fù)雜性)。

2.1.2新建產(chǎn)品,選擇對(duì)應(yīng)的屬性組,如圖

就可以查看到這個(gè)屬性組中的屬性,填寫值即可。

填寫sku和spu,需要注意的是,您新建的該款產(chǎn)品的spu必須相同,sku不同,一般用您的 spu+spu屬性的值組合成sku,如圖,我新建的spu對(duì)應(yīng)的幾個(gè)sku產(chǎn)品。

2.1.3 按照上面如圖的方式配置完成后,基本就完成了配置,在前臺(tái)就可以看到了。

2.2淘寶模式,演示demo:http://fecshop.appfront.fancyecommerce.com/index.php/reindeer-pattern-glitter-christmas-dress-86519596

2.2.1配置:需要在屬性組里面配置 custom_options用戶自定義屬性,這個(gè)在上面已經(jīng) 說明如何配置,您可以參考上面的說明中的文件中的例子進(jìn)行修改。

2.2.2后臺(tái)編輯

在屬性組中添加了 custom_options用戶自定義屬性,在新建產(chǎn)品的時(shí)候點(diǎn)擊添加,彈出產(chǎn)品編輯的彈框, 選擇相應(yīng)的屬性組,然后點(diǎn)擊 “自定義信息”,如圖:

勾選,填寫各個(gè)屬性的值,以及選擇圖片,最后點(diǎn)擊+號(hào)圖標(biāo),就可以添加一行, 添加完了,保存,就可以到產(chǎn)品詳細(xì)頁(yè)面看了,譬如產(chǎn)品 http://fecshop.appfront.fancyecommerce.com/index.php/reindeer-pattern-glitter-christmas-dress-86519596

如果某些組合,您沒有添加,就會(huì)看到某些選項(xiàng)是虛線標(biāo)示,如果沒有庫(kù)存,也會(huì)虛線標(biāo)示。 對(duì)于該產(chǎn)品,產(chǎn)品sku的庫(kù)存會(huì)無效,產(chǎn)品自定義部分的庫(kù)存才是相應(yīng)選項(xiàng)的庫(kù)存 ,當(dāng)該產(chǎn)品被下單后,也是在該選項(xiàng)對(duì)應(yīng)的qty部分減少產(chǎn)品的庫(kù)存,而不是sku的庫(kù)存(qty)

產(chǎn)品價(jià)格

成本價(jià)格:代表產(chǎn)品的成本,也就是采購(gòu)在fecshop中,只是記錄一下,沒有其他用處, 當(dāng)然,您可以通過腳本,生成您的出售價(jià)格。

銷售價(jià)格:也就是產(chǎn)品在頁(yè)面顯示的價(jià)格

銷售特價(jià):產(chǎn)品的特價(jià),當(dāng)設(shè)置了產(chǎn)品的特價(jià),而且特價(jià)時(shí)間沒有過期,則特價(jià)是有效的, 當(dāng)銷售特價(jià)有效時(shí),銷售價(jià)格就會(huì)失效。

特價(jià)開始時(shí)間:產(chǎn)品銷售特價(jià)開始的時(shí)間

特檢結(jié)束時(shí)間:產(chǎn)品銷售特價(jià)結(jié)束的時(shí)間

Tier Price: 批發(fā)價(jià)格

規(guī)定產(chǎn)品購(gòu)買幾個(gè)以上的價(jià)格。譬如購(gòu)物2個(gè)以上17美元,購(gòu)買4個(gè)以上16美元。

對(duì)于在產(chǎn)品分類頁(yè)面顯示的產(chǎn)品的幾個(gè)都是一個(gè)產(chǎn)品的價(jià)格。產(chǎn)品中有一個(gè)最終價(jià)格, 是通過腳本計(jì)算出來的,這個(gè)最終價(jià)格用于在分類頁(yè)面的價(jià)格排序以及價(jià)格過濾,該腳本一天跑一次。 文件為: @fecshop/shell/computeProductFinalPrice.sh, 可以在cron中配置該腳本一天跑一次。

產(chǎn)品導(dǎo)入和導(dǎo)出

目前后臺(tái)還沒有做這個(gè)功能。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)