我需要根據分類法創建新的促銷規則:例如,對於具有特定分類羣的所有產品(不是全部訂單),可享受10%的折扣。Sylius:創建基於分類學的促銷
我閱讀文檔,閱讀sylius附帶的兩個規則(項目數量和訂單總數)的代碼。我開始創建一個新的規則檢查器(目前它只返回true),所以現在我有第三個提升規則可用(「分類法」)。然後我創建了它的配置表單類型。在這裏,我需要創建一個選擇列出所有配置的分類單元,以便能夠選擇哪個分類單元觸發推廣。在這裏我被困住了。我試圖TaxonomyConfigurationType.php(我注入實體管理器):
class TaxonomyConfigurationType extends AbstractType
{
protected $em;
public function __construct($em)
{
$this->em = $em;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('theme', 'choice',
array(
'mapped' => false,
'multiple' => false,
'empty_value' => 'Choose a taxon',
'choices' => $this->buildThemeChoices()
)
);
}
public function getName()
{
return 'ecad_promotion_rule_taxonomy_configuration';
}
protected function buildThemeChoices() {
$choices = array();
/// how can I access the taxonomy repo ?
$r = $this->em->getRepository('BoutiqueBundle:Theme');
$entities = $r->findAll();
foreach ($entities as $e) {
$choices[$e->getId()] = $e->getName();
}
return $choices;
}
}
我重寫類羣類(BoutiqueBundle:主題)爲了翻譯我的分類羣,所以我得到這個錯誤:
Class "Ecad\BoutiqueBundle\Entity\Theme" sub class of "Sylius\Bundle\TaxonomiesBundle\Model\Taxon" is not a valid entity or mapped super class.
任何導致實現這一目標?最後,我需要在$配置中存儲分類標識,以便能夠檢查產品是否符合條件。
另一件事:是否有可能只指定一個產品作爲促銷主題?
感謝
很樂意看到的其餘近如果可能,你的'自定義規則'的實現? – beterthanlife