Adapter/ShopwareAdapter/RequestGenerator/Product/ProductRequestGenerator.php
private function getPropertyData(Product $product)
    {
        /**
         * @var EntityRepository $groupRepository
         */
        $groupRepository = $this->entityManager->getRepository(GroupModel::class);

        /**
         * @var GroupModel $propertyGroup
         */
        $propertyGroup = $groupRepository->findOneBy(['name' => 'PlentyConnector']);

        if (null === $propertyGroup) {
            $propertyGroup = new GroupModel();
            $propertyGroup->setName('PlentyConnector');
            $propertyGroup->setPosition(1);
            $propertyGroup->setComparable(true);
            $propertyGroup->setSortMode(1);

            $this->entityManager->persist($propertyGroup);
            $this->entityManager->flush();
            $this->entityManager->clear();
        }

        $result = [];
        $result['filterGroupId'] = $propertyGroup->getId();
        $result['propertyValues'] = [];

        foreach ($product->getProperties() as $property) {
            foreach ($property->getValues() as $value) {
                $result['propertyValues'][] = [
                    'option' => [
                        'name' => $property->getName(),
                    ],
                    'value' => $value->getValue(),
                ];
            }
        }

        return $result;
    }
private function getPropertyData(Product $product)
    {
        /**
         * @var EntityRepository $groupRepository
         */
        $groupRepository = $this->entityManager->getRepository(GroupModel::class);

        /**
         * @var GroupModel $propertyGroup
         */
        $propertyGroup = $groupRepository->findOneBy(['name' => 'PlentyConnector']);

        if (null === $propertyGroup) {
            $propertyGroup = new GroupModel();
            $propertyGroup->setName('PlentyConnector');
            $propertyGroup->setPosition(1);
            $propertyGroup->setComparable(true);
            $propertyGroup->setSortMode(1);

            $this->entityManager->persist($propertyGroup);
            $this->entityManager->flush();
            $this->entityManager->clear();
        }

        $result = [];
        $result['filterGroupId'] = $propertyGroup->getId();
        $result['propertyValues'] = [];

        foreach ($product->getProperties() as $property) {
            foreach ($property->getValues() as $value) {
                $result['propertyValues'][] = [
                    'option' => [
                        'name' => $property->getName(),
                    ],
                    'value' => $value->getValue(),
                ];
            }
        }

        return $result;
    }
@param Product $product

@return array