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

Template "verschwindet" nach einiger Zeit?

$
0
0

Moin liebe Shopwareianer,

ich habe jetzt seit Tagen ein Problem mit meinem Shop tunersparadise.de und komme der Ursache nicht auf den Grund.
Der Shop läuft super, bis auf einmal beim Laden der Seite das Template einfach nicht mehr geladen wird. Ich sehe nur die reine HTML-Seite, das Logo und darunter Text-Links und soweiter.

Manchmal hilft mehrmaliges Neuladen des Shops, meistens muss ich jedoch den Shop-Cache leeren. Im Fehlerlog steht nichts - es scheint also kein schwerwiegender Fehler zu sein. Ich glaube auch nicht, dass es ein Problem der Programmierung ist, da ansonsten das Template ja von vornherein nicht vernünftig laden würde.

Leider ist mir auch kein besserer Titel für dieses Thema eingefallen, ich habe bereits die Suche bemüht, finde aber nichts gleichwertiges.

Hat jemand eine Idee, wo die Ursache liegen könnte?


Problem mit hooks

$
0
0

Hallo,

 

Ich habe eine Frage in Bezug auf die folgenden Artikel:

https://developers.shopware.com/blog/2015/06/09/understanding-the-shopware-hook-system/

https://developers.shopware.com/developers-guide/event-guide/

 

In shopware ist es möglich, Hooks für public and protected Functions für Controllers, Core Classes und Repositories zu cachen, allerdings habe ich Probleme, folgenden Event Hook zu cachen:

$this->subscribeEvent(

'Shopware_Controllers_Frontend_Register :: saveRegisterAction :: after',    

          'onFrontendPostDispatch'

      );

 

Für den Class Name habe ich folgende Optionen ohne Erfolg versucht

\Shopware\Controllers\Frontend\Register

Shopware\Controllers\Frontend\Register

Enlight_Controller_Action_PreDispatch_Frontend_Register

Register

 'Shopware_Controllers_Frontend_Register::saveRegister::before'

 

Meine Funktion lautet:

 

  public function onFrontendPostDispatch(Enlight_Hook_HookArgs $arguments)

  {

      $basketID = $arguments->getReturn();

      /** @var \Enlight_Controller_Action $controller */

      Shopware()->PluginLogger()->info("override method");

      $string = "2012-06-13T09:34:09+0200";

      $dateTime = new DateTime($string);

      $now = new DateTime();

      $string = $now->format('Y-m-d');    // MySQL datetime format

      Shopware()->PluginLogger()->info($string);

 

      return $basketID;

}

 

 

Ich bin relativ neu in Shopware unterwegs und wäre über jede Hilfe dankbar!

 

Viele Grüße,

Nemanja

Einkaufswelten Kategorie-Teaser Vorschaubild

$
0
0

Hallo,

 

ich habe das Problem, dass die Bilder von Zufälligen Artikel des Einkaufswelten Elements Kategorie-Teaser viel zu groß dargestellt werden und nicht wie Standart auf 100% innerhalb ihrer Box Skaliert werden.

Ich hab die soweit notwendigen Werte mit einem Jungfreulichen Shopware Verglichen und das ist alles gleich.
Ggf. habe ich etwas übersehen, komme aber derzeit nicht mehr weiter.

So sollte es ja eigentlich aussehen:

Für hilfe oder denkanstöße wäre ich sehr dankbar :-)

Liebe Grüße

Anlegen von Artikelbildern über die REST API / API Resource

$
0
0

Hallo zusammen,

Ich bin langsam beim Import von Bildern zu Varianten über die REST API bzw. API Resource am verzweifeln. Ich importiere iterativ Bilder via CLI aus einem Verzeichnis. Nach verschiedenen Versuchen (über Varianten-Resourcen, Doctrine Models etc.) bin ich bei nachstehender Lösung gelandet.

