[GELÖST] REST Api Import Exception bei Attr17

Hi! Ich bekomme beim Import über die REST API eine seltsame Exception wenn das Attr17 Content enthält. Wenn ich das Attr17 nicht importiere, funktioniert der Import. Dabei ist es egal was ich in Attr17 hineinschreibe. (create/update selbiges Verhalten) Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. DateTime::\_\_construct(): Failed to parse time string (test) at position 0 (t): The timezone could not be found in the database in Doctrine/DBAL/Types/DateType.php on line 45 Stack trace: #0 Doctrine/DBAL/Types/DateType.php(45): DateTime-\>\_\_construct('test') #1 Doctrine/DBAL/Connection.php(1151): Doctrine\DBAL\Types\DateType-\>convertToDatabaseValue('test', Object(Doctrine\DBAL\Platforms\MySqlPlatform)) #2 Doctrine/DBAL/Connection.php(1117): Doctrine\DBAL\Connection-\>getBindingInfo('test', 'date') #3 Doctrine/DBAL/Connection.php(751): Doctrine\DBAL\Connection-\>\_bindTypedValues(Object(PDOStatement), Array, Array) #4 Doctrine/ORM/Persisters/BasicEntityPersister.php(395): Doctrine\DBAL\Connection-\>executeUpdate('UPDATE s\_articl...', Array, Array) #5 Doctrine/ORM/Persisters/BasicEntityPersister.php(319): Doctrine\ORM\Persisters\BasicEntityPersister-\>\_updateTable(Object(Shopware\Models\Attribute\Article), 's\_articles\_attr...', Array, NULL) #6 Doctrine/ORM/UnitOfWork.php(934): Doctrine\ORM\Persisters\BasicEntityPersister-\>update(Object(Shopware\Models\Attribute\Article)) #7 Doctrine/ORM/UnitOfWork.php(310): Doctrine\ORM\UnitOfWork-\>executeUpdates(Object(Doctrine\ORM\Mapping\ClassMetadata)) #8 Doctrine/ORM/EntityManager.php(355): Doctrine\ORM\UnitOfWork-\>commit(NULL) #9 Shopware/Components/Api/Resource/Resource.php(196): Doctrine\ORM\EntityManager-\>flush(NULL) #10 Shopware/Components/Api/Resource/Article.php(245): Shopware\Components\Api\Resource\Resource-\>flush() #11 Shopware/Plugins/Local/Backend/UeImport/Import.php(202): Shopware\Components\Api\Resource\Article-\>update('2024', Array) #12 Enlight/Controller/Action.php(135): Shopware\_Controllers\_Backend\_Import-\>importProductsAction() #13 Enlight/Controller/Dispatcher/Default.php(521): Enlight\_Controller\_Action-\>dispatch('importProductsA...') #14 Enlight/Controller/Front.php(214): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #15 Shopware/Bootstrap.php(79): Enlight\_Controller\_Front-\>dispatch() #16 Enlight/Application.php(192): Shopware\_Bootstrap-\>run() #17 shopware.php(74): Enlight\_Application-\>run() #18 {main} Kann das wer bestätigen?

Hi Markus, attr17 ist aus Kompatibilitätsgründen ein MySQL-Date Field. Die Werte in attr17 müssen daher von PHP’s DateTime-Object parsbar sein. Viele Grüße, Benjamin Cremer :shopware:

Ok vielen Dank! Gibt es in nächster Zeit eine erweiterte API-Doku wo diese Dinge dokumentiert werden? Grüße, Markus

Hi Markus, eine auführliche Dokumentation der API ist in Arbeit. Viele Grüße, Benjamin Cremer :shopware:

1 „Gefällt mir“

[quote=„Benjamin Cremer“]Hi Markus, attr17 ist aus Kompatibilitätsgründen ein MySQL-Date Field. Die Werte in attr17 müssen daher von PHP’s DateTime-Object parsbar sein. Viele Grüße, Benjamin Cremer :shopware:[/quote] Hallo, hier wird doch von den Artikel-Attributen 1-20 gesprochen oder vershe ich das falsch? Es hieß doch bis :shopware: 3.5.6 immer, das nur Attr1-3 belegt sind - d.h. wenn ich Attr. 17 anders belegt habe und auf 4.0.x update, gibt es Probleme? Und hätte ich Attr. 17 in 3.5.6 schon garnicht ändern dürfen? Grüße rattaui

Belegt sind im Standard nur 1-3. Aber die Felder in der Datenbank sind ja bereits vorhanden. Hier hat attr17 den Type Date.

Moin! Habe auch ein Problem mit dem attr17. Wollte das eigentlich benutzen und habe es umgestellt auf decimal(10,2) und unter den Freitext-Feldern im backend entsprechend eingerichtet. Aber wenn ich im backend was rein schreibe und speichere bei einem Artikel, so steht in der DB immer „NULL“. Steht das attr17 nicht zur Verfügung? Konnte darauf keinen Hinweis finden, dass man das nicht nutzen kann/soll/darf … LG, AS