Quantcast
Channel: Programmierung - Shopware Community Forum
Viewing all 2871 articles
Browse latest View live

Backend/ExtJS Erweiterung der Kategorieansicht um ein Dropdown

$
0
0

Hallo zusammen,

ich habe ein paar Probleme bei der Erstellung eines Backend Plugins welches die Kategorie um ein Dropdown erweitern soll.

Grundsätzlich erweitere ich die Kategorien

//{block name="backend/category/view/tabs/settings" append}

Dort füge ich ein neues Fieldset ein.

Im Fieldset befindet sich ein dropdown welches anhand eines Models entsprechend Daten zur Auswahl anbieten soll.
Momentan ist es nun leider so das ich ein "Cannot read property 'load' of undefined" erhalte.

//{block name="backend/category/view/tabs/settings" append}
Ext.define('Shopware.apps.HaendlerbundFoobarCategories.view.category.tabs.settings', {
    override:'Shopware.apps.Category.view.category.tabs.Settings',

    getItems: function() {
        var me = this;
        var items = me.callParent(arguments);
        me.FooBar = me.getFooBarSection();
        items.push(me.FooBar);
        return items;
    },

    getFooBarSection : function()
    {
        var me = this;
        return Ext.create('Ext.form.FieldSet',{
            title: 'FooBar Verlinkung',
            anchor: '100%',
            defaults : me.defaults,
            disabled : false,
            items : me.getDropdowns()
        });
    },

    getDropdowns:function(){
        var me = this;

        return me.templateComboBox = Ext.create('Ext.form.field.ComboBox', {
            xtype:'combobox',
            fieldLabel: 'FooBar Product',
            store: me.fooBarProducts.load(),
            labelWidth: 155,
            valueField: 'id',
            displayField:'title',
            editable: true,
            allowBlank:true,
            name:'fbproduct'
        });
    }
});
//{/block}

Der angegebene store liegt unter Views/backend/haendlerbund_foobar_categories/store/foo_bar_products

Der Inhalt des Stores sieht dann unter anderem wie folgt aus:

//{block name="backend/haendlerbund_foobar_categories/store/fooBarProducts"}
Ext.define('Shopware.apps.haendlerbund_foobar_categories.store.fooBarProducts', {

//...
model: 'Shopware.apps.haendlerbund_foobar_categories.model.fooBarProducts',
proxy : {
        type : 'ajax',
         /**
         * Configure the url mapping for the different
         * store operations based on
         * @object
         */
        api : {
            read : '{url controller=HaendlerbundFoobarCategories action=getProducts}'
        },
        /**
         * Configure the data reader
         * @object
         */
        reader : {
            type : 'json',
            root: 'data'
        }
    }
});
//{/block}


Meine Frage nun:

Wo ist mein genereller Fehler? Namespacing? Naming der Pfade? Wo kann ich noch schauen?

Am Ende soll das ganze dann natürlich entsprechend die Auswahl speichern.


Rückruf-Formular (aus Top-Navigation mit Formular-Layer, der sich nur ausklappt) umsetzen, aber wie?

$
0
0

Hallo Shopware-Community,

 

ich will für einen Kunden ein Rückruf-Formular umsetzen, das auf jeder Seite aufgeklappt werden kann. Der Besucher soll dann nur seinen Namen und seine Telefonnummer eintragen und das Formular abschicken. Ich habe auch schon ein Formular im Shopware-Backend dafür angelegt - jetzt die Frage, wie bekomme ich das Formular mit seiner Funktionalität direkt in mein Template eingebunden - eben an der Stelle der Top-Navigation an der sich auch der dafür vorbereitete Ausklapp-Layer für das Rückruf-Formular befindet.

 

Viele Grüße und vielen Dank im voraus,

Oliver

[gelöst]Wie mit Jquery load() Methode den Preis neu laden?

$
0
0

Hallo allerseits,

