umanit/sylius-product-variant-attribute-plugin

为Sylius添加产品变体属性的插件。


README

UmanIT

Sylius 产品变体属性插件

为您的产品变体添加属性。

安装

使用composer安装插件

$ composer require umanit/sylius-product-variant-attribute-plugin

config/bundles.php 中注册插件

<?php

return [
    // ...
    Umanit\SyliusProductVariantAttributePlugin\UmanitSyliusProductVariantAttributePlugin::class => ['all' => true],
];

导入配置文件,例如在 config/packages/umanit_sylius_product_variant_attribute_plugin.yaml

imports:
    - { resource: '@UmanitSyliusProductVariantAttributePlugin/Resources/config/config.yaml' }

导入路由文件,例如在 config/routes/sylius_admin.yaml

umanit_sylius_product_variant_attribute_plugin:
    resource: '@UmanitSyliusProductVariantAttributePlugin/Resources/config/admin_routing.yaml'
    prefix: /admin

通过实现 ProductVariantInterface 并使用 ProductVariantTrait 更新您的 ProductVariant 实体

<?php

declare(strict_types=1);

namespace App\Entity\Product;

use Doctrine\ORM\Mapping as ORM;
use Sylius\Component\Core\Model\ProductVariant as BaseProductVariant;
use Sylius\Component\Product\Model\ProductVariantTranslationInterface;
use Umanit\SyliusProductVariantAttributePlugin\Entity\ProductVariantInterface;
use Umanit\SyliusProductVariantAttributePlugin\Entity\ProductVariantTrait;

/**
 * @ORM\Entity
 * @ORM\Table(name="sylius_product_variant")
 */
class ProductVariant extends BaseProductVariant implements ProductVariantInterface
{
    use ProductVariantTrait {
        __construct as attributesConstruct;
    }

    public function __construct()
    {
        parent::__construct();

        $this->attributesConstruct();
    }

    protected function createTranslation(): ProductVariantTranslationInterface
    {
        return new ProductVariantTranslation();
    }
}

最后,别忘了更新您的数据库!

php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate

用法

类似于产品编辑,现在变体有一个 属性 选项卡,您可以在此处添加属性。操作和可能性与现有属性相同。

变体属性列表与用于产品的现有列表不同。为管理这个新列表,在 目录 菜单中添加了一个新条目。

默认情况下,现有的 属性 条目被重命名为 产品属性。您可以通过定义以下配置来更改此行为:

umanit_sylius_product_variant_attribute_plugin:
    rename_product_attribute_menu_entry: false