Das Problem:
Die Medien werden angelegt, Das Bild für Artikel erstellt und mit dem Artikel verlinkt, Mappings für die Option "60 Stück" wird angelegt und die Bilder sind im Backend zu sehen. Dort ist bei jeder Konfiguration der Bilder auch sauber "60 Stück" eingetragen.
ABER: Lädt man das Produkt im Frontend, sind die Artikelfotos bei ALLEN Varianten des Artikels zu sehen - unabhängig von der gewählten Variante.

Ich bin nun langsam aber sicher mit meinem Latein am Ende. Hat vielleicht jemand einen Tipp für mich?
Hier noch die Doku die ich als Grundlage genützt habe: https://developers.shopware.com/developers-guide/rest-api/examples/media/#the-configuration-for-image-assignment

Danke & LG

/** @var \DirectoryIterator $fileInfo */
foreach ($dir as $fileInfo) {

    // Validate file
    if(!$this->isValidFile($fileInfo)) continue;

    // Get image index by filename
    $imageIndex = $this->getImageIndexFromFile($fileInfo);

    // Get filename without extension
    $name = basename($fileInfo->getBasename(), '.' . $fileInfo->getExtension());

    // Get the article
    try {

        /** @var \Shopware\Models\Article\Article $article */
        $article = $articleResource->getOneByNumber($artNr);

    } catch (NotFoundException $e) {
        $this->logger->addAlert('Article variant with ArtNr. {artNr} not found. Import of image {fileName} skipped.', array('fileName' => $fileInfo->getFilename(), 'artNr' => $artNr));
        continue;
    }

    // Build the media parameter array
    $media = array(
        'album' => -1,
        'name' => $name,
        'file' => $fileInfo->getRealPath(),
        'description' => $article->getName() . ' - ' . $artNr
    );

    // Create new media
    if ($media = $mediaResource->create($media))
        $this->logger->addInfo('Media {fileName} for article {artNr} successfully created.', array('fileName' => $fileInfo->getFilename(), 'artNr' => $artNr));

    // Add it to the article
    $params = array(
        'images' => array(
            array(
                'mediaId' => $media->getId(),
                'options' => array(
                    array(
                        array(
                            'name' => '60 Stück'
                        )
                    )
                )
            )
        )
    );

    // Update article images
    $articleResource->update($article->getId(), $params);

    // Manual flush data
    $mediaResource->flush();
    $variantResource->flush();

}

 

Freitextfelder bei Varianten-Optionen und deren Ausgabe

$
0
0

Hallo,

ich habe folgendes Problem:
Ich habe mir für einen Artikel Varianten erstellt. Den dazugehörigen Optionen habe ich ein Freitextfeld zugewiesen (HTM-Feld). Wenn ich in das Feld was eintrage wird es in die Tabelle "s_article_configurator_options_attributes" auch richtig übernommen. 
Es sieht wie folgt aus:
 

id | optionID | attr1
3        116        Das ist ein Testtext

Wenn ich nun ins Frontend wechsle um mit dem Frietextfeld der Varianten-Option zu arbeiten wird mir diese nicht ausgegeben. In der Smarty-Debug-Konsole sieht die Ausgabe wie folgt aus:
116 => Array (7)
          optionID => 116
          groupID => 18
          optionname => "Testoption"
          user_selected => true
          selected => true
          selectable => true
          attributes => Array (1)
            core => Shopware\Bundle\StoreFrontBundle\Struct\Attribute Object (0)

Das Feld ist hier nicht enthalten. Füge ich Freitextfelder beispielsweise bei einem Artikel hinzu erscheinen diese in der Konsole und ich kann darauf zugreifen. Habe ich an irgendeiner Stelle etwas vergessen oder ist das ein Bug? Es geht ausschließlich um die Optionen der Variante (also beispielsweise Farbe: Weiß, schwarz...) nicht um die Variante selber, ich brauche das Freitextfeld für jede einzelne Option. 

Artikel im Warenkorb sofort vom Lagerbestand abziehen

$
0
0

Hi,

gibt es die Funktion, dass man einen Artikel sobald er im Warenkorb liegt vom Lagerbestand abziehen kann oder auch ggf in eine "Parkposition" für ca 20min?

Danke und Gruss

Versandoption

