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

Pseudopreis in Bestellbestätigung

$
0
0

Hallo,

ich würde gerne den Pseudopreis zusätzlich in der Bestellbestätigung SORDER angeben. 

In meiner Mail steht daher folgendes:

<td style="padding-left: 30px; width: 152px;">{$details.price|padding:8}{$sCurrency}{if $details.additional_details.pseudoprice}
Statt: {$details.additional_details.pseudoprice|padding:8}{$sCurrency}
{/if}</td>

Im Backend bei den zur Verfügung stehenden Variablen ist folgendes angegeben

{$sOrderDetails.1.additional_details.prices.0.price}: 39,31
{$sOrderDetails.1.additional_details.prices.0.pseudoprice}: 43,67

Leider kommt in der versendeten Mail immer nur das an: 

39,31EUR Statt: 33,92EUR

 

Kann mir jemand weiterhelfen? Und mir sagen wie ich es schaffe 39,31 EUR statt: 43,67 EUR  anzugeben?

Es handelt sich um einen Variantenartikel bzw. um eine Variante bei der als Pseudopreis 36,70 EUR hinterlegt sind. Über eine Kundengruppe erhält der Kunde 10% Rabatt auf den Artikel, sodass die 36,70 + Mwst. abzüglich 10% 39,10 ergeben. 

Danke schon mal!


Freitextfeld für Einkaufswelt (s_emotion_attributes) verfügbar machen

$
0
0

Hallo allerseits,

ich habe für die Einkaufswelten ein Freitextfeld angelegt, um den Einkaufswelten individuelle CSS-Klassen zuordnen zu können. Soweit ich verstanden habe, muss ich den ‘shopware_attribute.data_loader’-Service aufrufen, um die Attribute für ein Template verfügbar zu machen mit  so etwas wie: 

$attributes = $this->get('shopware_attribute.data_loader')->load('s_emotion_attributes', 'id');

Muss ich dafür ein Plugin anlegen oder kann man einen Service auch von einer anderen Stelle sinnvoll aufrufen? Über jede Hilfe wäre ich sehr dankbar und hoffe, dass ich mich beizeiten mal revanchieren kann.

Controllers & Actions übersetzen

$
0
0

Hallo zusammen,

gibt es irgendeinen einfachen Weg, mit dem ich Controller- und Action-Bezeichner für Sprachshops übersetzen kann?

Vielen Dank vorab und beste Grüße!

Bedingung bei Versandkostenberechnung hinzufügen

$
0
0

Hallo zusammen,

ich habe hier einen etwas schwierigen Fall. Die Versandkostenberechnung ist per Artikelanzahl definiert. Allerdings soll auch eine Bedingung hinterlegt werden, dass Ware über 15 Kilogramm pauschal pro Artikel zu 29€ versendet wird.

Ich habe nun schon ein Freitextfeld für die Artikel angelegt und die 29 dort hinterlegt. Zudem eine eigene Berechnung hinterlegt:

SUM(
   IF(at.attr5 != '', at.attr5*b.quantity,)
)

 

Leider geht es dennoch nicht? Was mache ich falsch? Bin ich mit der Überlegung überhaupt auf dem richten Weg?

Vielen Dank und viele Grüße,

Marcel.

Textbaustein-Namen aus Variable im Template?

$
0
0

Ich würde gerne via Freitext ($sArticle) aus mehreren Textbausteinen einen auswählen können.
Dazu müsste ich im Template den Namen des Textbausteins mit einer Variable übergeben können.
Leider wertet das {s} aber keine Smarty-Variable aus.

Versuche wie

{s namespace="frontend/detail" name='$MeineVar'}
{s namespace="frontend/detail" name='{$MeineVar'}}

enden entweder in einen Fehler, oder es wird so der Textbaustein angeleget - mit dem Namen der Variablen, und nicht deren Inhalt.
Gibt es einen Workaround, damit ich dem {s}-Tag dennoch eine Variable übergeben kann?
Eine Kette von If-ElseIf ist auf dauer auch nicht beliebig erweiterbar Undecided

