/** * Get action options * * @return array */ public function jsonSerialize() { if ($this->options === null) { $options = $this->collectionFactory->create()->setEntityTypeFilter($this->product->getEntityType()->getEntityTypeId())->toOptionArray(); $this->prepareData(); foreach ($options as $optionCode) { $this->options[$optionCode['value']] = ['type' => 'customer_group_' . $optionCode['value'], 'label' => $optionCode['label']]; if ($this->urlPath && $this->paramName) { $this->options[$optionCode['value']]['url'] = $this->urlBuilder->getUrl($this->urlPath, [$this->paramName => $optionCode['value']]); } $this->options[$optionCode['value']] = array_merge_recursive($this->options[$optionCode['value']], $this->additionalData); } $this->options = array_values($this->options); } return $this->options; }