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

API REST artikel für bestimmte kundengruppen sperren

$
0
0

Hallo,
ich hätte wiedermal eine frage.
und zwar möchte ich die artikel über die API REST schnittstelle per xml importieren.
ist es da bereits möglich, artikel für bestimmte kundengruppen zu sperren?

beispiel: ein artikel soll es im shop geben aber nicht für die kundengruppe amazon. was zu folge hätte, dass dieser artikel nicht für amazon zu verfügung steht.

vielen dank schonmal:-)
mfg
dutchy


CronRating anpassen wenn Checkbox - Einwilligung für Newsletter gegeben ist

$
0
0

Hallo zusammen,

ich möchte gerne die Shopware eigene E-Mailaufforderung zur Artikelbewertung Datenschutzkonform anwenden.
Hier habe ich mich bisher gesträubt, da hierfür ja eine extra Einwilligung geholt werden muss...

Nun ist mir aber eine Idee gekommen, dass man das Ganze ja zusammen bzw. anstatt der Newsletter-Einwilligung  beim Bestellabschluß einholen könnte.


Idee wäre also den Text für den Newsletter (den ich nicht nutze) umzuschrieben in die Einwilligung zur E-Mail Benachrichtigung für die Shop-interne Artikelbewertung.

Den Cronjob könnte man ja in der Bootstrap.php dahingehend anpassen, dass man in der Tabelle s_user prüft, ob newsletter == 1 gesetzt ist...
und über die OrderID kann ich ja auf den User ableiten...

Was denkt Ihr darüber?
 

Kann mich hier jemand bzgl. der Erweiterung des SQL-Statements unterstützen wie ich die Bootstrap.php dahingehend erweitern könnte?

Danke und viele Grüße,
Sven

Mobile Nav funktioniert auf einer Seite nicht

$
0
0

Hallo Zusammen,
folgendes Phänomen:
Auf allen Shopseiten funktioniert die mobile Naviagtion (Burger) wie erwartet, nur auf einer Seite (einer Herstellerliste die durch ein Plugin generiert wird), funktioniert sie nicht und es gibt folgende Fehlermeldung:

TypeError: Cannot read property 'ownerDocument' of undefined

 /web/cache/1477053629_c94c472a250ac0e1847fab0ed37cee35.js:2:12161 Function.ga.contains()

 /web/cache/1477053629_c94c472a250ac0e1847fab0ed37cee35.js:333:594 Plugin.onClickElement()

 /web/cache/1477053629_c94c472a250ac0e1847fab0ed37cee35.js:2:3728 HTMLAnchorElement.f()

 /web/cache/1477053629_c94c472a250ac0e1847fab0ed37cee35.js:2:38475 HTMLAnchorElement.dispatch()

 /web/cache/1477053629_c94c472a250ac0e1847fab0ed37cee35.js:2:35250 HTMLAnchorElement.r.handle()

Der Plugin Autor sagt das das Plugin nicht für den Fehler verantwortlich ist.
Weiis jemand ob ev. bei der Pluginprogammierung irgendwelche Dinge beachtet werden müssen , weil sonst typischer Weise solch ein Fehler
erzeugt wird?

Vielen Dank

P.

forward nach erfolreichem Login

$
0
0

Hi

 

Ich möchte in eigenen Controller im Vorfeld den User abfangen. Sollte er keine Session haben, dann muss dieser sich zuerst einloggen.

Nach dem Login muss er zum Controller zurückspringen.

 

Aber mit dem folgenden Forward, ist das Login mit dem minimierte Header aus dem Warenkorb ausgestattet.

Sobald ich sTarget und sTargetAction weglasse, ist der Header korrekt dargestellt.

Was mache ich falsch ? Bräuchte unbedingt Hilfe.

 public function preDispatch()
    {
        $this->admin = Shopware()->Modules()->Admin();
        $this->View()->assign('sUserLoggedIn', $this->admin->sCheckUser());

        if (!$this->View()->getAssign('sUserLoggedIn')) {

            $this->forward('index', 'register', null, array('sTarget'=> 'uploader', 'sTargetAction' => 'index'));



        }
    }

 

SW 5.2 - Plugin Entwicklung Backend - Category.Store