getSupplierListQueryBuilder um attribute erweitern

$
0
0

Ich muss den QueryBuilder der Helper Funktion für Supplier erweitern, damit ich die Attribute Felder im Backendlisting ausgeben kann.

 

public function getSupplierQuery(Enlight_Hook_HookArgs $args)
    {
        $builder = $args->getReturn();
        $builder->addSelect(
            array(
                'attribute.md_contact as md_contact',
                'attribute.md_fon as md_fon',
                'attribute.md_email as md_email'));

        $builder->LeftJoin('supplier.attribute', 'attribute');
        $args->setReturn($builder);
    }

Was ist hier falsch ?

Zahlungsart Plugin mit iFrame

$
0
0

Hallo liebe Community,

kann mir jemand erklären wie ich im Checkout-Prozess per Plugin einen weiteren Step zwischen confirm und finish einbauen kann?

Ich möchte eine Zahlungsmethode per iframe einbauen, bisher hänge ich an dem Problem das, dass iframe auf der finish Seite auftaucht, nach dem man auf "Zahlunsgpflicht bestellen" gedrückt hat. Und die Betsellung wird dann auch schon abgefeuert, allerdings ohne das ich im iframe bezahlt habe :(

Hat jemand von euch schon so etwas gebaut?

In der Dokumentation  gibt es zwar ein Beispiel Plugin für Payments, aber das funktioniert so nicht, deswegen ist es für mich schwer nachvollziehbar wie es funktionieren soll.

 

Ist es überhaupt die richtige herangehensweise, oder würdet ihr das anders lösen?

Ich bin für jede Hilfe oder Anregung dankbar.

 

Liebe Grüße

v0rti

 

 

 

 

 

Detail-Tabs

$
0
0

Hallo Leute,

vorab vergebt mir bitte die Frage, aber ich finde die Antwort nicht.

Das Thema wurde wahrscheinlich schon oft behandelt.

Ich will extra Tabs im Artikel anzeigen lassen. Hab folgendes Tutorial befolgt:

https://shopwareianer.com/tutorials/shopware5-eigene-tabs-in-der-detail-ansicht

Mein Ergebnis:

image

Der Text im Tab wird halt nicht angezeigt

Ich weiß, dass in den Kommentaren was dazu geschrieben wird, aber ich weiß nicht welche Stelle ich abändern muss, damit es funktioniert.

Kennt wer die Lösung?

Danke euch :)


Schreib-faule Entwickler

$
0
0

Ich finde das mittlerweile echt eine Krankheit und sollte verboten werden. Zu einem Bugfix gehört auch eine fachliche Beschreibung vom schreibfaulen Entwickler.

Warum erscheint im Artikel Backend bei meinem Attribut nur ein NULL und nicht die Daten

$
0
0

Moin,

ich erstelle gerade mein erstes Shopware Plugin und hoffe ihr könnt mir helfen.

Ich habe im Backend unter dem Hauptmenüpunkt "Artikel" ein Punkt "Verkaufsargumente" angelegt.

Dies funktioniert soweit auch einwandfrei:

Nun habe ich im Backend unter den Artikeln ein neues Attribut hinzugefügt:


    private function createArticleAttribute() {
        /** @var CrudService $service */
        $service = $this->container->get('shopware_attribute.crud_service');
        $service->update('s_articles_attributes', 'selling_arguments', TypeMapping::TYPE_MULTI_SELECTION, [
            'label' => 'Verkaufsargumente',
            'entity' => 'SellingArguments\Models\Argument',
            'displayInBackend' => true,
            'custom' => true,
                ]
        );
    }

 

Allerdings spuckt er nun im Backend immer den Wert "null" aus und nicht den der Bezeichnungen (Displayname würde mir reichen).


 

Ich hoffe ihr könnt mir dazu helfen.
Grüße Benjamin

 

Model:

<?php

namespace SellingArguments\Models;

use Doctrine\ORM\Mapping as ORM;
use Shopware\Components\Model\ModelEntity;

/**
 * @ORM\Entity(repositoryClass="Repository")
 * @ORM\Table(name="zg_sellingarguments_argument")
 */