$
0
0

Hallo Shopware Gemeinde,

Ich bin auf der Suche nach Versandoptionen. Da wir eigentlich nur Spedition Artikel liefern.

Kunde kauft einen Artikel für Speditionversand.

Dann soll es möglich sein im Checkout das der Kunde noch Zusatzoptionen angezeigt bekommt. 

Siehe Foto:

image

 

Ich denke mal Standardversand, Wunsch-Zeitraum, Fixtermin, Express-Lieferung jeweils als eigenen Versandoption aber wie bekomme ich dann diese Freitextfelder dargestellt, wenn er die Option wählt?

Dann benötigt man ja noch allgemeine Checkboxen für Benachrichtigungsoptionen.

 

Hat sowas schon jemand gemacht? Oder könnte jemand sowas für uns umsetzen? (Natürlich gegen Bezahlung)

 

Wäre um jede Hilfe dankbar.

 

Viele Grüße aus Niederbayern

MariaDB Syntax Fehler aufgrund von reserviertem Wort

$
0
0

Hallo,

Ich habe Shopware (5.2.24) auf MariaDB (10.3.0) aufgesetzt und musste festellen, dass ich keine neuen Einkaufswelten erstellen kann. Beim erstellen einer neuen Einkaufswelt gibt mir Shopware einen MySQL Syntax Fehler zurück, da in der Tabelle 's_emotion' eine Spalte 'rows' beschrieben werden sollte, aber 'rows' laut offzieller MariaDB Dokumentation seit Version 10.2.4 ein reserviertes Wort ist.

Beispiel Fehler:

Ein Fehler ist beim Speichern aufgetreten:<br>An exception occurred while executing 'INSERT INTO s_emotion (show_listing, template_id, parent_id, active, name, userID, position, device, fullscreen, valid_from, is_landingpage, seo_title, seo_keywords, seo_description, valid_to, create_date, modified, rows, cols, cell_spacing, cell_height, article_height, mode) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [0, 1, null, false, "Test", 50, 1, "0,1,2,3,4", false, null, false, "", "", "", null, "2017-06-14 15:49:25", "2017-06-14 15:49:25", 20, 4, 10, 185, 2, "fluid"]:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'rows, cols, cell_spacing, cell_height, article_height, mode) VALUES (0, 1, NULL,' at line 1

Was für Möglichkeiten habe ich dieses Problem zu beheben?

 

Vielen Dank


beim Artikel zusätzlich Nettopreis ausgeben, jedoch nur wenn Steuer anfällt

$
0
0

Hallo zusammen,

aktuell gebe ich den Nettopreis eines Artikels in der Datei frontend/detail/data.tpl zusätzlich über folgende Zeile aus:

{$nprice = round($sArticle.price / 1.19,2)}{$nprice|currency})

Wenn man sich nun z.B. mit einem Kundenkonto aus Kanada anmeldet, welches keine Steuern zahlt, wird zwar der Artikelpreis an sich korrekt ohne MwSt. ausgegeben, die Info zum Nettopreis erscheint jedoch natürlich trotzdem, und zeigt einen falschen Wert an, da vom Nettopreis nochmals die Formel berechnet wird.

Wie kann ich abfragen, ob der Artikelpreis als Brutto oder als Nettopreis ausgegeben wird, um dann im zweiten Fall die Info zum Netto gar nicht anzeigen zu lassen?

Es grüßt

Grauwolf

Wat is de sessievariabele die mij de huidige taal vertelt

$
0
0

 

Wat is de sessievariabele die mij de huidige taal vertelt

Console-Befehle sind unausführbar

$
0
0

Hallo Zusammen,

ich habe gerade ein Problem, dass ein Versuch, ein Console-Befehl auszufühern so aussieht:

[manager@frontsign public]$ php -display_errors bin/console sw:cron:run importEET -f
PHP Fatal error:  Listener "onAddConsoleCommand" in "SwagImportExport" is not callable. in /var/www/shopware/public/engine/Library/Enlight/Event/Handler/Plugin.php on line 145
[manager@frontsign public]$ php bin/console sw:cache:clear
PHP Fatal error:  Listener "onAddConsoleCommand" in "SwagImportExport" is not callable. in /var/www/shopware/public/engine/Library/Enlight/Event/Handler/Plugin.php on line 145