$
0
0

Hallo, die Frage wurde glaub ich schon mal gestellt aber ldeir nicht komplett beatwortet.

Wir würden gerne mit einem eigegen Plugin auf einen vorhandenen Store (z.B. Catgory,Country etc.) zurückgreifen.

Leider funktioniert das ja nicht einfach indem man den Store läd:


Ext.define('Shopware.apps.MyPlugin.view.detail.MyPlugin', {
    extend: 'Shopware.model.Container',
    padding: 20,

    configure: function() {
        var me = this;
        return {
            controller: 'MyPlugin',
            fieldSets: [
                {
                    title: 'Details',
                    layout: 'fit',
                    fields: {
	                    username: {
                            fieldLabel: '{s name=username}Name{/s}',
                            allowBlank: false,

                        },
                        maincategory: {
                            xtype: 'combobox',
                            fieldLabel: '{s name=emailgroup}zugewiesene Shop-Kategorie{/s}',
                            displayField: 'description',
                            valueField: 'id',
                            allowBlank: true,
                            store:Ext.create('Shopware.apps.Base.store.Category').load(),
                        },

                    }
                }
            ]
        };
    }
});

Kann mir da jemand weiterhelfen? Ich würde dann gerne auch ein kleines Beispiel Plugin hier posten.

 

Danke & Viele Grüße

Oliver

PHP Update

$
0
0

Ein blutiger Anfänger fragt: Wo und wie kann ich das PHP updaten? 

Shopware zeigt mir an, dass meine PHP Version veraltet ist

Farbvarianten auf Listings

$
0
0

Hallo zusammen!

in einem Projekt von mir sollen die Farbvarianten einzeln auf den Listings erscheinen - und nicht nur die Stammartikel.

Durch Recherche bin ich auf folgenden Foren-Thread gestoßen, bei dem einer der Shopware Mitarbeiter beschreibt, wie das technisch zu lösen sei:
https://forum.shopware.com/discussion/35578/artikelvarianten-als-eigenstaendige-artikel-in-kategorieuebersicht#Comment_154695

Ich habee auf diesem Fundament eine Anpassung durchgeführt und dies hat auch wunderbar funktioniert. Allerdings möchte ich ungerne direkt in Shopware-Klassen eigenen Code schreiben und wollte daher diese Anpassungen in ein Modul auslagern. Dabei allerdings stehe ich da vor einem Problem:

Wenn ich in einem Plugin die QueryBuilderFactory (aus dem SearchBundleDBAL) beim Event "Enlight_Bootstrap_AfterInitResource_shopware_searchdbal.dbal_query_builder_factory" durch eine eigene ersetzen, welche ebenfalls das QueryBuilderFactoryInterface implementiert, dort die gewünschten Änderungen durchführen und die eigene QueryBuilderFactory, anstelle der ursprünglichen, in den Shopware DI-Container setzen, funktioniert das erstmal problemlos.

Allerdings kommt dann das große Problem, dass diverse Klassen (z.B. alle FacetHandler aus dem SearchBundleDBAL) im Konstruktor explizit die QueryBuilderFactory aus dem Namespace Shopware\Bundle\SearchBundleDBAL\QueryBuilderFactory entgegen nehmen. Dadurch funktioniert dann der Shop nicht mehr, da dort dann versucht wird die eigene QueryBuilderFactory reinzureichen.

Daher folgende Fragen:

1.) Gibt es hier irgend einen Weg das gewünschte Feature als Plugin umzusetzen - ohne direkt den Shopware-Code zu editieren?
2.) Wieso nehmen u.a. die ganzen FacetHandler nur direkt die Shopware\Bundle\SearchBundleDBAL\QueryBuilderFactory entgegen und nicht alle Objekte von Klassen, die das QueryBuilderFactoryInterface implementiert haben?

Vielen Dank im Voraus für Hilfe oder Gedankenanstöße jeder Art! :)

shopware 5.2 und swagAttr

$
0
0

wie ist der update weg für shopware ag plugin "Zusätzliche Artikel Attributsfelder"?
http://community.shopware.com/Plugin-Zusaetzliche-Artikel-Attribute_detail_1046.html