ich möchte gerne mit der load Funktion den Preis laden bin mir aber nicht sicher worauf die URL verweisen muss.

Würde mich über jede Hilfe freuen, Danke.

Gruß

Max

Attribute System CrudService

$
0
0

Hi,

wenn ich ein Artikel Attribute anlegen möchte und folgenden code in der Install Methode verwende, dann funktioniert das ganze nicht richitg.

$attributeCrudService = $this->get("shopware_attribute.crud_service");

$attributeCrudService->update("s_articles_attributes", "test_attr", "string", [

"label" => "Test",

"translatable" => true,

"displayInBackend" => true,

"position" => 0,

"custom" => true

], null, true, null);

 

Er legt einfach keine attribute in "s_article_configurator_templates_attributes" und "s_articles_translations" an. Dabei habe ich $updateDependingTables auf true gesetzt.

Bei Schopseiten anpassen verschwindet der jeweilige Link im Frondend

$
0
0

Hallo leute,

 

bin dabei auf Shopware umzusteigen. Hänge gerade in den "Ersten schritten"

 

Möchte die "schopseiten" wie Impressum AGB etc. anpassen.

 

Alle teste, die ich einfüge, werden zwar im backend auch gespeichert, im Frondend ist der Link/button komplett weg. Ich ändere ja quasi nur die Texte mehr nicht... kann mir wer evt. schreiben, was ich falsch mache?

Warenkorb auf externer Seite einbinden

$
0
0

Hallo,

hat jemand eine Idee wie man den Warenkorb auf eine externe Seite einbinden kann (evtl. inkl. Fenster das sich beim draufklicken öffnet)?
Ich suche keine fertige Lösung sondern nur Lösungsansätze da ich mich mit Shopware bishe rnicht auskenne.

Beste Grüße
- jhwsk

Manipulation der Funktion checkIfArticleIsInBasket

$
0
0

Hallo zusammen,

ich bräuchte wieder mal Hilfe von den Shopware Experten.

 

Ich möchte die Funktion manipulieren, die beim Hinzufügen eines Artikels in den Warenkorb, der schon dort liegt, keinen eigenen Eintrag macht, sondern den bestehenden Artikel "aufstockt".

Das ist checkIfArticleIsInBasket in sBasket. Dort wird ein Query Builder aufgesetzt, den ich über den gesetzten Controller Shopware_Modules_Basket_AddArticle_CheckBasketForArticle manipulieren kann.

Ich möchte nun eine weitere Bedingung zu diesem Query Builder hinzufügen: Nur wenn das attribute1 des s_order_basket Eintrags (in s_order_basket_attributes) einen gewissen Wert hat, soll der Basket Eintrag zurückgegeben werden, ansonsten eben nicht. Ich habe jetzt schon einiges versucht (u.A. das from zu erweitern oder mit leftJoin) aber habe es nicht geschafft, die s_order_basket und s_order_basket_attributes vernünftig zu verknüpfen, indem ich den Query Builder nur erweitere.

Hat hier jemand einen Tipp für mich? Der Query Builder macht mir im allgemeinen noch Schwierigkeiten.

 

Beste Grüße und ein schönes Wochenende!

Übergabe von im Frontend per Javascript berechneten Kennwerte an ein Plugin

$
0
0

Hallo Shopware Gemeinde,

ich möchte gerne in Erfahrung bringen, wie ich am besten die von mir per Javascript berechneten Werte zur weiteren Verarbeitung in zu einem Plugin übergebe?
Ich habe mich durch einen großen Teil der relevanten Tutorials gekämpft aber bin nicht wirklich schlauer geworden.

Beste Grüße

Max


API Artikel Liste Kategorien und Bilder

$
0
0

Liebe Shopware Community,

Ich bin gerade dabei, über die Shopware API ein kleines Shop-Interface in eine Applikation zu integrieren.

