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

Wie fügt man ein neues Tab hinzu?

$
0
0

Hallo Leute,

Wie fügt man ein neues Tab wie hier https://developers.shopware.com/developers-guide/backend-extension/?_ga=1.259441865.2100811978.1489157753#example-#2:-custom-components hinzu?

app.js

//{block name="backend/article/application"}
//{$smarty.block.parent}
//{include file="backend/sd_product_tab/view/detail/my_own_tab.js"}
//{/block}

window.js

//{block name="backend/article/view/detail/window"}
//{$smarty.block.parent}
Ext.define('Shopware.apps.SdProductTab.view.detail.Window', {
    override: 'Shopware.apps.Article.view.detail.Window',

    getTabs: function() {
        var me = this,
            result = me.callParent();

        result.push(Ext.create('Shopware.apps.SdProductTab.view.detail.MyOwnTab'));

        return result;
    }
});
//{/block}

my_own_tab.js

Ext.define('Shopware.apps.SdProductTab.view.detail.MyOwnTab', {
    extend: 'Shopware.apps.Article.view.detail.Base',
    padding: 10,
    title: 'MyOwnTab',

    initComponent: function() {
        var me = this;

        me.items  =  [{
            xtype: 'label',
            html: '<h1>Hello world</h1>'
        }];

        me.callParent(arguments);
    }
});

SdProductTab.php

<?php
namespace SdProductTab;

use Enlight_Controller_ActionEventArgs;
use Shopware\Components\Plugin;

class SdProductTab extends Plugin {
 public static function getSubscribedEvents() {
  return [
   'Enlight_Controller_Action_PostDispatchSecure_Backend_Article' =>
    'onArticlePostDispatch'
  ];
 }

 /**
  * @param Enlight_Controller_ActionEventArgs $args
  */
 public function onArticlePostDispatch( Enlight_Controller_ActionEventArgs $args ) {
  $controller = $args->getSubject();

  /** @var \Enlight_Controller_Action $controller */
  $view    = $controller->View();
  $request = $controller->Request();

  $view->addTemplateDir( __DIR__ . '/Views' );

  if ( $request->getActionName() == 'index' ) {
   $view->extendsTemplate( 'backend/sd_product_tab/app.js' );
  }

  if ( $request->getActionName() == 'load' ) {
   $view->extendsTemplate( 'backend/sd_product_tab/view/detail/window.js' );
  }
 }
}

Struktur:

 

Hoffe jemand kann helfen. wir benutzen  5.12.20. 

LG


Problem: shopware_attribute.crud_service und Import/Export Advanced

$
0
0

Guten Morgen zusammen,

über folgenden Code-Schnipsel erstelle ich neues Attribut für Artikel. Funktioniert alles soweit einwandfrei.

