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

SwagBundle - Funktion ändern

$
0
0

Hallo zusammen,

ich will im SwagBundle Plugin eine Funktion ändern. Genau geht es um
/Components/Bundle.php getBundlePrices()

Habe ich eine Alternative zu Core Datei ändern?
Ich hätte gerne was updatesicheres...

Danke für die Info.

Gruß
ottscho


sProperties in Listing (Eigenschaften in Artikelübersicht)

$
0
0

Hallo,

das Forum ist "voll" von Fragen dieser Art, aber leider gibt es keine zufriedenstellende Antwort oder eine Lösung für das Problem

Hardcodiert lässt sich in Shopware 5.0.x in function getListing(); in /engine/Shopware/Core/sArticles.php eine Zeile $article['sProperties'] = $this->sGetArticleProperties($article['articleID']); ergänzen um das gewünschte zu bewirken.

Wie man das ganze aber in ein Plugin verpackt, ist mir schleierhaft - das zugehörige Event ist, soweit ich das beurteilen kann Shopware_Modules_Articles_sGetArticlesByCategory_Start in derselben Datei

Erstelle ich nun ein Plugin und registriere das Event folgendermaßen

        $this->subscribeEvent(
            'Shopware_Modules_Articles_sGetArticlesByCategory_Start',
            'onGetArticlesByCategoryStartEvent'
        );

Und führe danach folgendes aus

    public function onGetArticlesByCategoryStartEvent(Enlight_Event_EventArgs $arguments) {
        $article = $arguments->getReturn();
        $article['sProperties'] = array('foo1', 'bar1');
        return $article;
    }

Erhalte ich nicht, wie zu erwarten sProperites mit einem Array mit zwei werten sondern eine Fehlermeldung

Fatal error: Call to a member function getLimit() on a non-object in ...

Das Alias/namespace  Shopware\Bundle\SearchBundle habe ich allerdings importiert

Ich stehe da grade entweder irgendwo am Schlauch oder mache etwas grundlegend falsch :)

 

Eigenen Ajax Store im Order List View

$
0
0

Hallo zusammen,

ich erweitere meine Bestelllistenansicht order/view/list/list.js über ein Plugin in der Funktion 

getColumns: function() {

}

In dieser Funktion übergebe ich die orderID als Parameter und lade einen Ajax Store über meinen Plugincontroller. Jetzt möchte ich das Grid mit der renderer Funktion überarbeiten. Da mein Ajax Store ja aber asynchron geladen wird stehen mir die Daten beim abarbeiten der Funktion noch nicht zur Verfügung und meine neuen Spalten bleiben leer. 

Wie kann ich denn den Store vorab laden, damit er bei Aufruf der Funktion getColumns schon zur Verfügung steht?

Vielen Dank schon mal für eure Hilfe!

LG Max

 

shopware.php" not found' in

$
0
0

I have creted PDF genrate plugin. This plugin work fine with testing domain, when i move to live shope then give it following excepton

 

Fatal error: Uncaught exception 'Enlight_Controller_Exception' with message 'Controller "shopware.php" not found' in /var/www/clients/client1/web33/web/engine/Library/Enlight/Controller/Dispatcher/Default.php:486 Stack trace: #0 /var/www/clients/client1/web33/web/engine/Library/Enlight/Controller/Front.php(226): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #1 /var/www/clients/client1/web33/web/engine/Shopware/Kernel.php(153): Enlight_Controller_Front->dispatch() #2 /var/www/clients/client1/web33/web/vendor/symfony/http-kernel/HttpCache/HttpCache.php(492): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #3 /var/www/clients/client1/web33/web/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #4 /var/www/clients/client1/web33/web/vendor/symfony/http-kernel/HttpCache/Ht in/var/www/clients/client1/web33/web/engine/Library/Enlight/Controller/Dispatcher/Default.php on line 486
503 Service Unavailable
Fatal error: Undefined class constant 'self::SELECT_WITHOUT_FROM_PART' in /var/www/clients/client1/web33/web/engine/Library/Zend/Db/Table/Abstract.php on line 1016

Smarty - Doppelter Inhalt nach append

$
0
0

Hallo,

kann sich zufällig jemand erklären warum der Inhalt nach append doppelt ist?

{extends file='parent:frontend/checkout/cart_footer.tpl' }

{block name='frontend_checkout_cart_footer_field_labels_taxes' append}test{/block}