Lieder bin ich dabei sehr schnell an Grenzen gestoßen. Ich würde gerne, wie man es von fast allen Webshops kennt, eine Artikelauflistung (Text, Preis, Bilder) mit einem Kategorie-Filter umsetzen. Da diese Funktionalität zur Basis eines jeden Webshops gehört, wundert es mich umso mehr, dass man über die LIST Methode der Artikel-Resource keine Fremdschlüssel oder Links für Kategorien oder Bilder bekommt. 

Die einzige Lösung die mir im Moment einfällt, ist über list alle Artikel auszulesen und dann für jeden Artikel über ein GET-Request die Detaildaten zu holen. Diese Variante ist natürlich super unperformant und fühlt sich sehr falsch an. 

Ich kann mir nicht vorstellen, dass ich der Erste mit diesem Problem bin/war. Gibt es hierfür eine vernünftige Lösung ? 

Vielen Dank für eure Hilfe und Liebe Grüße

 

Ausgeben von Freitextfeldern für Shopseiten

$
0
0

Hallo,

wir haben zusätzliche Freitextfelder für die Shopseiten / CMS-Seiten eingerichtet.

Diese werden allerdings standardmäßig nicht in Smarty als Variable mit übergeben. Shopware selbst schreibt ja dazu, dass man ggf. Freitextfelder über ein Plugin ausgeben muss.

Hat jemand von Euch hier schon Erfahrungen oder einen Tipp, wie das genau funktioniert?

Vielen Dank!

core.ERROR: exception 'PDOException' with message 'SQLSTATE[23000]:

$
0
0

Hallo Community,

wir haben heute ein Subshop erstellt und ein bestehendes Theme im Theme Manager kopiert, dabei kamen einige Fehlermeldungen. Die logs sagen folgendes unten aus leider kann ich nur 1 log pro Post einfügen, da die Zeichen zu lang sind.

Der Shop ist ganz normal erreichbar, allerdings braucht er 4-5 Sekunden bis eine Seite aufgebaut wird. Pagespeed Insights bricht die Auswertung teilweise ab weil "Request" zu lang ist.

Ich hoffe ihr könnt uns weiterhelfen. Vielen Dank.

 

