19 use Magento\Customer\Api\Data\GroupExtensionInterface;
66 private $taxClassRepository;
76 private $collectionProcessor;
96 \
Magento\Tax\Api\TaxClassRepositoryInterface $taxClassRepositoryInterface,
106 $this->taxClassRepository = $taxClassRepositoryInterface;
108 $this->collectionProcessor = $collectionProcessor ?: $this->getCollectionProcessor();
120 if (
$group->getId() || (string)
$group->getId() ===
'0') {
122 $groupModel = $this->groupRegistry->retrieve(
$group->getId());
123 $groupDataAttributes = $this->dataObjectProcessor->buildOutputDataArray(
131 $groupModel = $this->groupFactory->create();
132 $groupModel->setCode(
$group->getCode());
136 $groupModel->setTaxClassId($taxClassId);
140 $this->groupResourceModel->save($groupModel);
141 }
catch (\
Magento\Framework\Exception\LocalizedException $e) {
146 if ($e->getMessage() == (string)
__(
'Customer Group already exists.')) {
147 throw new InvalidTransitionException(
__(
'Customer Group already exists.'));
152 $this->groupRegistry->remove($groupModel->getId());
155 ->setId($groupModel->getId())
156 ->setCode($groupModel->getCode())
157 ->setTaxClassId($groupModel->getTaxClassId())
158 ->setTaxClassName($groupModel->getTaxClassName());
160 if (
$group->getExtensionAttributes()) {
172 $groupModel = $this->groupRegistry->retrieve(
$id);
174 ->setId($groupModel->getId())
175 ->setCode($groupModel->getCode())
176 ->setTaxClassId($groupModel->getTaxClassId())
177 ->setTaxClassName($groupModel->getTaxClassName());
186 $searchResults = $this->searchResultsFactory->create();
190 $collection = $this->groupFactory->create()->getCollection();
191 $groupInterfaceName = \Magento\Customer\Api\Data\GroupInterface::class;
192 $this->extensionAttributesJoinProcessor->process(
$collection, $groupInterfaceName);
204 ->setCode(
$group->getCode())
205 ->setTaxClassId(
$group->getTaxClassId())
206 ->setTaxClassName(
$group->getTaxClassName());
208 $data = $this->extensionAttributesJoinProcessor->extractExtensionAttributes($groupInterfaceName,
$data);
216 $searchResults->setTotalCount(
$collection->getSize());
217 return $searchResults->setItems($groups);
233 foreach ($filterGroup->
getFilters() as $filter) {
234 $condition = $filter->getConditionType() ? $filter->getConditionType() :
'eq';
236 $conditions[] = [$condition => $filter->getValue()];
254 return 'customer_group_code';
256 return 'customer_group_id';
288 $groupModel = $this->groupRegistry->retrieve(
$id);
290 if ($id <= 0 || $groupModel->usesAsDefault()) {
291 throw new \Magento\Framework\Exception\StateException(
__(
'Cannot delete group.'));
294 $groupModel->delete();
295 $this->groupRegistry->remove(
$id);
309 private function _validate(
$group)
313 $exception->addError(
__(
'"%fieldName" is required. Enter and try again.', [
'fieldName' =>
'code']));
316 if ($exception->wasErrorAdded()) {
333 $taxClassData = $this->taxClassRepository->get($taxClassId);
348 private function getCollectionProcessor()
350 if (!$this->collectionProcessor) {
352 'Magento\Customer\Model\Api\SearchCriteria\GroupCollectionProcessor' 355 return $this->collectionProcessor;
_verifyTaxClassModel($taxClassId, $group)
getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
addFilterGroupToCollection(FilterGroup $filterGroup, Collection $collection)
const EXTENSION_ATTRIBUTES_KEY
const DEFAULT_TAX_CLASS_ID
__construct(\Magento\Customer\Model\GroupRegistry $groupRegistry, \Magento\Customer\Model\GroupFactory $groupFactory, \Magento\Customer\Api\Data\GroupInterfaceFactory $groupDataFactory, \Magento\Customer\Model\ResourceModel\Group $groupResourceModel, \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor, \Magento\Customer\Api\Data\GroupSearchResultsInterfaceFactory $searchResultsFactory, \Magento\Tax\Api\TaxClassRepositoryInterface $taxClassRepositoryInterface, \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $extensionAttributesJoinProcessor, CollectionProcessorInterface $collectionProcessor=null)
static is($value, $classBaseName, array $args=array(), $namespaces=array())
save(\Magento\Customer\Api\Data\GroupInterface $group)
$extensionAttributesJoinProcessor