seit shopware 5.2 werden diese attribute bei uns nicht mehr in backend artikel maske angezeigt, obwohl in datenbank tablle s_attribute_configuration das feld display_in_backend auf 1 gesezt ist. und ich kann die von der neuen freitext-verwaltung nicht editieren (sind in der liste, aber der editiermaske ist ausgegraut)


REST API Import Artikel mit Varianten und Attribute

$
0
0

Hallo Leute,

ich versuche über das Rest-API ein Artikel mit Varianten anzulegen. Wobei die erste Variante die Hauptvariante ist. Mein Ziel ist es, das an dieser Variante die Attribute mit importiert werden.

Folgende JSON-Struktur habe ich:

{
  "name": "Test",
  "mainDetail": {
    "number": "12"
  },
  "variants": [
    {
      "isMain": true,
      "number": "12",
      "attribute": {
        "attr1": "Test Attr1"
      }
    }
  ]
}

  (Struktur ist nicht komplett, dient nur zur Anschauung relevanter Daten)

Wenn ich das importiere, dann legt er den Artikel an und die Variante als Hauptvariante.
Der Artikel sowie die Variante haben dann aber NICHT das Freitextfeld 1 (attr1), so wie in den Freitextfeldern in den Artikel Grundeinstellungen definiert.
Wenn ich den Artikel ohne Varaiante importiere und die "attribute" in die "mainDetail" verschiebe importiert er diese auch.
Er importiert sie auch, wenn ich die Variante nicht als Hauptvariante deklariere.

Also woran kann es liegen das unter angabe der Variante als Hauptvariante er das "attribute" set nicht mit übernimmt? Hab ich da das Model von Shopware noch nicht verstanden?
Ich verwende Shopware 5.1.6

Auf Hilfe freu ich mich sehr :)

 

Viele Grüße, Michael

SW 5.2 - Plugin Entwicklung Backend - Bild Upload

$
0
0

Hallo, wir haben ein kleines Backend Plugin mit dem man über den Media Store ein Bild hochladen kann. Eigenes Model.

Model:

    fields: [
        { name : 'id', type: 'int', useNull: true },
        { name : 'username', type: 'string' },
        { name : 'timeandtext', type: 'string' },
        { name : 'picture', type: 'string' },
        { name : 'garage', type: 'string' },
        { name : 'position', type: 'int' }
    ],
    associations: [{
        relation: 'ManyToOne',
        field: 'picture',
        type: 'hasMany',
        model: 'Shopware.apps.Base.model.Media',
        name: 'getMedia',
        associationKey: 'media'
    }]

 

View/Detail:

picture: {
        xtype: 'shopware-media-field',
        fieldLabel: '{s name=picture}Bild{/s}',
        valueField: 'path',
        allowBlank: false
    },

Funktioniert so weit auch. Der Pfad des Bildes wird in der Datenbank richtig gespeichert.

Problem ist aber das ich beim erneuten Aufruf der Detail Seite das Bild nicht mehr sehe:

Ist das mit SW 5 anders? Hab gesehen das der Pfadaufbau natürlich ein anderer ist, aber das sollte doch nicht stören oder?

Bin dankabr für jeden Hinweis!!!!

Danke & Grüße

Oliver

Cronjob - You must call Zend_Session::setId()

$
0
0

Hallo,

ich habe einen Cronjob, welcher über die http Cron Url oder über die Console mit shopware.php /backend/cron korrekt läuft.
Ruft man den Cronjob aber über das CLI auf (console sw:cron:run) erhalte ich die Meldung:

You must call Zend_Session::setId() before any output has been sent to the browser; output started in ...

Der Fehler wird durch folgenden Code produziert:
 

$userResource = \Shopware\Components\Api\Manager::getResource('customer');
$newUser = $userResource->create($data);

Der Fehler tritt dann genau hier auf:
https://github.com/shopware/shopware/blob/5.2/engine/Shopware/Components/Api/Resource/Customer.php#L442

Der Fehler deutet doch darauf hin, dass mit Session gearbeitet wird, diese aber in der Console nicht zur Verfügung steht, oder?

Hat jemand einen Tipp wie ich das Problem lösen kann?