[2016-11-20 10:24:00] core.ERROR: exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '35-mobileLogo' for key 'template_id_name'' in /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php:165 Stack trace: #0 /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(165): PDOStatement->execute(NULL) #1 /makrklnc/www.makeupstudio-proshop.de/engine/Library/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(281): Doctrine\DBAL\Statement->execute() #2 /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1018): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->executeInserts() #3 /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(378): Doctrine\ORM\UnitOfWork->executeInserts(Object(Doctrine\ORM\Mapping\ClassMetadata)) #4 /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(356): Doctrine\ORM\UnitOfWork->commit(NULL) #5 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/Form/Persister/Theme.php(62): Doctrine\ORM\EntityManager->flush() #6 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/Theme/Configurator.php(132): Shopware\Components\Form\Persister\Theme->save(Object(Shopware\Components\Form\Container\TabContainer), Object(Shopware\Models\Shop\Template)) #7 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/Theme/Installer.php(154): Shopware\Components\Theme\Configurator->synchronize(Object(Shopware\Themes\DailyConcepts\Theme)) #8 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/Theme/Installer.php(116): Shopware\Components\Theme\Installer->synchronizeThemes() #9 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Controllers/Backend/Theme.php(219): Shopware\Components\Theme\Installer->synchronize() #10 /makrklnc/www.makeupstudio-proshop.de/engine/Library/Enlight/Controller/Action.php(159): Shopware_Controllers_Backend_Theme->listAction() #11 /makrklnc/www.makeupstudio-proshop.de/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('listAction') #12 /makrklnc/www.makeupstudio-proshop.de/engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #13 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Kernel.php(177): Enlight_Controller_Front->dispatch() #14 /makrklnc/www.makeupstudio-proshop.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(487): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #15 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #16 /makrklnc/www.makeupstudio-proshop.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #17 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) #18 /makrklnc/www.makeupstudio-proshop.de/shopware.php(113): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #19 {main}  Next exception 'Doctrine\DBAL\DBALException' with message 'An exception occurred while executing 'INSERT INTO s_core_templates_config_elements (template_id, type, name, position, default_value, selection, field_label, support_text, allow_blank, less_compatible, attributes, container_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [35, "theme-media-selection", "mobileLogo", 0, "s:47:\"frontend\/_public\/src\/img\/logos\/logo--mobile.png\";", "N;", "__smartphone__", null, 1, 0, "a:1:{s:14:\"lessCompatible\";b:0;}", 255]:  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '35-mobileLogo' for key 'template_id_name'' in /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:119 Stack trace: #0 /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(175): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(PDOException), 'INSERT INTO s_c...', Array) #1 /makrklnc/www.makeupstudio-proshop.de/engine/Library/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(281): Doctrine\DBAL\Statement->execute() #2 /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1018): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->executeInserts() #3 /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(378): Doctrine\ORM\UnitOfWork->executeInserts(Object(Doctrine\ORM\Mapping\ClassMetadata)) #4 /makrklnc/www.makeupstudio-proshop.de/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(356): Doctrine\ORM\UnitOfWork->commit(NULL) #5 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/Form/Persister/Theme.php(62): Doctrine\ORM\EntityManager->flush() #6 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/Theme/Configurator.php(132): Shopware\Components\Form\Persister\Theme->save(Object(Shopware\Components\Form\Container\TabContainer), Object(Shopware\Models\Shop\Template)) #7 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/Theme/Installer.php(154): Shopware\Components\Theme\Configurator->synchronize(Object(Shopware\Themes\DailyConcepts\Theme)) #8 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/Theme/Installer.php(116): Shopware\Components\Theme\Installer->synchronizeThemes() #9 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Controllers/Backend/Theme.php(219): Shopware\Components\Theme\Installer->synchronize() #10 /makrklnc/www.makeupstudio-proshop.de/engine/Library/Enlight/Controller/Action.php(159): Shopware_Controllers_Backend_Theme->listAction() #11 /makrklnc/www.makeupstudio-proshop.de/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('listAction') #12 /makrklnc/www.makeupstudio-proshop.de/engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #13 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Kernel.php(177): Enlight_Controller_Front->dispatch() #14 /makrklnc/www.makeupstudio-proshop.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(487): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #15 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #16 /makrklnc/www.makeupstudio-proshop.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #17 /makrklnc/www.makeupstudio-proshop.de/engine/Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) #18 /makrklnc/www.makeupstudio-proshop.de/shopware.php(113): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #19 {main} [] {"uid":"a32d386"}

 

H2-H6-Überschriften Top-Seller Produktdetails etc

$
0
0

Hallo,

mir ist aufgefallen, dass Shopware nur Produkt-H1-Überschriften setzt und sonst nirgendwo.

Ich hätte gerne ein paar Änderungen vorgenommen, aber die Frage ist, in welcher Datei bzw. wie?

Überschriften wie z.B. Topseller, Neuheiten, Hersteller möchte ich ändern in H2

In der Produktdetailübersicht:

" Produktinformationen "xxx" soll H2

"Weiterführende Links zu "xxx" soll H3

Könnte mir jemand eine Hilfestellung geben? Ich suche mir seit Stunden einen Wolf und finde weder die richtige Datei noch wo ich die Überschrift ändern kann.

Weiß das zufälligerweise jemand? Oder hat sonst noch einen guten SEO-Tip bzgl. Überschriften etc?

 

Bestellbestätigung: Smarty CHF in EUR umrechnen

$
0
0

Hallo, wir haben das Problem, das wir den Gesamtbetrag in der Bestellbestätigung von CHF in EURO umrechnen möchten.

