nitra / e-commerce-site-productbundle
此包已被 弃用 且不再维护。未建议替代包。
产品组合
v2.0.0
2015-02-12 15:16 UTC
This package is auto-updated.
Last update: 2018-04-08 16:31:00 UTC
README
描述
该捆绑包旨在处理(输出、处理)以下内容:
- 商品(Product)- 商品(-们)的所有信息
- 分类(Category)- 商品分类(也有输出菜单(树状)分类的能力)
- 徽章(Badge)- 商品状态(促销、新品等)的类似物
- 品牌(Brand)- 商品的品牌(制造商)
- 颜色(Color)- 商品颜色
- 参数(Parameter)- 商品的特性
- 翻译列表(Translate)- 必须用于搜索(转写 - asus(ru) 在 asus (en))
连接
要将此模块连接到项目,需要
- composer.json
{
...
"require": {
...
"nitra/e-commerce-site-productbundle": "dev-master",
...
}
...
}
- app/AppKernel.php
<?php
//...
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
class AppKernel extends Kernel
{
//...
public function registerBundles()
{
//...
$bundles = array(
//...
new Nitra\ProductBundle\NitraProductBundle(),
//...
);
//...
return $bundles;
}
//...
}
- app/config/routing.yml
#...
nitra_product:
prefix: /
resource: "@NitraProductBundle/Controller/"
type: annotation
#...
默认配置
# app/config/config.yml
# ...
nitra_product:
# конфигурация фильтра
filter: ...
# конфигурация поиска, используя ElasticSearch
elasticsearch: ...
# ...
过滤器
默认配置
# app/config/config.yml
# ...
nitra_product:
filter:
template: default
selected_box: false
mode: product
# ...
过滤器参数说明
- template - 输出的模板,可以是 default 和 ajax - 也可以创建自己的模板,在重定义捆绑包的 Filters 文件夹中
- selected_box - 是否传递包含选中参数的数组到 twig
- mode - 分组类型: 'none' - 无分组,'model' - 按模型分组,'model_with_price' - 按模型和价格分组
搜索
要通过 ElasticSearch 进行搜索,需要模块: "elasticsearch/elasticsearch"
默认配置
# app/config/config.yml
# ...
nitra_product:
# ...
search:
# Конфигурация ElasticSearch
elasticsearch:
# Порт
port: '9200'
# Хост
host: 'localhost'
# Индекс
index: ''
# Группы (коллекции) в которых искать
groups:
# Группа товаров
products:
# Название роута для генерации ссылок
route: 'product_page'
# Параметры ссылки
routeParameters:
# параметр роута: геттер документа (alias -> getAlias(), name -> getName())
slug: 'alias'
# количество на странице с результатами
# может быть как строковое (из настроек магазина) так и числовое
limit: 'page'
# Шаблон страницы с результатами
template: "NitraProductBundle:Search/Product:page.html.twig"
# Репозиторий документа
repository: 'NitraProductBundle:Product'
# Геттер из репозитория, для дополнительных фильтров поиска
qbGetter: 'getDefaultQb'
# Сортировка
order:
# Ключ
name:
# Поле: порядок
model: 1
name: 1
price:
'storePrice.{storeId}.price': 1
# Настройки отображения на странице результатов по группам
group:
# Кол-во
limit: 3
# шаблон
template: ''
# Настройки ElasticSearch
es:
# Тип (коллекция в ES)
type: 'products'
# Поля, по которым вести поиск
fields:
- fullNameForSearch
# Настройки ODM
odm:
# Поля, по которым вести поиск
fields:
- fullNameForSearch
# ...
热门商品
热门商品 - 热门商品轮播
设置
# app/config/parameters.yml
popular_products_mode: by_viewed | by_is_popular
- popular_products_mode - 获取热门商品的方式
- by_viewed - 按浏览量(默认)
- by_is_popular - 按管理员界面中的复选框
热门型号
类似于热门商品轮播,但“热门类型”基于浏览量或模型参数
设置
# app/config/parameters.yml
popular_models_mode: by_viewed | by_is_popular
- popular_products_mode - 获取热门型号的方式
- by_viewed - 按浏览量(默认)
- by_is_popular - 按管理员界面中的复选框
解决重定义文档的翻译问题(gedmo,stof)
#app/config/config.yml
stof_doctrine_extensions:
# ...
mongodb:
default:
# ...
translatable: true
# ...
class:
# ...
translatable: Nitra\ProductBundle\Listener\TranslatableListener
# ...