danke & gruß
Ottscho
 

 

 

SW 5.2 - Plugin Entwicklung Backend - Id anzeigen lassen

$
0
0

Hallo,

wir haben ein kleines CRUD Plugin und würden uns gerne in der Listingansicht die ID anzeigen lassen. lt. Shopware Doku wird diese ja nicht angezeigt:

Generierung der Spalten

Das Shopware.grid.Panel erwartet bei der Instanzierung einen übergebenen Ext.data.Store, welches ein Ext.data.Model hinterlegt hat. Dieses Model dient als Grundlage für die Generierung der Spalten. Standardmäßig wird für das Erzielen schneller Resultate in der Backend Entwicklung für jedes Feld des Models, abgesehen vom id Feld, eine Spalte erzeugt

 

http://community.shopware.com/Shopware-Backend-Komponenten-Listingansicht_detail_1406.html

Wie kann man es denn im Plugin steuern um die ID doch anzeigen zu lassen?

Danke & Viele Grüße Oliver

htacces - Vorgehensweise und Schreibweise für Umleitung so korrekt?

$
0
0

Hallo,

in Kürze wird mein SW-Shop - der derzeit unter einer später nicht mehr zu verwendenden Subdomain läuft - online gehen. Da es sich um einen Wechsel des Shopsystems handel, habe ich alle URLs so angelegt, wie sie im derzeitigen Shopsystem auch benannt sind. D.h. am Tag X wird die Domain vom aktiven Shop auf den SW-Shop geleitet (bzw. umgehostet), so dass die Deeplinks alle noch passen sollten.

Ich hoffe, meine Denkweise ist so korrekt?

Einige URLs des alten Shops, wird es aber im neuen Shop nicht mehr geben - leider mehr, als ich zunächst angenommen habe. Im alten Shop z. B. sind die Artikel, die es in 4 Farben gibt, auch als 4 Artikel angelegt. Bei SW wird das ein Variantenartikel. Dieser hat eine von mir definierte URL. D.h. die 3 übrigen für die weiteren Farben sind ungenutzt.

Mein Plan war nun, eine 301er Umleitung in der htaccess zu machen, und zwar von den 3 übrig gebliebenen URLs auf die eine, die erhalten bleibt.

Gäbe es hierzu noch eine Alternative? Das Freitextfeld für die eigene URL ist derzeit auch bei den Varianten mit der ersten URL gefüllt. Könnte ich hier bei den weiteren 3 Farben das Feld mit den übrig gebliebenen 3 URLs füllen?

Wenn die htaccess-Variante die richtige ist, ist dann die Schreibweise so wie ich sie bisher bei anderen Seiten verwende auch bei SW möglich:


RewriteEngine On
Options +SymLinksIfOwnerMatch
RewriteCond %{HTTP_HOST} ^domain.de
RewriteRule (.*) http://www.domain.de/$1 [R=301,L]


RewriteRule ^/Verzeichnis/Seite$ /Verzeichnisneu/seiteneu [R=301,L]

RewriteRule ^/seitealt$ /seiteneu [R=301,L]

Unter <IfModule mod_rewrite.c> ist die erste Zeile meines Codes schon vorhanden. Bedeutung der Zeile 2 weiß ich leider nicht mehr. Zeilen 3 und 4 leiten glaube ich von ohne www. zu mit www. um.

Zeilen 5 und 6 sind die derzeitigen Schreibweisen. Die URLs haben im alten und im neuen Shop keine Endung htm/html. Die Domain selbst ist bei alt und neu identisch.

Einsetzen würde ich meine Zeilen vor </IfModule> und nach den bereits vorhandenen SW-Einträgen.

Ich hoffe, es versteht jemand meine wirren Erklärungen und kann mir weiterhelfen, den testen kann ich es ja schlecht, da die Domains noch unterschiedlich sind.

LG

Suhopware Commands

$
0
0

Hallo, 

ich möchte in meinem Console Command ein anderes Console Command am aufrufen. 
Habe in der Symfony Dokumentation folgendes gefunden: 
http://symfony.com/doc/current/console/command_in_controller.html


Smyfony Code:

$kernel = $this->get('kernel');
$application = new Application($kernel);
$application->setAutoExit(false);

$input = new ArrayInput(array(
   'command' => 'swiftmailer:spool:send',
   '--message-limit' => $messages,
));
// You can use NullOutput() if you don't need the output
$output = new BufferedOutput();
$application->run($input, $output);

Mein Code (Beispiel Command):

$command = new RebuildCategoryTreeCommand();
$command->run(new ArrayInput(array()), new BufferedOutput());

In der Console bekomme ich folgenden Fehler:

PHP Fatal error:  Call to a member function get() on a non-object in /.../vendor/symfony/console/Command/Command.php on line 615
Fatal error: Call to a member function get() on a non-object in /.../vendor/symfony/console/Command/Command.php on line 615
 

Der Fehler kommt zustande, weil das HelperSet nicht definiert ist. 

Hat jemand eine Idee?

GELÖST: Abfrage für Restbestand, Warenbestand, Lagerbestand?

$
0
0

Hallo,

ich wollte gerne ein badge einbauen mit einer Abfrage der Artikelmenge wlche noch zur verfügung steht, sprich auf lager.

Derzeit habe ich ein badge mit ausverkauft, sie sparen % und nun hätte ich gerne noch Restbestand.

Also, mehr wie 1 und weniger wie 10 Artikel soll dann das badge angezeigt werden mit de Text Restbestand: 8 Stück oder was auch immer noch an bestand da ist.

Ich habe mal das zusammengesetzt, funzt aber nicht wie ich das möchte... :-)

{* Restbestand badge *}
		{if $sArticle.laststock}
		&lt;div style="background: #ff0000; color: #ffffff; font-weight: 14px; padding: .1875rem .625rem .1875rem .625rem; margin: 0rem 0rem .3125rem 0rem; border-top-right-radius: 3px; border-top-left-radius: 3px; display: block; position: relative; float: left;"&gt;
                Nur noch
                {$sArticle.instock  ==&gt; "1" &amp;&amp; ==&lt; "10"}&lt;span class="artikel--restbestand"&gt;&lt;i class="icon--cross"&gt;&lt;/i&gt; Restbestand!&lt;/span&gt;
                &lt;/div&gt;
                {/if}

Jemand hier der mir da auf die Sprünge helfen kann?

Komme da mit der Abfrage wenn mehr als 1 und weniger als 10 nicht klar, leider!

Danke schön.... Silvia


Backendplugin und aulesen eines Datenfeldes bei Magnalister

$
0
0

Hallo

 

ich bastel grad an meinem ersten Backendplugin und möchte dazu gern ein Feld von Magnalister auslesen und an anderer Stelle ausgeben.

 

Magnalister erzeugt nach jedem Kauf von zb Ebay ein Feld das unter Bestellungen -> Bestellungsdetails einer Bestellung -> reiter Magnalister  den Ebaynamen ausgibt.

Diesen Ebaynamen möchte ich gern auslesen und woanders ausgeben.

Kann mir wer Sagen wie dieses Feld heisst? bzw wie ich rausfinde wie das heisst um es dann woanders auszugeben?

 

Das würde sehr helfen.

 

Vielen Dank schonmal für alle Tipps und Hinweise die hoffentlich eingehen ;)

 

 

PayPal Ratenzahlung Integration

$
0
0

Hello liebe Community!

Bietet jemand von euch schon die PayPal Ratenzahlung im Shop an?

Habe ein Problem bei der Integration. Es wird ein Integrationsanleitung über PayPal angeboten beim anmelden, aber alles was passiert ist, dass eine ZIP-Datei namens SwagPaymentPayPalInstallments heruntergeladen wird. Scheint für mich so als müsste ich die noch zusätzlich auf meinen Server kopieren? Verstehe ich richtig, dass ein Plugin download plus konfiguration nicht reicht? Konnte zumindest keine PayPal Ratenzahlung im Shop aktivieren. Bis auf ein Logo wurde mir im Shop nichts angezeigt.

Habt ihr schon Erfahrungen oder Tipps? Wäre dankbar für jegliche Infos.

 

Mit freundlichen Grüßen,

 

Matthias 

 

 