Mit Smarty "Gesamtbetrag in EURO: {math equation="$sAmountNet * 1,07"}" geht dies leider nicht, da die Variable $sAmountNet einen Währungstext (Bsp. 21,21 CHF) dahinter hat!

Wie könnte man das hinbekommen?

Danke schon mal

Magnalister Ebay Template

$
0
0
Hallo,
ich bin auf der Suche nach einer Firma, die mir für den Magnalister ein E-Bay Template erstellt.

Findet sich vielleicht jemand im Forum?

Grüße

Christian

Shopware()->Shop() gibt null zurück?

$
0
0

Hallo zusammen,

ich habe ein eigenes Plugin geschrieben, und beim Speichern einer der Entitäten im Backend (also in der save-Funktion des Backend-Controllers) füge ich immer eine neue Url zur RewriteTable hinzu (bzw. update diese). Das mache ich über 

Shopware()->Modules()->RewriteTable()->sInsertUrl($orgPath, $path);

Das Problem ist nur, dass dabei folgender Fehler auftritt:

PHP Fatal error:  Call to a member function getId() on null in [...]/engine/Shopware/Core/sRewriteTable.php on line 710

Was an folgender Zeile liegt:

$update->execute(array(
    $org_path,
    $path,
    Shopware()->Shop()->getId()
));

Also gibt Shopware()->Shop() null zurück. Weiß jemand woran das liegen kann und wie ich das fixen kann?

Vielen Dank für eure Hilfe!
Beste Grüße Tim


API und htaccess beim curl

$
0
0

Hallo,

ich möchte auf die API zugreifen und solange ich keinen htaccess Schutz reinnehme, klappt das auch. Wie muss ich denn den curl ändern, damit es auch mit htaccess Schutz funktioniert?

Ich kann bei den Curl Optionen ja keine weitere anmeldung angeben.

Auch habe ich breits folgendes versucht:

shopware.php

