Adapter/ShopwareAdapter/Helper/AttributeHelper.php
public function addFieldAsAttribute(AttributableInterface $object, $fieldName)
    {
        if (!method_exists($object, 'getAttributes')) {
            return;
        }

        $method = 'get' . ucfirst($fieldName);

        if (!method_exists($object, $method)) {
            return;
        }

        $fieldValue = $object->$method();

        if (null === $fieldValue) {
            return;
        }

        $attribute = new Attribute();
        $attribute->setKey($fieldName);
        $attribute->setValue($fieldValue);

        if ($object instanceof TranslateableInterface) {
            $translations = $object->getTranslations();
            $newTranslations = [];

            foreach ($translations as $translation) {
                if ($fieldName === $translation->getProperty()) {
                    $newTranslation = clone $translation;
                    $newTranslation->setProperty('value');

                    $newTranslations[] = $newTranslation;
                }
            }

            $attribute->setTranslations($newTranslations);
        }

        $this->validator->validate($attribute);

        $object->setAttributes(array_merge($object->getAttributes(), [$attribute]));
    }
public function addFieldAsAttribute(AttributableInterface $object, $fieldName)
    {
        if (!method_exists($object, 'getAttributes')) {
            return;
        }

        $method = 'get' . ucfirst($fieldName);

        if (!method_exists($object, $method)) {
            return;
        }

        $fieldValue = $object->$method();

        if (null === $fieldValue) {
            return;
        }

        $attribute = new Attribute();
        $attribute->setKey($fieldName);
        $attribute->setValue($fieldValue);

        if ($object instanceof TranslateableInterface) {
            $translations = $object->getTranslations();
            $newTranslations = [];

            foreach ($translations as $translation) {
                if ($fieldName === $translation->getProperty()) {
                    $newTranslation = clone $translation;
                    $newTranslation->setProperty('value');

                    $newTranslations[] = $newTranslation;
                }
            }

            $attribute->setTranslations($newTranslations);
        }

        $this->validator->validate($attribute);

        $object->setAttributes(array_merge($object->getAttributes(), [$attribute]));
    }
public function addFieldAsAttribute ( AttributableInterface $ object , $ fieldName ) { if ( ! method_exists ( $ object , 'getAttributes' ) ) { return ; } $ method = 'get' . ucfirst ( $ fieldName ) ; if ( ! method_exists ( $ object , $ method ) ) { return ; } $ fieldValue = $ object -> $ method ( ) ; if ( null === $ fieldValue ) { return ; } $ attribute = new Attribute ( ) ; $ attribute -> setKey ( $ fieldName ) ; $ attribute -> setValue ( $ fieldValue ) ; if ( $ object instanceof TranslateableInterface ) { $ translations = $ object -> getTranslations ( ) ; $ newTranslations = [ ] ; foreach ( $ translations as $ translation ) { if ( $ fieldName === $ translation -> getProperty ( ) ) { $ newTranslation = clone $ translation ; $ newTranslation -> setProperty ( 'value' ) ; $ newTranslations [ ] = $ newTranslation ; } } $ attribute -> setTranslations ( $ newTranslations ) ; } $ this -> validator -> validate ( $ attribute ) ; $ object -> setAttributes ( array_merge ( $ object -> getAttributes ( ) , [ $ attribute ] ) ) ; }
{@inheritdoc}
{