Ich wäre dankbar für Hilfe. Googlen hilft leider nicht sehr.

Danke im Vorab.

Pluginentwicklung/Fragengestützer Berater/ Filter-Facetten/Verwendung Shopware Standard Komponenten

$
0
0

Guten Morgen,

im Rahmen meines Abschlussprojektes (Praktikum) bei der Ausbildung zum Fachinformatiker AE benötige ich Hilfe!
Es soll ein ein Shopware-Plugin entwickelt werden, das den Kunden fragengestützt, filternavigierend zu passenden Artikeln führt.
Bei der Entwicklung soll möglichst auf den Standard seit Shopware 5.2. geachtet werden und auf vorhandene Komponenten basieren.

Der Kunde soll nach dem Aufruf der Berater-Seite mehrere Fragen nacheinander auf einer Seite angezeigt bekommen und diese dann jeweils durch die Auswahl von Filtern beantworten.
Die Filter/Facetten sollen allerdings nicht als Block, sondern herausgelöst, passend unter der jeweiligen Frage stehen.

Mein Ansatz wäre die Verwendung des SearchBundles.

Ich stecke jetzt nach dem Anlegen der Route, des Templates und der Anzeige eines Listings mit Filterblock, fest.

Ich möchte das der Kunde beim ersten Aufruf der BeraterSeite ein Listing  einer bestimmten Kategorie bekommt.
Als Grundlage dienen mir Beispiele aus dem aktuellen Shopware-Buch und die Informationen zum Thema SearchBundle für Developer.
Das Problem, ich habe eine große Wissens- und Verständnislücke was die verwendeten Frameworks von Shopware angeht und versuche Beispielcode,
von dem ich ausgehe, das er zur Lösung der Teilaufgabe passen könnte, umzubauen.

Fehlermeldung: "Condition FFDiktierBerater\Components\SearchBundleDBAL\Condition\KategorieCondition not supported in engine/Shopware/Bundle/SearchBundleDBAL/QueryBuilderFactory.php on line 231"

Ich scheitere nun schon beim Anlegen der/des Condition/Handlers, dem entsprechenden Subscriber, der service.xml um eine Kategorie als Filter beim
ersten Aufruf der Beraterseite das Listing beeinflussen zu lassen.

Wie würdet Ihr das Problem lösen, wenn Ihr nach den neuen Standards vorgehen würdet.

Bin für jede Hilfe dankbar.
Attila

Aufgaben:

-  festegelegte Kategorie beeinflusst Listing beim ersten Aufruf der Beraterseite
- erstellen von Facetten/Filtern passend zu den Fragen (zum Teil schon im Standardfilterblock sichtbar)
- platzieren von Einzelnen-/Gruppen- von Filtern unter den Fragen (nicht als Filterblock wie bei Shopware)

 

jQuery in der 5.3 RC1

$
0
0

Moin,

im RC1 mit dem asynchronen Javascript Einstellungen funktionieren meine Aufrufe nicht mehr, obwohl die jquery-Plugins sauber eingebunden werden.

Folgendes läuft ohne asynchrones Laden:

<script>
         $(document).ready(function(){
         $(".navigation-main").sticky( { topSpacing:0 } );
           });
</script>

Mit asynchonrm Nachladen:

Uncaught ReferenceError: $ is not defined

Die Upgrade Doku hilft mir da nicht weiter. Hat jemand einen Tipp?

Gruß
Matthias
 

ShyimProfiler sensible Daten ?

$
0
0

Hallo,

unser Shop ist derzeit im Wartungsmodus online und ich arbeite hin und wieder mal mit dem ShyimProfiler für kleinere Sachen, ist allerdings nicht ganz so häufig.

Die Benutzer sehen diesen ja auch und dort kann ich ja einige Dinge einsehen. Kann ein Benutzer bzw. ein Hacker mit den Daten dort etwas anfangen ?