Im frontend erhalte ich dann aber 2 mal test.

Viele Grüße

Extjs - order overview window aktualisieren nach statusänderung?

$
0
0

Hallo zam! 

ich habe eine Erweiterung für die Bestellungsdetails geschrieben, die den Orderstatus gleich mitsetzt, und anschließend das detail-fenster schließt. Soweit so gut, nur ist leider doof, dass sich das Order-Window nicht so updatet, wie wenn man z.B. den Bestellstatus wechselt und dann speichert.

Hat jemand eine idee, wie ich von meinem Bestellfenster aus das aktualisieren des Orderfensters antriggern kann? 

Ich wäre unendlich dankbar für einen tipp. Sitze jetzt schon so lange da dran...

Grüße

Versandgebiet eingrenzen

$
0
0

Hallo, ich bin neu und möchte eine regionalen onlineshop anbieten. Dabei soll natürlich auch das Liefergebiet eingerenzt sein, da wir die Bestellungen selber ausfahren. Ich habe bei der entsprechenden Versandart den Reiter Erweiterte Einstellungen gewählt und dann bei Eigene Bedingung folgende eingefügt:
IFNULL(us.zipcode,ub.zipcode) > '63500'
AND IFNULL(us.zipcode,ub.zipcode) < '63699'
Das klappt soweit auch, die Versandart kann dann ausgewählt werden. jedoch ist die PLZ außerhalb des gebiets, dann kann man einfach bestellen ohne Versandart. Wie kann ich verhindern, dass Bestellungen außerhalb des Gebiets eintrudeln ?

Grüße
Robert

Hook: Hook-Registrierung nach Abschluss Registrierung funktioniert nicht

$
0
0

Guten Morgen.

Ich bin relativ neu im Hook-System von Shopware und versuche gerade nach dem Speichern der Kundenregistrierung im Frontend einen Hook zu platzieren.

Der Hintergrund des Hooks soll sein, dem Nutzer je nach Länderauswahl in eine länderbezogene Kundengruppe zu schieben, z.B. "Kunden DE", "Kunden CH" usw.

Hier mal der Quellcode:

public function install()
    {
        $this-&gt;subscribeEvent(
            'sAdmin::sSaveRegister::after',
            'afterSaveRegisterHook'
        );

        $this-&gt;createConfig();

        return true;
    }

public function afterSaveRegisterHook(Enlight_Hook_HookArgs $args)
    {
        /** @var \sAdmin $subject */
        $subject = $args-&gt;getSubject();

        $return = $args-&gt;getReturn();

        Shopware()-&gt;Debuglogger()-&gt;info("Methode aufgerufen.");
        Shopware()-&gt;Debuglogger()-&gt;info($subject);

        $args-&gt;setReturn($return);
    }

Doch leider ist es so, dass er die Methode "afterSaveRegisterHook" nie aufruft.

Mache ich hier irgendwo einen Fehler ? Oder funktioniert die Logging-Ausgabe dort nicht ? Die Methode "die()" hatte auch nicht funktioniert.

Freundliche Grüße

Heiko Bihlmaier


getBackendOrdersQueryBuilder um die Detail Attributes, Artikel und Supplier erweitern

$
0
0

Hallo zusammen,

ich hab da mal wieder eine Frage ...

Ich würde gerne die Abfrage in getBackendOrdersQueryBuilder erweitern. Ich hook die Funktion mit einem after. Die Detail Attributes bekomme ich da auch rein, nur leider funktioniert das nicht mit den Artikeln und den Herstellern. Im Detail Model scheint auch keine direkte Verknüpfung zu den Artikeln zu bestehen.

Momentan sieht das ganze so bei mir aus:

// get original builder
$builder = $arguments->getReturn();

// add selection and join to original builder
$builder->addSelect(array(
    'detailAttribute'
));

$builder->leftJoin('orders.details', 'details');
$builder->leftJoin('details.attribute', 'detailAttribute');

$arguments->setReturn($builder);

Kann ich die Artikel und die Supplier mit aufnehmen und wenn ja wie?

Vielen Dank schon mal für eure Hilfe.

LG Max

Kunde hat sein Passwort vergessen. Keine Änderung möglich

$
0
0

Hallo,

