Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Der Konfigurator besitzt eine eigene Struktur für das Javascript, um direkt mit dem Artikel zu arbeiten.

Payload

Change

Um eine Änderung oder Aktion im Konfigurator auszuführen, sollte die Change-Methode verwendet werden. Dabei sollte die payload entsprechend angepasst werden und eine action hinzugefügt werden und this.configurator.change aufgerufen werden. Danach wird in PHP das Event Shop\Configurator\Lib\Event\OnExecuteChange ausgeführt und man kann auf seine action und die geänderte payload reagieren. Um Feedback oder Änderungen der Payload zurück in die Ui zu liefern, sollten StackActions (Http\Response\AdvancedResponseStackElementAbstract) verwendet werden.

Codeblock
languagejs
themeRDark
titleBeispiel js quantity change
collapsetrue
// ...

async myChangeAction() {

	if (
        false === this.configurator.blocked &&
        this.configurator.payload.hasOwnProperty('cartSessionArticle') &&
        this.configurator.payload.cartSessionArticle.shopSessionArticleQuantity !== this.quantity
    ) {
        this.configurator.payload.cartSessionArticle.shopSessionArticleQuantity = this.quantity
        this.configurator.payload.actions.push('MyChangeAction')
    
        this.configurator.change()
    }
}

// ...


Modul / eigenes Script laden

...

Codeblock
languagejs
themeRDark
titleBeispielklasse
collapsetrue
export default class MyDummyConfiguratorModule {

    /**
     * @param {ShopConfigurator} configurator
     */
    constructor(configurator) {

        this.configurator = configurator
    }

    async process(element) {

        this.element = element

		this.changeExample()
    }

    async changeExample() {

	   this.configurator.payload.actions.push('MyActionKey')

       this.configurator.change()
	}
}

...