Artikel Duplizieren

Liebes Forum :slight_smile: :slight_smile:

ich will einen Artikel duplizieren es kommt aber nur die folgende Fehlermeldung:

ERROR
Message:	exception 'PDOException' with message 'SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1' in /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Zend/Db/Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array)
#2 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
#3 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO s_a...', Array)
#4 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Enlight/Components/Db/Adapter/Pdo/Mysql.php(75): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO s_a...', Array)
#5 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Controllers/Backend/Article.php(641): Enlight_Components_Db_Adapter_Pdo_Mysql->query('INSERT INTO s_a...', Array)
#6 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Controllers/Backend/Article.php(597): Shopware_Controllers_Backend_Article->duplicateArticleData('125')
#7 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Enlight/Controller/Action.php(158): Shopware_Controllers_Backend_Article->duplicateArticleAction()
#8 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('duplicateArticl...')
#9 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Enlight/Controller/Front.php(226): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#10 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Kernel.php(153): Enlight_Controller_Front->dispatch()
#11 /var/www/vhosts/testshop.de.de/httpdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(492): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#12 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#13 /var/www/vhosts/testshop.de.de/httpdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(263): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#14 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#15 /var/www/vhosts/testshop.de.de/httpdocs/shopware.php(101): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#16 {main}

Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1' in /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Zend/Db/Statement/Pdo.php:234
Stack trace:
#0 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Zend/Db/Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array)
#1 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
#2 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO s_a...', Array)
#3 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Enlight/Components/Db/Adapter/Pdo/Mysql.php(75): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO s_a...', Array)
#4 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Controllers/Backend/Article.php(641): Enlight_Components_Db_Adapter_Pdo_Mysql->query('INSERT INTO s_a...', Array)
#5 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Controllers/Backend/Article.php(597): Shopware_Controllers_Backend_Article->duplicateArticleData('125')
#6 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Enlight/Controller/Action.php(158): Shopware_Controllers_Backend_Article->duplicateArticleAction()
#7 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('duplicateArticl...')
#8 /var/www/vhosts/testshop.de.de/httpdocs/engine/Library/Enlight/Controller/Front.php(226): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#9 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Kernel.php(153): Enlight_Controller_Front->dispatch()
#10 /var/www/vhosts/testshop.de.de/httpdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(492): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#11 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#12 /var/www/vhosts/testshop.de.de/httpdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(263): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#13 /var/www/vhosts/testshop.de.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#14 /var/www/vhosts/testshop.de.de/httpdocs/shopware.php(101): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#15 {main}
Time:	2016-02-14T13:41:20.261427+0100
Channel:	core
request:	{
    "uri": "/backend/article/duplicateArticle",
    "method": "POST",
    "query": {
        "module": "backend",
        "controller": "article",
        "action": "duplicateArticle"
    },
    "post": {
        "articleId": "125"
    }
}
session:	{
    "userId": "50",
    "roleId": "1"
}
shop:	No shop data available

Was kann das sein ??

Liebe Grüße

Kerstin

Sind eventuell irgendwelche Plugins installiert, die den Artikelstamm erweitern? Also neue Felder für Artikel erstellen?

Hallo,

in der Regel hat dann ein Plugin unerlaubterweise in der s_article oder der s_articles_details eine Spalte hinzugefügt. Plugins sollen explizit die s_article_attributes nutzen. Also die Shopware-Stammtabellen dürfen nicht erweitert werden. Der Fehler klingt aber erstmal danach.

Moritz

Also die Übeltäterin bin dann wohl ich :frowning: , ich habe nämlich die beiden Tabellen um jeweils eine Spalte erweitert. Gibt es eine Möglichkeit, eigene Spalten einzufügen ohne dass Funktionen in Shopware verlorengehen?

Woran habt ihr das eigentlich gesehen? Ich kann das an dem Fehlercode nicht erkennen.

Liebe Grüße

 

Kerstin

1 „Gefällt mir“

Wie Moritz schon geschrieben hat: eigene Felder am besten über die *_attribues Tabellen. Und am meisten Sinn macht es, wenn man neue Felder über Plugins macht.

Hallo Kerstin,

also bei mir ist es „Erfahrung“, sehe die Meldung nicht zum ersten Mal. Aber die SQL-Meldung sagt ja, dass das INSERT-Statement zu wenig Spalten übergibt und die Tabelle mehr hat („Insert value list does not match column list“). Wie gesagt, du musst die _attributes-Tabellen erweitern, dann klappt auch das duplizieren weiterhin. Generell sollten Plugins niemals die Stammtabellen von Shopware anpacken, dafür gibt es die Attribute-Tabellen.

Moritz

Also erstmal ganz vielen Dank, jetzt klappt es. :slight_smile:

Für die Tabelle s_articles_details habe ich eine attributtabelle gefunden (s_articles_attributes) aber für s_articles nicht. Was macht man in diesem Fall?

Darf man bei den attribut-Tabellen Spalten hinzufügen?

Liebe Grüße

Kerstin

 

 

Das muss nicht unbedingt so fein differenziert werden. Warum bräuchtest Du zwei verschiedene *_attribues Tabellen für Artikel? Anders gesagt: die zusätzlichen Felder für einen Artikel sollten in der Tabelle s_articles_attribues erstellt werden

Nun ich habe Konfiguratorartikel. Und wenn ich dann ein attributfeld nehme, müssten die Eigenschaften, für einen Artikel in jede Variante geschrieben werden. das fänd ich nicht so chick. Gibt es da keine bessere Möglichkeit?

Liebe Grüße

kerstin

@Kerstin83 schrieb:

Nun ich habe Konfiguratorartikel. Und wenn ich dann ein attributfeld nehme, müssten die Eigenschaften, für einen Artikel in jede Variante geschrieben werden. das fänd ich nicht so chick. Gibt es da keine bessere Möglichkeit?

Liebe Grüße

kerstin

Das dürfte kein Problem sein, da es in der Tabelle s_articles_attributes einen Verweis auf s_articles_details gibt (das Feld articledetailsID