ich wurde von Kunden darauf aufmerksam gemacht, dass es nicht möglich ist über die Funktion "Passwort vergessen" ein neues Passwort zu erstellen. Die Email wird verschickt und der Kunde kommt über den entsprechen Link wieder auf die Shopseite. Doch egal was er für eine Länge des neuen Passwortes eingibt bekommt er immer die Meldung "Bitte wählen Sie ein Passwort, welches aus mindestens 5 Zeichen besteht.". Weiterhin sind im Bereich der Eingabefelder die entsprechenden Zeilen sichtbar:

*" name="password" type="password" id="newpwd" class="password-new--input input--password has--error">

*" name="passwordConfirmation" id="newpwdrepeat" type="password" class="password-new--input input--password-confirmation has--error" >

Wenn Sie das Passwort für Ihr Konto vergessen haben, können Sie hier ein neues definieren. Wenn Sie das neue Passwort speichern, wird Ihr altes Passwort ungültig.

Wir haben vor Kurzem ein Update von Vers. 5.1.3 auf 5.1.4 vorgeommen. Da ich nicht weiß wie lange der Fehler schon vorhanden ist, kann ich nicht sagen, ob das Update damit im Zusammenhang steht.

Zunächst habe ich testweise auf das Standard Responsive Template und auf ein Emotion Template gewechselt. Leider ohne Erfolg. Auch Änderungen im Backend wie z.B. Länge der Zeichen des Passwortes brachten keinen Erfolg. 

Da ich wie erwähnt nicht weiß wie lange der Fehler schon vorhanden ist, ist es für mich schwer die Ursache einzugrenzen. 

Grüsse

Heinrich

 

 

 

Eigenschaften über die REST API anlegen und Artikel mit Eigenschaften verknüpfen

$
0
0

Ich verstehe nicht so ganz welcher Code notwendig ist um mit der REST API Eigenschaften anzulegen und Artikel mit angelegten Eigenschaften zu verknüpfen um Artikel im Listing filterbar zu machen.

Was ich weis:

$propertySet = array(
    'name' => 'Mode',
    'comparable' => true,
    'sortMode' => 0,
    'position' => 0,
    'id' => 100,
);

$client->post('propertyGroups', $propertySet);

Mit obigen Code lege Ich ein Eigenschaftsset an. Ich weis auch wie Ich Artikel mit Varianten anlege.

Meine Fragen:

1. Wie lege Ich eine Eigenschaftgruppe mit Optionen an und ordne diese dem Eigenschaftsset zu.
2. Wie verknüpfe Ich dann Artikel mit Eigenschaften und deren Optionen?

 

Neue Status Email anlegen mit Vorlage?????

$
0
0
Hallo,

ich würde gerne einen neue EMail bei den Status-Emails anlegen. Dort gibt es auch ie Möglichkeit eine Vorlage hinzuzufügen.

Wenn ich das gemacht habe, erscheint die neu angelegte EmailVorlage unter UserEmails. wie kann ich diese nun benutzen, bzw. kann ich die Vorhanden Statusmails vom Text her ändern?

LG.
Melanie

Verhalten von Model Objekten

$
0
0

Hallo zusammen,

die for Schleife soll 19 Bilder aus dem Ressourcen Ordner eines Plugins in den DB bzw. einen Ordner schreiben.

Die Frage nun: Warum steht in DB und Ordner nur das letzte Bild "example19" .. warum nicht die 18 davor.. ich nulle die Objekte sogar.. und oben bei fileObject kommt je Iteration ein neues Bild an die Reihe?? oder gibt es gar eine setFiles Methode?

 

for( $i = 1; $i  &lt; 20 ; $i++) {
				$fileObject = new \Symfony\Component\HttpFoundation\File\File($example_sprite.'\example'. $i .'.jpg');
				$album = Shopware()-&gt;Models()-&gt;find('Shopware\Models\Media\Album', $insertLastId2);
				
				$media = Shopware()-&gt;Models()-&gt;find("Shopware\\Models\\Media\\Media", $insertLastId2);
				$media-&gt;setAlbum($album);
				$media-&gt;setDescription('example');
				$media-&gt;setCreated(new DateTime());
				$media-&gt;setExtension('jpg');
				$identity = Shopware()-&gt;Auth()-&gt;getIdentity();
				if ($identity !== null) {
					$media-&gt;setUserId($identity-&gt;id);
				} else {
					$media-&gt;setUserId(0);
				}
				//set the upload file into the model. The model saves the file to the directory
				$media-&gt;setFile($fileObject);
				Shopware()-&gt;Models()-&gt;persist($media);
				Shopware()-&gt;Models()-&gt;flush();
				
				$fileObject = null;
				$album = null;
				$media = null;
				$identity = null;
}

