Hilfe meine Seite ist nichtmehr erreich bar, eskommt nur eine weisse seite, keine Fehlermeldung!
Hilfe
Hilfe meine Seite ist nichtmehr erreich bar, eskommt nur eine weisse seite, keine Fehlermeldung!
Hilfe
Hallo zusammen,
ich möchte im Backend einen zusätzlichen Tab in den Artikeldetails im Backend hinzufügen, scheiter jedoch kläglich...
Ich habe ein neues Backend Plugin angelegt und mich an diesem Beispiel orientiert, das jedoch für SW4 erstellt wurde: http://community.shopware.com/Artikelmodul-Bestell%C3%BCbersicht_detail_1071.html
Ich bekomme einfach keinen zusätlichen Tab ins in die Artikeldetails. Ich habe, aus verzweiflung, nach jeder änderung das Plugin neu installiert, das Backend neu geladen und sogar den Shop cache geleert.
Ich habe den Shop in Version 5.1.3 installiert.
Ich bin für jeden Anhaltspunkt dankbar!
Vielen Dank schon mal!
//Kafke
Bootstrap.php
<?php
class Shopware_Plugins_Backend_TRH_Bootstrap extends Shopware_Components_Plugin_Bootstrap {
public function getVersion() {
return '1.0.0';
}
public function getLabel() {
return 'TRH test';
}
protected function getEntityManager() {
return Shopware()->Models();
}
public function getInfo() {
return array(
'version' => $this->getVersion(),
'author' => "TRH ", 'source' => $this->getSource(),
'copyright' => "Copyright (c) 2016, TRH",
'label' => $this->getLabel(),
'description' => 'TRH test erweiterung Version ' . $this->getVersion()
);
}
public function install() {
try {
$this->subscribeEvents();
$this->createAttributes();
$this->createConfig();
} catch (Exception $e) {
$this->uninstall();
return array('success' => false, 'message' => $e->getMessage());
}
$this->Application()->Models()->generateAttributeModels(dirname($this->Application()->AppPath()));
return true;
}
private function subscribeEvents() {
$this->subscribeEvent('Enlight_Controller_Action_PostDispatch_Backend_Article', 'onPostDispatchBackendArticle');
$this->subscribeEvent('Enlight_Controller_Dispatcher_ControllerPath_BackendTRHArticleOrdersTab', 'onGetBackendController');
}
public function onPostDispatchBackendArticle(Enlight_Event_EventArgs $args) {
$args->getSubject()->View()->addTemplateDir(
$this->Path() . 'Views/'
);
if ($args->getRequest()->getActionName() === 'load') {
$args->getSubject()->View()->extendsTemplate(
'backend/view/options/window.js'
);
}
if ($args->getRequest()->getActionName() === 'index') {
$args->getSubject()->View()->extendsTemplate('backend/app.js');
}
}
public function onGetBackendController() {
$this->Application()->Template()->addTemplateDir(
$this->Path() . 'Views/'
);
return $this->Path() . 'Controllers/Backend/TRH.php';
}
private function createAttributes() {
for ($i = 1; $i < 11; $i++) {
$this->Application()->Models()->addAttribute(
's_articles_attributes', 'TRH', 'color' . $i, 'varchar(255)', true, NULL
);
}
$this->getEntityManager()->generateAttributeModels(array(
's_articles_attributes'
));
}
private function createConfig() {
$colors = array("Gelb", "Rot", "Weiß", "Blau", "Pink", "Rosa", NULL, NULL, NULL, NULL);
for ($i = 0; $i < 10; $i++) {
$this->Form()->setElement('text', 'TRH_color' . $i, array('label' => 'Farbe ' . $i, 'required' => false, 'value' => $colors[$i]));
}
}
public function uninstall() {
try {
for ($i = 0; $i < 10; $i++) {
$this->Application()->Models()->addAttribute('s_articles_attributes', 'TRH', 'color' . $i);
}
$this->getEntityManager()->generateAttributeModels(array('s_articles_attributes'));
} catch (\Exception $e) {
// return array('success' => false, 'message' => $e->getMessage());
}
return true;
}
}
Views/backend/app.js
//{namespace name=backend/TRH}
//{block name="backend/article/application" append}
//{include file="backend/view/options/grid.js"}
//{include file="backend/store/order.js"}
//{include file="backend/model/order.js"}
//{/block}
Views/backend/view/options/window.js
//{namespace name="backend/TRH"}
//{block name="backend/article/view/detail/window" append}
Ext.define('Shopware.apps.Article.TRH.view.Window', {
override: 'Shopware.apps.Article.view.detail.Window',
/**
* @Override
* Creates the main tab panel which displays the different tabs for the article sections.
* To extend the tab panel this function can be override.
*
* @return Ext.tab.Panel
*/
createMainTabPanel: function() {
var me = this, result;
result = me.callParent(arguments);
me.registerAdditionalTab({
title: '{s name=window/tab_TRH_article_orders_tab}Bestellübersicht{/s}',
contentFn: me.createTRHArticleOrdersTab,
articleChangeFn: me.articleChange,
tabConfig: {
layout: {
type: 'hbox',
align: 'stretch'
},
listeners: {
activate: function () {
me.TRHArticleOrdersTabOrderStore.load();
me.fireEvent('TRHArticleOrdersTabActivated', me);
}
}
},
scope: me
});
return result;
},
/**
* Callback function called when the article changed (splitview).
*
* @param article
* @param tabConfig
*/
articleChange: function(article, tabConfig) {
var me = this;
me.TRHArticleOrdersTabOrderStore.getProxy().extraParams.articleId = article.get('id');
me.TRHArticleOrdersTabOrderStore.load();
},
/**
* @return Ext.container.Container
*/
createTRHArticleOrdersTab: function(article, stores, eOpts) {
var me = this, disabled = true, tab = eOpts.tab;
me.TRHArticleOrdersTabOrderStore = Ext.create('Shopware.apps.Article.TRHArticleOrdersTab.store.Order');
me.TRHArticleOrdersTabOrderStore.getProxy().extraParams.articleId = null;
if (article.get('id')) {
me.TRHArticleOrdersTabOrderStore.getProxy().extraParams.articleId = article.get('id');
disabled = article.get('id') === null;
}
me.TRHArticleOrdersTab = Ext.create('Ext.container.Container', {
flex: 1,
layout: 'fit',
items: [
{
xtype: 'TRH-article-order-tag-grid',
store: me.TRHArticleOrdersTabOrderStore
}
]
});
tab.add(me.TRHArticleOrdersTab);
tab.setDisabled(false);
return me.TRHArticleOrdersTab;
}
});
//{/block}
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
Ich habe im Moment das Problem, dass ich in meiner Bootstrap die Funktion für den Cronjob nicht mit der Plugin Konfiguration befüllen kann, so wie ich es auch im Frontend machen kann. Wie komme ich an die Config?
Hallo zusammen ich habe eine einfache Frage: Wie kann ich die URL auf die Artikeldetailseite in einem Plugin/Controller erstellen wenn ich die Artikel Id oder Ordernummer habe?
Für ein einfaches Code schnippsel wäre ich dankbar.
Gruss
Mark
Hallo,
wenn man bei uns im Shop den Express Verkauf von Amazon oder Paypal benutzt, wird jedesmal 0€ Versandkosten angegeben, woran kann das liegen? Wir haben zwar ein Plugin geschrieben welches den Warenkorb je nach Händler aufteil, dieser benutzt aber eine eigene Variable anstatt {$sBasket} so das Shopware alle Daten normal ziehen kann.
Beispiel:
Ich hoffe das uns jemand helfen kann
Viele Grüße,
Tobias
Hallo liebe Leute,
ich würd gern neue Registrierungen von Kunden standardmässig nicht aktivieren um diese später manuell im Backend zu aktivieren.
Hab mir gedacht ich ändere dies einfach mit Hilfe des Filter Events Shopware_Modules_Admin_SaveRegisterMainDataAttributes_FilterSql direkt im SQL Statement.
Hier der Listener:
public function onSaveRegisterMainData_Filter(Enlight_Event_EventArgs $arguments){
$return = $arguments->getReturn();
$return[0] = '
INSERT INTO s_user
(
password, email, paymentID, active, accountmode,
validation, firstlogin, sessionID, affiliate, customergroup,
language, subshopID, referer, encoder
)
VALUES (?,?,?,0,?,?,NOW(),?,?,?,?,?,?,?)
';
return $return;
}
Ich bekomme jetzt bei der Registrierung leider folgende Fehlermeldung:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in /html/shopware/engine/Library/Zend/Db/Statement/Pdo.php:228 Stack trace: #0 /html/shopware/engine/Library/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array) #1 /html/shopware/engine/Library/Zend/Db/Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array) #2 /html/shopware/engine/Library/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array) #3 /html/shopware/engine/Library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('\r\n I...', Array) #4 /html/shopware/engine/Library/Enlight/Components/Db/Adapter/Pdo/Mysql.php(75): Zend_Db_Adapter_Pdo_Abstract->query('\r\n I...', Array) #5 /html/shopware/engine/Shopware/Core/sAdmin.php(1737): Enlight_Components_Db_Adapter_Pdo_Mysql->query('\r\n I...', Array) #6 /html/shopware/engine/Shopware/Core/sAdmin.php(2035): sAdmin->sSaveRegisterMainD in /html/shopware/engine/Library/Zend/Db/Statement/Pdo.php on line 234
503 Service Unavailable
Die Anzahl der Parameter sollte eigentlich stimmen, hab das Original Statement übernommen und nur aus der 1 eine 0 gemacht.
Kann mir da jemand auf die Sprünge helfen?
Vielen Dank!
Martin
Ich möchte ein Backend-Plugin schreiben, welches den Backend-User um bestimmte Attribute erweitert. In einem Subscriber möchte ich dann wiederum den aktuell eingeloggten Benutzer und das zugehörige Attribut auslesen.
/** @var $auth Shopware_Components_Auth */
$auth = Shopware()->Auth();
$user = $auth->getIdentity();
var_dump($user);
liefert mir allerdings nur null zurück.
Hallo,
seit dem Umstieg von meinem alten Shopsystem auf SW überhäuft mich google mit 404-Fehlern.
Zur Situation:
Das alte Shopsystem hatte bis vor ein paar Jahren(!) sinnlose ArtikelURLs. Dann gab es die Möglichkeit, eigene URLs festzulegen, wobei das System angeblich suchmaschinenfreundlich mit 301 auf die neue URL umleitet. Diese neuen URLs konnte ich in SW nachbauen, nicht mehr benötigte URLs habe ich per 301 in der htaccess umgeleitet. In der praktischen Anwendung funktioniert das auch.
Die Webmastertools haben immer eine aktuelle Sitemap.
Über die alten sinnlosen URLs hatte ich zunächst nicht weiter nachgedacht, da ich der Meinung war, dass diese nach 1-2 Jahren aus dem Index verschwinden bzw. nicht mehr gecrawlt werden (wegen der 301er). Google versucht scheinbar weiterhin diese zu crawlen und durch den Wegfall des alten System ist natürlich auch die dortige Umleitung hinfällig.
Alles was mit 404-Fehlern in den Webmastertools aufgetaucht ist, habe ich nach und nach in die htaccess aufgenommen und als Fehler behoben markiert. Dennoch laufen immer weitere URLs - auch welche die längst umgeleitet sind - in der Fehlerliste auf.
Gerade der Smartphonebot verursacht immer eine Emailmitteilung über einen Anstieg von 404, so dass ich mir die Frage stelle, ob dort diese Umleitungen in der htacces vielleicht nicht erkannt werden oder nicht greifen. Muss ich hier etwas besonderes bei der Umleitung beachten?
Ganz am Rande:
Insgesamt habe ich die Vermutung, dass die Ergebnisse von Google hier hinten und vorne nicht stimmen. Denn bei den "sinnlosen" URLs wird bei "verlinkt über" immer eine URL des alten Shopsystems angezeigt, die es seit Wochen nicht mehr gibt. Wie können diese nach Löschen des alten Systems plötzlich gefunden werden? Bei Fehler erkannt steht immer ein aktuelles Datum, an dem die Seite die verweisen soll schon nicht mehr existiert hat. Teilweise sind die monierten URLs gar nicht im Index.
Zu diesem Googleverhalten habe ich bei Abakus zwar einen Leidensgenossen gefunden, aber keine Lösung/Erklärung.
LG
Hallo zusammen
Ich habe ein neues Feld "Pickupdate" bei der Bestellung eingebaut und es funktioniert soweit wie es soll.
Hallo an alle,
ich habe zwei Kundengruppen (Händler und Shopkunden) und würde gerne über das Import/Export-Tool die Customer groups getrennt runterladen. Ist das irgendwie möglich? Ich habe die Customer-Daten nach meinen Bedürfnissen angepasst aber weiß nicht wie ich die zwei trennen kann.
Kann mir jemand helfen?
Danke vielmals für eure Hilfe
JA
Hallo zusammen,
ich versuche gerade Varianten über den Vairanten-Endpunkt zu aktualisieren.
Leider bekomme ich dauernt den folgenden Fehler zurück:
Invalid method or invalid json string.
Hat jemand eine Ahnung was der Fehler hier sein kann?
Hallo, ich bin auf der Suche nach einer Möglichkeit, über die API, Artikel aus einer bestimmten Kategorie zu holen.
Als Beispiel versuche ich mich mit der http://community.shopware.com/Shopware-4-REST-API-verwenden_detail_989.html#Der_API_Client Klasse.
Im Articles Api-Controller scheint es einen Filter-Parameter zu geben, aber kann ich überhaupt nach der Kategorie filtern?
Ist das mit der Standard-API überhaupt möglich, oder muss/sollte ich die erweitern?
Hello,
I am still new on this support forum, but I am hoping someone can give me some tips.
I am evaluating shopware 5 to see if it can meet some demands.
The products are allready available in a external database / website and we are able to build code to produce xml, csv, json on request.
We need to 'inject' new products, update selling prices (every hour), update descriptions and other related data.
Shopware 5 seems to offer a rest API and an import system.
The REST api seems to be the best choice. But is this meant for single product updates or can it also handle bulk insertion?
The import mechanism can also be an option, but how to automate this (with external source of data) and bulk updates are likely to be very slow (Or am I wrong here?)
Direct DB writing requires everything to be exactly the same, and does not feel like the proper way in Shopware 5. (Correct me if I'm wrong here )
Retrieving the productdata from the external database within a custom plugin seems possible, does this open other possibillities?
Best regards
This is my first use of this forum, and I hope someone can lead us in the right direction.
For us Shopware 5 can be the right choice depending on some functionalities, first of all we require the iDeal payment option (common payment method in the Netherlands)
In the backend it seems possible to add a payment method, but I can not seem to find a clear manual about this step.
We don't want to use a payment supplier like pay.nl etc.
We can program our own code to handle this, but we can not find any manual, tutorial, etc etc.
Or is Shopware 5 going to support iDeal? (commercial version perhaps?)
Best regards,
Hallo liebe Community,
ich habe ein ganz simples Plugin. Es gibt ein Textfeld, in dem ich "Hallo Welt" eintrage.
Wenn ich die Variable über "$view->assign('meintext', $config->meintext);" ausgebe, dann kann ich diese über die .tpl anzeigen lassen.
So weit alles gut - nur jetzt kommt mein Problem:
Ich habe Jquery eingebunden. Natürlich auch den Event registriert.
public function addJsFiles(Enlight_Event_EventArgs $args) {
$jsFiles = array(__DIR__ . '/Views/frontend/plugins/hallowelt/_public/src/js/script.js');
return new Doctrine\Common\Collections\ArrayCollection($jsFiles);
}
Gebe ich nun in meiner "script.js" folgendes ein:
jQuery(document).ready(function ($) {
alert('Hallo Welt');
});
dann wird mir "Hallo Welt" angezeigt.
Versuche ich allerdings:
jQuery(document).ready(function ($) {
alert('{$hallowelt}');
});
dann wird mir {$hallowelt} angezeigt.
Natürlich könnte ich über die .tpl die Variable {$hallowelt} Javascript als Variable zuordnen - was auch funtioniert.
Ich würde mir aber gerne den umständlichen Weg über die Javascript Variable sparen.
In Less gibt es ja die Möglichkeit direkt auf Variablen aus der Bootstrap zuzugreifen:
public function addLessFiles(Enlight_Event_EventArgs $args)
{
$less = new \Shopware\Components\Theme\LessDefinition(
//configuration
array(
'halloweltbreite' => $this->Config()->get('halloweltbreite'),
),
//less files to compile
array(
__DIR__ . '/Views/frontend/plugins/hallowelt/_public/src/less/all.less'
),
//import directory
__DIR__
);
return new Doctrine\Common\Collections\ArrayCollection(array($less));
}
über:
@halloweltbreite*1px
in der "style.less"
Gibt es denn nicht die Möglichkeit Variablen aus der Bootstrap DIREKT in meiner script.js zu verwenden, ohne den Umweg .tpl --> Javascript???
Wenn diese Möglichkeit existiert, dann würde ich mich sehr über ein Beispiel freuen.
Ich habe auch schon den Artikel "Getting started with the statemanager and the jQuery plugin base" gelesen, weiss aber leider nicht ob es das richtige ist und wie ich es nutzen könnte.
Vielen Dank im voraus
Hoppler
Ich habe einen Banner-Slider angelegt mit 7 Bildern. Die Pfeile werden angelegt und er läuft auch. Aber die Bilder werden nicht angezeigt. Nur am Rand ein Streifen von vielleicht 3 Pixeln.
Woran kann das liegen?
Hallo Gemeinde.
Ich möchte gerne im Listing auf die Eigenschaften der Artikel zugreifen?
Aber das Array
$sArticle.sProperties
scheint leer zu sein. Wie kann ich in der Artikelliste dennoch auf die Eigenschaften zugreifen?
Danke :-)