function createAttributes()
{
	$service = $this->get('shopware_attribute.crud_service');
	$service->update('s_articles_attributes', 'webarbeit_article_data', 'combobox', ['label' => '...entfernt...', 'supportText' => '...entfernt...', 'helpText' => '',
	'translatable' => true,
	'displayInBackend' => true,
	'entity' => 'Shopware\Models\Article\Article',
	'position' => 100,
	'custom' => true,
	'arrayStore' => [...entfernt...);
}

Nun binde ich dieses Attribut in ein Profil von Import/Export Advanced ein (getest mit neues Feld und neues Attribut).

Jeweils tritt beim Export folgender Fehler auf:

[Semantical Error] line 0, col 2453 near 'webarbeitArticleData': Error: Class Shopware\Models\Attribute\Article has no field or association named webarbeitArticleData

Hat jemand eine Idee, wie der Fehler beseitigt werde kann? Und das Attribut exportiert wird.

Viele Grüße und Danke vorab,
Frank

Plugin wird im Theme Manager nicht gefunden ?

$
0
0

Guten Tag,

ich bin gerade dabei mein erstes Plugin zu entwickeln, allerdings wird dieser nicht im Theme Manager angezeigt.

In dem Ordner engine\Shopware\Plugins\Local\Backend habe ich den Ordner erstesPlugin mit der Bootstrap.php erstellt.

Inhalt der Bootstrap.php : 

 

<?php
 class Shopware_Plugins_Frontend_ertstesPlugin_Bootstrap extends Shopware_Components_Plugin_Bootstrap
 {
	public function getVersion()
	{
		return "1.0.0";
	}

	public function getLabel()
	{
		return "erstesPlugin";
	}

	public function install()
	{
		return true;
	}
 }
 

 

 

Plugin eigene Views

$
0
0

Guten Tag,

leider habe ich noch ein Problem bei der Entwicklung eines Plugins. Und zwar will ich die index.tpl überschreiben, jedoch tut sich dort nichts.

Pfad der Dateien :

index.tpl = C:\Bitnami\shopware-5.2.18-0\apps\shopware\htdocs\engine\Shopware\Plugins\Local\Frontend\HansPlugin\Bootstrap.php

Bootstrap.php = C:\Bitnami\shopware-5.2.18-0\apps\shopware\htdocs\engine\Shopware\Plugins\Local\Frontend\HansPlugin\Views\frontend\detail\index.tpl

Inhalt der Bootstrap.php : 

<?php

	class Shopware_Plugins_Frontend_HansPlugin_Bootstrap extends Shopware_Components_Plugin_Bootstrap {

		public function install()
		{
			$this->subscribeEvent("Enlight_Controller_Action_PostDispatchSecure_Frontend_Detail","test");
			return true;
		}

		public function test(Enlight_Event_EventArgs $args)
		{
			$subject = $args->get("subject");
			$viewArticle = $subject->View()->getAssign("sArticle");
			$viewArticleName = $viewArticle["articleName"];
			$viewArticleName = strrev($viewArticleName);
			$subject->View()->assign("umgedreht",$viewArticleName);
			$subject->View()->addTemplateDir(__DIR__ . "/Views");
		}



		public function uninstall()
		{
			return true;
		}

		public function enable()
		{
			return parent::enable();
		}

		public function disable()
		{
			return parent::disable();
		}

		public function update($version)
		{
			if($version == "1.0.0")
			{
				// Bugfix
				return true;
			}
			return parent::update($version);
		}


	}

Inhalt der Index.tpl : 

{extends file="parent:frontend/detail/index.tpl"}

{* Custom header *}
{block name='frontend_index_header'}
	<h1>Test</h1>
    {$umgekehrt}
{/block}

Vielen Dank im Voraus.

Wie komme ich an die Produktbilder?

$
0
0

Hallo alle zusammen,

Über folgenden Code komme ich sehr komfortabel an fast alle Produktdaten:

$articleDetail = Shopware()->Models()->find('Shopware\Models\Article\Article', 100);

Leider scheitere ich jedoch an der Abfrage der Produktbilder. Es gibt ja eine vom Namen her passende Funktion:

$articleDetail->getImages();

... nur leider erhalte ich damit nicht das gewünschte Ergebnis.

Kann mir da vielleicht mal jemand einen Tipp geben?

 

 

Css einfügen Pfad?

$
0
0

Hallo,

ich habe in der Theme.php protected $css = array('src/css/test.css'); unten angehängt. 

Wenn ich diese Datei von der Theme.php ausgehend in src/css/test.css speicher passiert aber nichts. Von welchem Pfad ist die Angabe bitte ausgehend?

vordefinierte CSS Klassen , es passiert nichts

$
0
0

Hallo,

leider habe ich wieder ein Problem, welches ich noch gelöst bekomme.

Ich habe die index.tpl nun mit folgendem Inhalt überschrieben :

<div class="content--title">Buttons</div>
<button class="btn is--primary is--large">primary Button</button> <br><br>
<button class="btn is--secondary is--large">sekundärer Button</button> <br><br>
<button class="btn is--large">großer Button</button><br><br>

<div class="spacer">
	<i class="icon--arrow-right"></i>
</div>

<div class="spacer">
	<p class="alert is--success">Erfolg</p>
</div>

Leider greifen wohl diese vordefinierten Style Klassen im Frontend nicht. Es sieht alles ganz normal aus.

Ups ein Fehler ist aufgetreten kommt öfters

$
0
0

Hallo ihr Lieben

Ich habe das Problem das die Page mir öfters "Ups ein Fehler ist aufgetreten" anzeigt.

Nach Login in den persönlichen Account - Aber auch bei Gutschein einlösung. Dies geschieht sporadisch und sobald man die Seite aktualisiert und man es ein 2. mal versucht, geht es wieder.

Habt ihr Tipps?

 

Danke und Grüße


Pseudopreis aus sBasket?

$
0
0

Hey Leute, im Zuge einer Anbindung an Webgains habe ich mir das Webgains Plugin nun mal etwas genauer angesehne und für meine Bedürfnisse an die Doku von Webgains angepasst.

Nun stecke ich aber gerade etwas fest. Ich muss dem Webgains Tool einzelne Artikel mitgeben und zusätzlich bei "Sale" Artikeln eine extra EventID.
Ich müsste also aus der sBasket den Pseudoprice erkennen... allerdings ohne Erfolg. Wird die überhaupt mitübergeben?
Hier mal der Ansatz:

foreach($sBasket['content'] as $basketball){

  if(!empty($basketball['pseudoprice'])) {
    $wgItems .= ( $wgItems != '' ? '|' : '' ) . $wgEventIDSale . '::' . str_replace(',','.',$basketball['amountnet']) . '::' . str_replace('|','-',$basketball['articlename']) . '::' . $basketball['ordernumber'] . '::';
  }
  else {
        $wgItems .= ( $wgItems != '' ? '|' : '' ) . $wgEventID . '::' . str_replace(',','.',$basketball['amountnet']) . '::' . str_replace('|','-',$basketball['articlename']) . '::' . $basketball['ordernumber'] . '::';
            }

 

Jemand ne Idee?

 

 

checkout berechnungen und spaltenbezeichnungen des warenkorbs anpassen

$
0
0

Hallo zusammen,

nach langer Suche habe ich zwar Themen im Forum gefunden, die sehr nah an meiner Frage sind, dennoch hat mir leider bisher keines weitergeholfen. Ich hoffe, dass ihr mir hier weiterhelfen könnt.

Und zwar sieht mein Warenkorb im Checkout wie folgt aus:

image

Das Problem ist zum einen dass in der Spalte Summe nur der Stückpreis angezeigt wird. Zum anderen hätte ich gerne folgende Spaltenstruktur für den Warenkorb:

Anzahl > Stückpreis > Summe > Mehrwersteuer

Hierzu muss ich wahrscheinlich ja nur das tpl anpassen? Könnt ihr mir da bitte weiterhelfen? 

 

Danke für eure Hilfe!

 

Backend - Kundensuche nach Attributen aus Freitextfeldern (SW 5.2.16)

$
0
0

Hallo zusammen,

schonmal vorab ich bin noch relativ neu in der Shopware Welt.

Ich suche nach einer Möglichkeit Kunden im Backend mithilfe von, in Freitextfeldern definierten, Werten zu suchen.

Müsste man dafür die Suchlogik erweitern oder gibt es da möglicherweise eine einfachere Lösung die ich beim recherchieren im Forum und Doku übersehen habe?

Vielen Dank schonmal im Voraus!

Kein Smarty|rewrite in widget

$
0
0

hi, ich habe einen eigenen Widget-Controller. Im Template möchte ich mir Artikel-Links ausgeben lassen. Das funktioniert soweit bis auf das Umschreiben der Links.  Hier werden nur Links wie 

shopware.php?sViewport=detail&sArticle=15&sCategory=4

ausgegeben. Leider eien SEO-Urls.

Mein Template sieht wie folgt aus:

{$sArticle.linkDetails|rewrite:$sArticle.articleName}

Alle Caches sind geleert. Was mache ich falsche? oder steht das rewrite im Widget nicht zur Verfügung? Im Listing etc. werden die Urls ganz normal und korrekt ausgegeben.

 

Plugin-Entwicklung: Neuen Service in activate Methode verwenden?

$
0
0

Hallo,

ich habe ein Plugin geschrieben, dass einen neuen Service einführt. Dies ist in der XML Datei services.xml im Plugin Ordner so definiert.

Wenn ich nun in meiner activate Methode des Plugins folgendes ausführe:

public function activate(ActivateContext $context) {
    parent::activate($context);  
    ​$myService = $this->container->get('myplugin.service');
}

Erhalte ich beim aktivieren des Plugins die Meldung: 

You have requested a non-existent service "myplugin.service".

Mir scheint als wird der Service erst nach der Activate Methode registriert. Wie kann ich einen - in dem gleichen Plugin - definierten Service in meiner activate Methode meines Plugins verwenden? Geht es nur über den direkten Aufruf der Klasse, die im Service verwendet wird?

Danke!

CRUD Attribute - WYSIWYG EDitor Fenster für Attribut?

$
0
0

Hallo,

mithilfe des crud_service füge ich Attribute zu den Kategorien hinzu. Kann ich dem Feld, dass dann bei den Freitextfeldern auftaucht, eine WYSIWYG Option mitgeben?

 

Danke!

 

Varianten Kind Element anpassen

$
0
0

Hallo,

ich habe mal eine Frage...

nehmen wir an (stark vereinfacht) ich habe einen Artikel AAA und in diesem sind 3 Varianten AAA-01, AAA-02, AAA-03 zugeordnet.

Beim neu Import der Artikel wurden die Varianten alle mit der Vorauswahl kind =2 gesetzt. Bedeutet ja, dass mir im Shop der Mainartikel als AAA als erstes angezeigt wird. Da es diesen theortisch nicht gibt (nur Platzhalter für die Varianten)....dachte ich mir ich setzt einfach die erste Vairante auf Vorauswahl kind =1. Funktioniert auch, jetzt wird aber mein Main Artikel also die AAA mit der AAA-01 überschrieben. Den eigentlichen Mainartikel AAA gibts es dann nicht mehr, also auch meine sonstigen Infos im Mainartikel wie Attribute, Stkzahl, Lagerbstand usw. sind dann weg.

Ist das so gewollt ? oder hat einer eine Idee wie ich meinen Main Artikel behalte und und der ersten Variante die Vorauswahl gebe ?

Anbei mal der Ausschnitt der IF bedingung

if ($ersteVarianteKind == 2)        // wenn das Kind = zwei ist...
                {
                    echo "Kindelemnt = 2 von Artikel : $ersteVarianteNumber <br>";

                    $updateVariant = array(
                        'variants' => array(
                            array(
                                // update per ordernumber key
                                'number' => $ersteVarianteNumber,
                                'kind' => 1,
                            ),
                        )
                    );
                    $client->put('articles/'.$ersteVarianteNumber.'?useNumberAsId=true', $updateVariant);

 


Preisänderungen Überwachen

$
0
0

Hallo zusammen,

ich habe die Aufgabe auf irgendeinem Wege die Preisänderungen von Produkten (nur wenn diese günstiger werden) zu überwachen, um diese dann in eine sog. Sale Kategorie zu verschieben.

Die Preise werden aus einer Warenwirtschaft heraus geändert, es geht hier nicht um Rabatte sondern nur um den Baseprice.

Gibt es da evtl. ein Event, das ich subscriben kann?

Das Problem dabei ist wartscheinlich auch, wie weiß ich (falls man Preisänderungen abfangen kann) ob sich ein preis nach unten oder nach oben verändert...

Hat wer eine Idee?

Danke schonmal im Voraus! 

 

Preisberechnung mittels PriceCalculationService für spezifische Kundengruppe

$
0
0

Guten Morgen zusammen,

Ich muss im Frontend den Preis für ein Produkt in einer spezifischen KdGr anzeigen.
Beispiel: Kunde A mit KdGr 1 befindet sich auf einer Detailseite. Dort sieht er den "normalen" Preis und darunter die Information "In Kundengruppe B würden Sie für dieses Produkt nur X bezahlen".

Ich habe mir nun schon die Pricecalculationservices im Storefrontbundle angesehen, die aber alle auf den Context aufsetzen. Ich suche eine Möglichkeit ein (manipuliertes) Customer Objekt zu übergeben um den Preis zu bekommen.

Solltet Ihr eine Idee haben - her damit :)

Vielen Dank vorweg!

 

SW 5.2 - Attribute nullable?

$
0
0

Hi,

Ist es möglich im neuen Attributmodel auch Attribute anzulegen, die NULL sein können? Es ist für meine Anwendungsfälle entscheidend, dass ich einen INT anlegen kann, der auch NULL sein kann, da wir bei verschiedenen Berechnungen hier oft zwischen NULL und 0 differenzieren.

Liebe Grüße,
Michael

User Repository einlesen

$
0
0

Ich bekomme bei folgenden Code in meiner Bootstrap nichts zurück

 

 $userRepository = Shopware()->Models()->getRepository("Shopware\\Models\\User\\User");
 $userData = $userRepository->findOneBy(array("id" => $attributes['md_user']));

$attributes['md_user'] ist hier natürlich die richtige id in s_core_auth

Mindermengenzuschlag im Warenkorb ohne MwSt. anzeigen

$
0
0

Hallo,

wenn ich für ein Land (z.B. Österreich) ein Mindermengenzuschlag (sw-surcharge) definiert habe und habe für dieses Land die Steuern deaktiviert, wird mir der Mindermengenzuschlag trotzdem brutto und nicht netto (ohne MwSt.) angezeigt. Alle anderen Preise im Warenkorb werden netto angezeigt.

Das gleiche passiert auch bei "Zuschlag für Zahlungsart" (sw-payment-absolute).

Ist das ein Bug?

Viewing all 2871 articles
Browse latest View live


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