Also kann ich das Tool getrost dort kurz mal verwenden oder eher nicht ? Wie gesagt sind es nur Kleinigkeiten, dafür will ich mir das lokal eigtl nicht einrichten.

MfG,

Fensterscheibe

UStd Feld bei Registrierung nur für Auslandsbestellungen

$
0
0

Hallo zusammen,

ich würde gerne das UStd Feld für Auslandsbestellungen als Pflichtfeld setzen. Vom Standard her ist dies ja anscheinend nicht machbar (?). Zumindest habe ich es bis jetzt noch nicht gefunden.

Daher würde ich die Bare Template-Datei anpassen. (Narülich im eigenen Template). 
Weiß jemand vielleicht, wie ich abfragen kann auf welchem Wert das Country Field Select steht?

 

{block name='frontend_register_billing_fieldset_input_country'}
            <div class="register--country field--select">
                <select name="register[billing][country]"
                        data-address-type="billing"
                        id="country"
                        required="required"
                        aria-required="true"
                        class="select--country is--required{if isset($error_flags.country)} has--error{/if}">

                    <option disabled="disabled"
                            value=""
                            selected="selected">
                        {s name='RegisterBillingPlaceholderCountry'}{/s}
                        {s name="RequiredField" namespace="frontend/register/index"}{/s}
                    </option>

                    {foreach $country_list as $country}
                        <option value="{$country.id}" {if $country.id eq $form_data.country}selected="selected"{/if} {if $country.states}stateSelector="country_{$country.id}_states"{/if}>
                            {$country.countryname}
                        </option>
                    {/foreach}
                </select>
            </div>
        {/block}

 

Freue mich über Anregungen :-) 

 

Grüße,

chrisen


$sArticles - um weiteren Wert aus Datenbank erweitern und im Frontend nutzen - SQL Select

$
0
0

Hallo,

ich würde gerne einen Wert aus der Datenbank im Frontend anzeigen lassen, welcher jedoch nicht als Wert in $sArticles (oder woanders )vorliegt. Daher muss ich $sArticles um diesen Wert aus der Datenbank erweitern. Der Wert, welchen ich hinzufügen möchte liegt in der Tabelle "s_articles_supplier".

Daher muss ich nun also per SQL-Befehl (Select) die Werte aus der Datenbank abfragen, aber selbst wenn mir das gelingt, wie füge ich diese zu $sArticles dem entsprechenden Produkt hinzu?

Vielen Dank für eure Hilfe!

REST API Endpunkt überschreiben / erweitern

$
0
0

Hallo zusammen,

ich hatte unter Shopware 5.0.1 den Article-Endpunkt der API mittels eigener Methoden überschrieben und somit die Ausgabe verändert. Bilder und Preise wurden direkt mitgegeben, dafür habe ich viele für meinen Anwendungsfall überflüssige Informationen nicht mehr ausgegeben. Dafür hatte ich ein eigenes Plugin geschrieben, welches in Plugins/Local/Frontend/ArticleApi liegt. 

Nach dem (endlich durgeführten) Update auf 5.1.6 funktioniert das Plugin nicht mehr und der Aufruf der Article API greift auf den Original-Endpunkt zurück. Der Controller des Custom Plugins wird geladen, aber die Component nicht. Zumindest wird Debug-Code in plugins/Local/Frontend/ArticleApi/Components/Api/Resource/Article.php komplett ignoriert. 

Ich finde leider keine Dokumentation darüber, ob sich von 5.0 auf 5.1 die Funktionsweise beim Erweitern der API verändert hat. Könnt ihr mir helfen?

Vielen Dank und Grüße

Dirk

 

Theme selber entwickeln oder lieber fertiges Theme verwenden mit Plugins?

$
0
0

Hallo,

generell könnte ich mit html,css,js und smarty ein Theme ja selber entwickeln.

Das wäre soweit auch kein Problem.

Aber hätte ich damit irgendwelche vor bzw. Nachteile im Vergleich zu einem fertigem Theme und wenn ich dann Plugins verwenden würde?