Vielen Dank für ein mögliches kurzes Feedback!

SSL Auf einer Seite deaktivieren

$
0
0

Hi Leute,

Ich habe das Problem, dass die Einkaufswelten nachdem ich einmal im Einkauskorb war auch mit ssl aufgebaut werden.

Jetzt nutze ich allerdings für mein Lookbook ein Widget, das kein https unterstützt.

Wie kann ich den aufbau der seite 12tefrau.de/lookbook/ per http erzwingen?

Ich gehe mal davon aus, dass ich das per htaccess machen kann/muss, allerdings komme ich da nicht weiter -.-

Kann mir jemand weiterhelfen? :)

Andy

REST-API: Warum kann Ich das Attribute-Feld 'attr4' nicht über die REST-API befüllen?

$
0
0

Ich möchte das Feld 'attr4' (Freitext) über die REST-API befüllen:

$minimalTestArticle = array(
    'name' => 'ABC',
    'active' => true,
    'taxId' => 1,
    'supplier' => 'XYZ',
    'attr4' => 199,
    'categories' => array(
        array('id' => 2),
    ),
    'mainDetail' => array(
        'number' => '123456',
        'prices' => array(
            array(
                'customerGroupKey' => 'H',
                'price' => 139,
                'pseudoPrice' => 199,
            ),
            array(
                'customerGroupKey' => 'EK',
                'price' => 239,
                'pseudoPrice' => 299,
            ),
        ),
    ),
    'filterGroupId'  => 3,
    'propertyValues' => $propertyValues,
);

Auch bei denVarianten geht das nicht.

Ist das nicht möglich oder mache Ich da etwas falsch?

 


Wie kann ich dem Artikel Frei-Felder hinzufügen, die in die Bestellung gespeichert werden

$
0
0

Hallo,

ich versuche mich an einem kleinen Konfigurator und möchte hierzu dem Kunden die Möglichkeit bieten ein Bild hochzuladen.

Die entsprechenden Templateanpassugen (js/less/artikeltemplate) habe ich realisiert,.. Allerdings steige ich nicht durch, den Bestellprozess, bzw dass entsprechende Model für die Order dahingehend zu erweitern, dass ich den Bildpfad speichern kann.

Bin dankbar für jeden Tipp/Anregung und teile das entstehende Ergebnis gerne.

Gruß Fabian

MediaService -> virtuellen Pfad ausgeben

$
0
0
Hallo,
möchte auf ein Bild zugreifen. Der Pfad ist ja nicht wie in der DB hinterlegt, es wird ein "virtual paths" angelegt. Jetzt muss ich ja diesen Pfad erstellen, damit ich im tpl drauf zugreifen kann.
In der Bootstrap habe ich geschrieben:
$path = $subcat&#91;$n&#93;&#91;'path'&#93;;
$mediaService = $container-&gt;get('shopware_media.media_service');
$url = $mediaService-&gt;getUrl($path);
Aber der gibt mir einen Fehler aus.
Fatal error: Call to a member function getUrl() on null in .../html/engine/Shopware/Plugins/Local/Frontend/HPCategoryListing/Bootstrap.php on line 62
503 Service Unavailable

Bestimmt habe ich wieder etwas falsch verstanden. Würde mich freuen, wenn mir wieder jemand helfen könnte.

Gruß

Google Shopping Feed identifier FALSE

$
0
0

Hallo Zusammen

Habe meinen Google Shopping Feed soweit fertig und läuft auch ohne Fehler durch.
Muss jedoch bei ein paar wenigen Artikeln bei welchen ich keinen EAN habe, manuell identifier FALSE reinschreiben.

Kann mir kurz jemand sagen wie der Befehl lauten muss für:

  • Sofern das Feld EAN leer ist, muss Wert für <g:id>{$sArticle.articleID|escape}</gid> sein. (anstatt: {$sArticle.ean|escape} )
  • Sofern das Feld EAN leer ist, muss der Wert: g:identifier_exists>FALSE</g:identifier_exists> eingetragen werden. 


So sieht das Ganze bisher aus:

