nitra/e-commerce-site-productbundle

此包已被 弃用 且不再维护。未建议替代包。

产品组合

维护者

详细信息

bitbucket.org/nitra/nep-site-product

安装: 728

依赖者: 0

建议者: 0

安全: 0

类型:symfony-bundle

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
        # ...