class Argument extends ModelEntity {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var time
     *
     * @ORM\Column(name="time", type="datetime", nullable=false)
     */
    private $time;

    /**
     * @var string
     *
     * @ORM\Column(name="cssclassname", type="string", nullable=false, length=25)
     */
    private $cssclassname;

    /**
     * @var string
     *
     * @ORM\Column(name="displayname", type="string", nullable=false, length=255)
     */
    private $displayname;

    public function __construct() {
        $this->time = new \DateTime();
    }

    public function getId() {
        return $this->id;
    }

    public function getTime() {
        return $this->time;
    }

    public function getCssclassname() {
        return $this->cssclassname;
    }

    public function getDisplayname() {
        return $this->displayname;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function setTime($time) {
        $this->time = $time;
    }

    public function setCssclassname($cssclassname) {
        $this->cssclassname = $cssclassname;
    }

    public function setDisplayname($displayname) {
        $this->displayname = $displayname;
    }

}

Repository:

<?php

namespace SellingArguments\Models;

use Shopware\Components\Model\ModelRepository;

class Repository extends ModelRepository
{
    public function getArgumentQuery()
    {
        $builder = $this->getQuestionQueryBuilder();


        return $builder->getQuery();
    }

    public function getQuestionQueryBuilder($articleId)
    {

        $builder = $this->getEntityManager()->createQueryBuilder()
            ->select(['cssclassname', 'displayname'])
            ->from(Argument::class, 'argument')
            ->leftJoin('argument.cssclassname', 'cssclassname')
            ->leftJoin('argument.displayname', 'displayname')
            ->where('article.id = :articleId')
            ->setParameter('articleId', $articleId);

        return $builder;
    }
}

Backend Controller:

<?php

use SellingArguments\Models\Argument;

/**
 * Backend controllers extending from Shopware_Controllers_Backend_Application do support the new backend components
 */
class Shopware_Controllers_Backend_SellingArguments extends Shopware_Controllers_Backend_Application {

    protected $model = 'SellingArguments\Models\Argument';
    protected $repository = 'SellingArguments\Models\Repository';
    protected $alias = 'argument';
    protected $filterFields = array('cssclassname', 'displayname');
    protected $sortFields = array('cssclassname', 'displayname');

    protected function getListQuery() {
        $builder = parent::getListQuery();

        return $builder;
    }

    protected function getDetailQuery($id) {
        $builder = parent::getDetailQuery($id);

        return $builder;
    }
}

 

Automatisches Artikelupdate fürs Merchant Center

$
0
0

Hallo,

unsere Produktseiten, geben in den Microdaten für Wert der Availability aus “ http://schema.org/LimitedAvailability “. Das Merchant Center unterstützt aber nur die drei folgenden Werte:

 

in stock [auf Lager]
out of stock [nicht auf Lager]
preorder [vorbestellbar].

Da bei automatischem Update die Werte in den Produktseiten mit den Werten aus dem Feed abgeglichen werden, haben wir dauerhaft die Warnung „Keine ausreichende Übereinstimmung von Mikrodaten-Verfügbarkeitsinformationen“. Das setzt natürlich unsere Performance in der Produktsuche herunter.
Also wo kann ich die Ausgabe der Microdaten beeinflussen?
Danke für Eure Hilfe,
Klaus

Einkaufswelt-Plugin Blog Artikel Auflistung

$
0
0

Hallo,

ich versuche für ein eigenes Einkaufswelten-Plugin alle verfügbaren Blogartikel abzurufen und in einem Dropdow-Menü darzustellen. Jedoch weiß ich nicht wie genau ich das anstellen soll. Die Doku hilft mir leider nicht weiter und auch sonst konnte ich nichts dazu finden.

Kann mir hierzu jemand weiterhelfen?

Vielen Dank,

Simon

Wofür ist die Tabelle s_core_engine_elements ?

$
0
0

Mir ist bei der Migration von Produkten über das SW Migrationstool aufgefallen, dass es Werte aus der Tabelle s_core_engine_elements zieht.

Diese Tabelle ist in der Grundkonfiguration synchron mit den Freitextfelder, welche angelegt wurden, wird allerdings nicht akualisiert, wenn ich neue Attribute anlege.
Deshalb die Fragen:

Wofür ist die Tabelle s_core_engine_elements da?
Wie kommen Werte da rein, wenn nicht von Hand (Abgleich mit Attribute möglich/sinnvoll)?

 

Events zur Modifizierung der Versandkosten vorm Checkout - wo? Versandkostenmodul reicht nicht aus..

$
0
0

Das hier als subsribedEvents:

    'sBasket::sGetBasket::after' => 'onAfterGetBasket',
    'sOrder::sSaveOrder::before' => 'onBeforeSaveOrder',

..kann doch nicht die Lösung sein, wenn ich eine etwas aufwändigere Preisberechnung bauen will, als sie mir das Shopend-Backend erlaubt.. Oder etwa doch?
Notifys hab ich da nicht entdeckt und auch sonst keine passenden Funktionen..

Was ich tun will:

Die Artikel die sich im Warenkorb befinden, werden durch eine von mir geschriebene - und außerhalb von Shopware mit den Shopware-Daten bereits funktionierende - Box Packaging Funktion optimal auf die der Firma zur Verfügung stehenden Kartongrößen verteilt, was es erlaubt herauszufinden, wieviele Kartons mit welchem Gewicht versendet werden. Dadurch lassen sich nach Abfrage beim Dienstleister absolut genau der Versandkostenpreis erfragen.

Diesen will ich dann vor dem Checkout darstellen, und dann für die entgültige Bestellung übernehmen!

Leider finde ich nur Hooks die ich verwenden könnte.

Übersehe ich irgendwelche Funktionen bzgl. Versandkosten?

 

PS: Gibt es irgendwo ein PHPdoc von Shopware online das man nutzen kann, das alle Events listet? Im Wiki gibt es ja nicht mal das..

 

 

Ups! Ein Fehler ist aufgetreten! ...nach abschließen der Anmeldung

$
0
0

Hallo liebes Forum,

gerade mailte mir ein Kunde, er bekäme die im Titel besagte Meldung wenn er sich in unserem Shop anmeldet.

Ich habe nun eine Stunde im Netz gesucht, meist wird ein Plugin oder der Cache vermutet. Beides durch und noch keine Lösung gefunden.

 

Folgendes sagt die Log:

Shopware\Components\CSRFTokenValidationException: The provided X-CSRF-Token for path "/register/saveRegister/sTarget/account/sTargetAction/index" is invalid. Please go back, reload the page and try again. in /engine/Shopware/Components/CSRFTokenValidator.php:158 Stack trace:
#0 /engine/Library/Enlight/Event/Handler/Default.php(91): Shopware\Components\CSRFTokenValidator->checkFrontendTokenValidation(Object(Enlight_Controller_ActionEventArgs))
#1 /engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#2 /engine/Library/Enlight/Controller/Action.php(141): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#3 /engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('saveRegisterAct...')
#4 /engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#5 /engine/Shopware/Kernel.php(180): Enlight_Controller_Front->dispatch()
#6 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(487): Shopware\Kernel->handle(Object(Enlight_Controller_Request_RequestHttp), 1, true)
#7 /engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#8 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#9 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(275): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#10 /engine/Shopware/Components/HttpCache/AppCache.php(133): Symfony\Component\HttpKernel\HttpCache\HttpCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#11 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(206): Shopware\Components\HttpCache\AppCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#12 /engine/Shopware/Components/HttpCache/AppCache.php(114): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#13 /var/www/vhosts/hosting4137.af929.netcup.net/httpdocs/shopware.php(117): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#14 {main}

 

 

"X-CSRF-Token  "

Was wohl helfen würde, wäre die funktion zu deaktivieren, aber das wollte ich nicht unbedingt.

Auch folgendes habe ich schon durch:

https://synonymous.rocks/shopware-5-2-csrf-token-is-invalid/

Hat hier noch jemand eine Idee?

 

ACH SO, von 5 versuchen etwa, funktioniert das anmelden etwa jedes 2te mal.

 

Shopware 5.2.20

Build Rev 201702271540

 


Accordion / swCollapsePanel in Modal Box / Fenster

$
0
0

Hallo Community,

ich verwende in einigen Shopseiten ein jquery Akkordion mit dem Shopware internen Plugin swCollapsePanel.
Dazu habe ich eine eigene my-collapse.js im Theme eingebunden:

$(function () {
    StateManager
    // Collapse panel
        .addPlugin('.collapse--header, .collapse--content', 'swCollapsePanel', ['xs', 's', 'm', 'l', 'xl'])

});

Dann in der jeweiligen Shopseite:

<div class="accordion-menu">
<div class="collapse--header">
<h2>Überschrift</h2>
<div class="collapse--toggler"> </div>
</div>
<div class="collapse--content">
<p>A lot of content......</p>
</div>
</div>

Das funktioniert bestens.

Aber, öffne ich die Shopseite modal, z.B. so

<div class="sidebar-advice" data-content="" data-modalbox="true" data-targetSelector="a" data-width="800" data-height="auto" data-mode="ajax">
        <a href="{url controller=custom sCustom='212'}" id="test" class="class-test" title="Modal Button">
            Modal Button
        </a>
    </div>

läßt sich das Accordion nicht öffnen.

das javascript greift nicht.
Was muss ich zusätzlich tun, ium Accordions mit swCollapsePanel in Modal Fenstern zu verwenden.
Jemand eine Idee?

Vielen Dank schon mal

Advanced Promotion Rabatt und Custom Products Aufschlag kombinieren?

$
0
0

Hallo!

 

Im anderen Forum-Bereich habe ich diese Frage bereits gestellt: https://forum.shopware.com/discussion/44984/advanced-promotion-rabatt-und-custom-products-aufschlag-kombinieren

Besteht aus Programmiertechnischer Sicht eine Möglichkeit die Plugins ggf. so anzupassen, dass Rabatte des Advanced Promotion Plugins (z.B. 5% Warenkorbrabatt) auch auf Aufschläge, die durch Konfiguration eines Custom Products entstehen, berechnet werden?

 

Es gibt das Problem, dass es Artikel gibt, die durch die Konfiguration einen Aufschlag erhalten - der 5% Warenkorbrabatt bezieht sich allerdings nur auf den "normalen" Artikelpreis und rabattiert nicht die Aufschläge...

 

Gruß

Bei plugin-Installation feststellen, welches theme beim User aktiv ist

$
0
0

Hallo zusammen,

ich habe folgendes Anliegen: Bei dem plugin das ich gerade entwickle ist es wichtig, dass ich, wenn der User bei sich das plugin installiert, währenddessen im Hintergrund feststellen kann, welches theme beim User gerade aktiv ist. Ich wollte das jetzt erstmal über die Datenbank probieren, aber dort habe ich bisher keinen Wert gefunden, der dabei hilfreich sein könnte.
Gibt es einen Wert, auf den ich im Backend auch zugreifen kann, der mir sagen kann, welches theme gerade aktiv ist?

Beste Grüße
Olli

Datum der Änderungen in Kundendaten (Emailadresse, Rechnungs oder Lieferadresse)

$
0
0

Hallo,

wir wollen Kundendaten aus Shopware regelmäßig in eine Buchhaltung übertragen. Um nicht jeden Tag alle Bestandskunden neu an die Buha übertragen zu müssen würden wir gerne nur geänderte Datensätze neu auslesen und zum Export bereitstellen.

=> Weiss jemand, ob / wo Shopware eine Art Änderungsdatum oder Flag setzt damit wir dieses abfragen können? Oder hat jemand eine andere Idee?

Freue mich auf Eure Anregungen,

AndyKord

Partnerprogramm Schreibweise ?sPartner= oder ?spartner= möglich?

$
0
0

Hallo,

die Frage steht im Prinzip schon in der Überschrift. Wird auch bei der kleinen Schreibweise der Verkauf gewertet?

LG

Viewing all 2871 articles
Browse latest View live


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