Steuerprüfung alle Rechnungen aus Shopware mit Porto falsch

$
0
0

Hallo ich habe gerade eine Finanzprüfung und da sind mir alle Shopwarerechnungen auf den Fuß gefallen und ich wurde was das Porto angeht geschätzt.

Ich verkaufe nur an Endkunden.
Im verwenden das Rechnungsformular von Shopware.

Folgender Sachverhalt.

Preise im Shop sind mit Brutto angegeben. Auf der Rechnung unter Positionen werden diese auch mit Brutto ausgegeben.

Position 1 Lego 10€
Position 2 Versandkosten 4€

Gesamt Netto
MWST:

Gesamt Brutto 14

Für mich also richtig da die Versandkosten ja mit 19% berechnet werden.

 

Der Prüfer sieht das anders. Er möchte das die Beträge in Netto aufgeführt werden und unten erst das Brutto steht.

1 Position Lego 8€ Netto

2 Position Versandkosten 3,20€ Netto

Gesamt Netto:
MWST

Gesamt Brutto: 14€

 

Ist das so richtig ? Das Problem müssten doch mehr haben oder? Kann man das einfach umstellen oder muss ich da die ganzen Formulare anpassen. Da die Produktberechnung ja anders erfolgen muss.

Bitte um Hilfe....Danke

Template-Snippets s name=$stringVar funktioniert nicht

$
0
0

Hallo all

kann mir jemand den Unterschied erklären? 

{s name="snippet"}{/s}

und

{assign var=test value="snippet"}
{s name=$test}{/s}

 

Denn die erste Variante funktioniert, die zweite nicht. 

Wäre für eine funktionierende Lösung mit einer Variable sehr dankbar. 

 

vielen Dank im Voraus! 

 

In ein Frontend Plugin ein Backend Javascript einbinden - geht das überhaupt?

$
0
0

Hallo liebe Shopwaregemeinde,

viele kennen bestimmt das Plugin "Sloagan des Tages".

Zu finden hier:

http://community.shopware.com/Getting-Started_detail_966.html

Alles läuft einwandfrei.

Nun würde ich gerne in die Bootstrap eine Function einfügen, die es mir erlaubt eigene Javascriptbefehle im Backend auszuführen.

Eigentlich möchte ich über Javascript eine Uhr im Backend anzeigen, was recht simpel ist.

Nun kommt meine Frage:

Ist es überhaupt möglich in ein Frontend Plugin Funktionen für das Backend zu integrieren?

Ich stöbere jetzt schon seit Stunden im Forum und bei Google herum, aber gut gemeinte Beispiele funktionieren leider nicht.

Diesen Beitrag fand ich sehr interessant:

https://forum.shopware.com/discussion/34222/header-tpl-fuer-das-backend-um-eigene-css-js-erweitern

 

Aber immer noch keine Lösung in Sicht.

Es müßte doch irgendwie mit folgendem Code möglich sein, oder?

 public function install() {

        $event = $this->subscribeEvent(
			'Enlight_Controller_Action_PostDispatch_Backend_Index',
			'onPostDispatchBackendIndex'
		);

    	$this->subscribeEvent($event);

        return true;
    }

	public function onPostDispatchBackendIndex(Enlight_Event_EventArgs $args){
      $request = $args->getSubject()->Request();
      $response = $args->getSubject()->Response();
      $view = $args->getSubject()->View();
      $args->getSubject()->View()->addTemplateDir($this->Path() . 'Views/');

      $view->extendsTemplate('backend/index/CssImport/header.tpl');
   }

 

Ich versuche das jetzt schon zum 100. Male, aber ich habe leider keinen Erfolg - weshalb ich Euch um Hilfe bitten möchte.

Zumal ich davon ausgehe das auch noch andere User Interesse an dieser Möglichkeit hätten.

 

Am liebsten wäre mir ein event welches feuert wenn ich mich in Backend einlogge und mir dann meine JS-Datei, aus meinem Plugin-Verzeichnis, lädt.

Ich würde mich wirklich SEHR freuen, wenn mir hierbei jeman helfen könnte.

 

L.G.

Viewing all 2871 articles
Browse latest View live


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