&lt;item&gt; 
    &lt;g:id&gt;{$sArticle.ean|escape}&lt;/g:id&gt;
    &lt;title&gt;{$sArticle.name|strip_tags|strip|truncate:80:"...":true|escape} {$sArticle.additionaltext|escape}{#S#}&lt;/title&gt;
    &lt;description&gt;{$sArticle.description_long|strip_tags|strip|truncate:900:"..."|escape}&lt;/description&gt;
    &lt;g:google_product_category&gt;{$sArticle.attr10|escape:"xml"}&lt;/g:google_product_category&gt;
    &lt;g:product_type&gt;{$sArticle.articleID|category:" &gt; "|escape}&lt;/g:product_type&gt;
    &lt;link&gt;{$sArticle.articleID|link:$sArticle.name|escape}&lt;/link&gt;
    &lt;g:image_link&gt;{$sArticle.articleID|articleImages:$sArticle.ordernumber:1:"&gt;"|escape}&lt;/g:image_link&gt;
    &lt;g:condition&gt;new&lt;/g:condition&gt;
    &lt;g:availability&gt;in stock&lt;/g:availability&gt;
    &lt;g:price&gt;{$sArticle.price|format:"number"} {$sCurrency.currency}&lt;/g:price&gt;
    &lt;g:brand&gt;{$sArticle.supplier|escape}&lt;/g:brand&gt;
    &lt;g:gtin&gt;{$sArticle.ean|replace:"|":""}&lt;/g:gtin&gt;
    &lt;g:shipping&gt;
       &lt;g:country&gt;CH&lt;/g:country&gt;
       &lt;g:service&gt;Standard&lt;/g:service&gt;
       &lt;g:price&gt;{$sArticle|@shippingcost:"prepayment":"ch"|escape:number} {$sCurrency.currency}&lt;/g:price&gt;
    &lt;/g:shipping&gt;
  {if $sArticle.changed}&lt;pubDate&gt;{$sArticle.changed|date_format:"%a, %d %b %Y %T %Z"}&lt;/pubDate&gt;{/if}        
&lt;/item&gt;​



Besten Dank für eure Hilfe!

Einkaufswelten category_selection

$
0
0

Hallo zusammen,

ich bin gerade dabei eine Erweiterung für die Einkaufswelten zu schreiben. Ich würde gerne die Category Selection, wie im Kategorie Teaser verwendet, nutzen, nur leider funktioniert dies aus mir nicht erklärlichen Gründen nicht. Ich finde im Code aber auch keinen Storenamen oder ähnliches...

Kann mir jemand auf die Sprünge helfen?

 

 $component-&gt;createComboBoxField(
                array(
                    'name' =&gt; 'heroChangerCategory',
                    'store' =&gt; 'base.category_selection',
                    'fieldLabel' =&gt; 'KategorieLink',
                    'supportText' =&gt; 'Kategorie auf die verlinkt werden soll',
                    'displayField' =&gt; 'name',
                    'valueField' =&gt; 'id',
                )
        );

Funktioniert so nicht. Aber auch wenn ich, wie in der Doku als Beispiel beschrieben als Store "base.PaymentStatus" angebe wird die Box auch nicht befüllt, sondern ich bekomme den selben Fehler wie mit meinem Code:

Unable to load template snippet 'backend/index/base/category_selection.js|backend/swag_import_export/menu_entry.tpl' in Smarty\sysplugins\smarty_internal_templatebase.php on line 127

Any thoughts?

 

Vielen Dank!

Viele Grüße

Björn

Belegausstellung lt. Registrierkassenpflicht

$
0
0

Hallo zusammen!

Ich hätte eine Frage zur Belegausstellung in Shopware:

Derzeit läuft das ja in der Art ab, dass bei einer Bestellung eine Rechnung generiert werden kann, die in Folge durch eine Stornorechnung wieder auf Null gesetzt wird, was auch ok ist!

Leider ist es so das bei Änderung der Bestellung sowohl die Rechnung als auch Stornorechnung überschrieben wird d.h. es gibt keine Historie bei diesen generierten Dokumenten.

Da für eine Nutzung des Shops als Registrierkassa, müssen die Rechnungen aber lückenlos aufsteigend und unveränderbar gespeichert werden.

Meine Frage: Hat jemand sowas schon entwickelt bzw. gibt es in Shopware eine Einstellung die das ermöglicht?

Addenum: Gibt es ein Verwaltungsplugin für Rechnungen (außer Billsafe)?

 

Danke lg. Andreas

 

 

 

Viewing all 2871 articles
Browse latest View live


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