if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])){
    $_SERVER['HTTP_AUTHORIZATION'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
}

In der .htaccess ist

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

bereits vorhanden.

 

Hat wer eine Idee, wie ich den API Nutzer+ Key sowie den Benutzer + Passwort für die htaccess angeben kann?

Gruß Noname

 

REST API Client Bestellungen

$
0
0
Hallo,

ich würde gerne über den Rest Client von Shopware (Rest Api), nur bestimmte Bestellungen erhalten die noch offen sind und nicht alle. 
Ich habe gelesen damit es in der Shopware Version 4 damit möglich war:

array(array('property' => 'orders.number', 'value' => '0', 'expression' => '!='))

Bietet Shopware dafür schon eine Möglichkeit oder muss man selbst ein Plugin dafür schreiben?

Mit freundlichen Grüßen, 
Brian

Leerzeichen in Such-String wird zu Plus-Zeichen

$
0
0

Hallo zusammen,

der Shop unseres Kunden zeigt ein merkwürdiges Verhalten. Wenn in einem Such-String ein Leerzeichen enthalten ist, funktioniert die initiale Suche ganz normal. In der Url wird das Leerzeichen im Such-String mit einem +-Zeichen dekodiert (sucht man z.B. nach "test string", steht in der Such-Url entsprechen "test+string". Soweit sogut.

Wenn man jetzt eine Action ausführt, z.B. die Artikel-pro-Seite ändert, wird dieser Suchstring "wörtlich" genommen und es wird jetzt nach "test+string" gesucht. Entsprechend wird der Such-String in der Url nun als "test%2Bstring" kodiert. Das ist insofern merkwürdig, weil im Demo-Shop ein entsprechend aufgebauter Suchstring bei Ausführung einer Action wieder richtig erkannt wird. Da erkennt das Skript also, dass das + nicht wörtlich zu nehmen ist.

Ich konnte das Auftreten des Problems zurückverfolgen bis zur Methode setCategoryParamsFromUrlParams in der jquery.listing-actions.js Datei. Hier wird der Suchstring direkt aus der Url ausgelesen, natürlich wird auch das + mit ausgelesen. Anschließend wird es weiterverarbeitet, das +-Zeichen wird aber nie "zurückverwandelt", es wird eben mit decodeURIComponent dekodiert und zu %2B.

So wie ich den Code verstehe muss es also passieren, dass + zu %2B wird (auch wenn das natürlich eigentlich nicht gewollt ist, sondern eigentlich das Verhalten aus dem Demo-Shop). Was ich aber nicht verstehe, wieso es im Demo-Shop dann z.B. funktioniert. Also wo ist die Stelle, wo aus dem + wieder ein Leerzeichen wird?

Die eingesetzte Shopware-Version ist 5.1.3.

Viele Grüße
Malte

Frage zu ListProductService dekorieren

$
0
0

Ich habe mit folgendem Script den ListProductService um weitere Bilder dekoriert. Das funktioniert auch soweit. Es existieren Objekte mit weiteren Bilddaten.

Nun habe ich Verständnisprobleme wie ich in meinem Smarty Template darauf zugreife. Kann mir jemand ein konkretes Beispiel geben?

<?php
namespace ShopwarePlugins\AmbicoAddDataToProduct\StoreFrontBundle;

use Shopware\Bundle\StoreFrontBundle\Service\ListProductServiceInterface;
use Shopware\Bundle\StoreFrontBundle\Service\MediaServiceInterface;
use Shopware\Bundle\StoreFrontBundle\Struct;

class ListProductService implements ListProductServiceInterface {
    private $service;
    private $mediaService;

    function __construct(ListProductServiceInterface $service, MediaServiceInterface $mediaService) {
        $this->service = $service;
        $this->mediaService = $mediaService;
    }

    public function getList(array $numbers, Struct\ProductContextInterface $context) {
        $products = $this->service->getList($numbers, $context);
        $media = $this->mediaService->getProductsMedia($products, $context);

        foreach($numbers as $number) {
            $product = $products[$number];
            
            if(isset($media[$number])) {
                $attribute = new Struct\Attribute(['images' => $media[$number]]);
                $product->addAttribute('moreimages', $attribute);
            }
            $products[$number] = $product;

        }

        return $products;
    }

    public function get($number, Struct\ProductContextInterface $context) {
        $products = $this->getList([$number], $context);
        return array_shift($products);
    }

}

 

In meinem Smarty Template sehe ich mit folgendem Script das Objekte weiterer Bilder existieren. Möchte ich jedoch auf ein Feld zugreifen kommt folgende Fehlermeldung 

Cannot use object of type Shopware\Bundle\StoreFrontBundle\Struct\Attribute as array in ...

 

{if $sArticle.attributes.moreimages}
    {$ambicomoreimages = $sArticle.attributes.moreimages}
    {$moreimages=$ambicomoreimages->get('images')}

    {foreach $moreimages as $image}

        {$image|@var_dump}

    {/foreach}
{/if}

 

 

 

Fehler nach Formularübermittlung

$
0
0

Hallo zusammen,

ich beobachte seit kurzem einen Fehler bei der Übermittlung von Formularen. Es erscheint die Fehlerseite "Upps usw.". Ich habe es heute wieder im Newsletterformular gesehen und in Firebug konnte ich sehen, dass die Anfrage für "Newsletter" mit einem Fehlercode 400 quittiert wird.

Geht man dann zurück, lädt die Seite neu und übermittelt das Formular neu ist alles OK und zwar für eine ganze Weile. Ich habe den Verdacht, dass der Fehler immer dann auftritt, nachdem der HTTP Cache aufgewärmt worden ist.

Es tritt bei allen meinen drei Browsern auf: Chrome, Firefox und Safari.

Diesen Fehler habe ich übrigens auch schon im Responsive-Theme beobachten können.

Habt Ihr irgendeine Idee, wie ich der Ursache auf die Schliche kommen könnte?

Danke bereits und schönes WE

Viewing all 2871 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>