Beispiel :

Ich kaufe ein fertiges Theme , dann ein Topbar Plugin, womit ich Topbar abändern kann.

Vorteile : 

- jeder Benutzer kann ohne Vorkenntnisse die Topbar abändern

Nachteil :

- Plugin kann bei der nächsten Shopware Version nicht mehr unterstützt werden und Theme auch nicht oder sehe ich da etwas falsch ? Bzw. kann ich totale Probleme bekommen, wenn ich alles über ein fertiges Theme und fertige Plugins manage?

Bzw. die Frage ist für mich, welche vor und Nachteile ich denn hätte bei welcher Variante

 

Listing mit Infinite Scrolling auf den View zugreifen geht nicht mehr ab der 5.3 RC1

$
0
0

Hallo Community,

ich habe bisher mit dem subscribe auf Widgets Listing einen weiteren Wert aus der Datenbank jedem Artikel in einem Listing zugewiesen. Das hat bis SW 5.3 auch super geklappt, sodass auch bei nachgeladenen Elementen der zusätzliche Wert im Template assigned und im Listing je Artikel genutzt werden konnte - also auch für die nachgeladenen Artikel beim infinite Scrolling.

 

Das hier hat bis 5.3 funktioniert:

$this->subscribeEvent(
    'Enlight_Controller_Action_PostDispatchSecure_Widgets_Listing',
    'addXY'
);
public function addXY(Enlight_Event_EventArgs $arguments)
    {

		$subject = $arguments->getSubject();

        $view = $subject->View();

        $sArticles = $view->getAssign('sArticles');

        if(is_array($sArticles)) {
            foreach ($sArticles as &$article) {
                $sqlArticleId = $article['articleID'];
                $sql = "SELECT xy FROM s_articles_details WHERE articleID = $sqlArticleId";
                $fields = Shopware()->Db()->fetchOne($sql);
                $article['xy'] = $fields;
            }
            unset($article);
        }

        $view->assign('sArticles', $sArticles);

    }

 

Mit der Version 5.3 RC1 funktioniert das nun nicht mehr. Ich habe bisher herausgefunden, dass ich auf ein weiteres Event subscriben muss, bzw. auf die Action davon um auch für die nachgeladenen Elemente den neuen Wert zur Verfügung zu stellen. Folgender subscribe Funktioniert für alle nachgeladenen Objekte:

$this->subscribeEvent(
    'Enlight_Controller_Action_Widgets_Listing_listingCount',
    'addXY'
);

Leider komme ich aber nun mit obigem Code nicht mehr an die Elemente. Der zusätzliche Wert wird nicht assigned und ich kann mir auch nicht den view bzw. $sArticles ausgeben lassen. Folgender Code erzeugt einen Fehler in der Console: Uncaught TypeError: Cannot read property 'trim' of undefined

public function addXY(Enlight_Event_EventArgs $arguments)
    {

		$subject = $arguments->getSubject();

		$view = $subject->View();

		$sArticles = $view->getAssign('sArticles');

		echo '<pre>Ausgabe:';
		print_r($sArticles);
		echo '</pre>';
		die('');

	}

 

 

Hat jemand eine Idee oder Rat?

 

 

// Edit: Mir ist auch aufgefallen, dass bei 5.3 keine Template Vars mehr ausgeben werden, nach dem im Infinite Scrolling des Listings die weiteren Artikel geladen wurden:

image

image

Eigenschaften für Varianten (bzw. Gruppen/Optionen)

$
0
0

Hallo zusammen,

hat schon jemand eine Möglichkeit gefunden, wie man Varianten eigene Eigenschaften zuweisen kann? Diese müssen nicht Filterbar sein, sondern nur in der Detailansicht ausgegeben werden. Natürlich könnte ich hier einfach die Freitextfelder der Variante verwenden, aber ich hätte gerne die Möglichkeit die Eigenschaften "global" zu verwalten.

Freue mich auf eure Anregungen. :)

Viewing all 2871 articles
Browse latest View live


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