nitra/e-commerce-site-producttiresbundle

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

产品轮胎包

安装: 305

依赖: 0

建议者: 0

安全: 0

类型:symfony-bundle

dev-master 2015-11-06 13:48 UTC

This package is auto-updated.

Last update: 2018-04-08 15:38:24 UTC


README

描述

本包旨在处理(输出、处理)商品(Product)信息,包括商品(Product)的详细信息、商品(Product)的分类(Category)、商品(Product)的徽章(Badge)、商品(Product)的品牌(Brand)、商品(Product)的颜色(Color)、商品(Product)的参数(Parameter)以及翻译列表(Translate)。

  • 商品(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
        # ...