OXID Modul json-ld verfügbar

Mit dem OXID Modul JSON-LD ist es möglich Seiten eines Shops mit einem maschinell lesbaren Datenexport im JSON-LD Format auszustatten.

Dieser kann den OXID eigenen RDF/A Export ersetzen.


Das Modul bietet eine Vielzahl an Einstellmöglichkeiten um den Umfang der exportierten Daten zu steuern.
Zudem werden wesentlich mehr Daten exportiert, so beispielsweise Varianten, EAN Codes, Maße etc…


Ein Beispiel hierfür findet sich unter dem folgenden Link : https://search.google.com/structured-data/testing-tool/?hl=de#url=https%3A%2F%2Foxiddemo.petit-souris.de%2FBekleidung%2FFashion%2FFuer-Ihn%2FJeans%2FKuyichi-Jeans-KYLE.html

Bitte beachten Sie das der erste (mit Warnungen ausgezeichnete) product Export aus dem RDF/A von Oxid stammt, der zweite ist der JSON-LD Export.


Durch die Verlagerung nach unten ist der Export nicht renderblockierend was dem Pagespeed zugute kommt.
Dieses Modul funktioniert in allen aktuellen CE, PE und EE Versionen.

Mehr unter https://gitlab.petit-souris.de/oxid-esales/jsonld

Das Modul interessiert mich.
Habe es gerade installiert, aber läuft bei mir nicht.

Die Moduleinstellungen etc. können gesetzt werden. Alles soweit i.O.
Auch die tmp habe ich geleert.

Im Shop sieht zuerst alles gut aus… aber sobald man einen Artikel in den Warenkorb legt und den Warenkorb einsehen will (oder zur Kasse gehen will) erscheint nicht der Warenkorb, sondern wieder die Startseite des Shops.

Deaktiviere ich das Modul wieder und leere die tmp, so funktioniert wieder alles.

Liegt vielleicht daran, dass ich sehr viele Module habe mit unterschiedlichen Funktionen…!! ??

Ich habe die Version CE 4.10.6 mit php5.6 mit Flow-Theme.

schau mal in den exception log

die “xxxx” sind von mir gesetzt für das Forum.

Faulty component --> jsonldwidget

oxSystemComponentException-oxException (time: xxxx-xx-xx xx:xx:xx): [0]: EXCEPTION_SYSTEMCOMPONENT_CLASSNOTFOUND
Stack Trace: #0 /var/www/webxxx/html/core/oxutilsobject.php(188): oxUtilsObject->_getObject(‘oxsystemcompone…’, 0, Array)
#1 [internal function]: oxUtilsObject->oxNew(‘oxSystemCompone…’)
#2 /var/www/webxxx/html/core/oxfunctions.php(368): call_user_func_array(Array, Array)
#3 /var/www/webxxx/html/core/oxutilsobject.php(178): oxNew(‘oxSystemCompone…’)
#4 [internal function]: oxUtilsObject->oxNew(‘jsonldwidget’)
#5 /var/www/webxxx/html/core/oxfunctions.php(368): call_user_func_array(Array, Array)
#6 /var/www/webxxx/html/core/oxshopcontrol.php(407): oxNew(‘jsonldwidget’)
#7 /var/www/webxxx/html/core/oxwidgetcontrol.php(143): oxShopControl->_initializeViewObject(‘jsonldwidget’, NULL, Array)
#8 /var/www/webxxx/html/core/oxshopcontrol.php(349): oxWidgetControl->_initializeViewObject(‘jsonldwidget’, NULL, Array, NULL)
#9 /var/www/webxxx/html/core/oxshopcontrol.php(126): oxShopControl->_process(‘jsonldwidget’, NULL, Array, NULL)
#10 /var/www/webxxx/html/core/oxwidgetcontrol.php(73): oxShopControl->start(‘jsonldwidget’, NULL, Array, NULL)
#11 /var/www/webxxx/html/core/smarty/plugins/function.oxid_include_widget.php(56): oxWidgetControl->start(‘jsonldwidget’, NULL, Array, NULL)
#12 /var/www/webxxx/html/tmp/smarty/16183385b657d94d0b4a948f258aa904^%%90^90B^90B7B94A%%base.tpl.php(151): smarty_function_oxid_include_widget(Array, Object(Smarty))
#13 /var/www/webxxx/html/core/smarty/Smarty.class.php(1870): include(’/var/www/web238…’)
#14 /var/www/webxxx/html/tmp/smarty/16183385b657d94d0b4a948f258aa904^%%36^366^366ECF91%%page.tpl.php(167): Smarty->_smarty_include(Array)
#15 /var/www/webxxx/html/core/smarty/Smarty.class.php(1870): include(’/var/www/web238…’)
#16 /var/www/webxxx/html/tmp/smarty/16183385b657d94d0b4a948f258aa904^%%C2^C2C^C2C43686%%payment.tpl.php(474): Smarty->_smarty_include(Array)
#17 /var/www/webxxx/html/core/smarty/Smarty.class.php(1264): include(’/var/www/web238…’)
#18 /var/www/webxxx/html/core/oxshopcontrol.php(519): Smarty->fetch(‘page/checkout/p…’, ‘ox|0|0|1|0|ssl’)
#19 /var/www/webxxx/html/core/oxshopcontrol.php(364): oxShopControl->_render(Object(paymentgroups))
#20 /var/www/webxxx/html/core/oxshopcontrol.php(126): oxShopControl->_process(‘payment’, NULL, NULL, NULL)

müsste daran liegen, dass die Klasse in metadata.php anders geschrieben ist: “jsonldWidget” <> “jsonldwidget” und php da zwischen w und W unterscheidet.
Versuch mal metadata.php so anzupassen:

    'files' => array(
        'jsonldWidget' => 'jsonld/src/Controller/jsonldWidget.php',
        'jsonldwidget' => 'jsonld/src/Controller/jsonldWidget.php'
    ),

Ich habe ausgetauscht, aber das PRoblem bleibt bestehen.

tmp geleert etc.

Vorher:
‘files’ => array(
‘jsonldWidget’ => ‘jsonld/src/Controller/jsonldWidget.php’
),

Nachher:
‘files’ => array(
‘jsonldWidget’ => ‘jsonld/src/Controller/jsonldWidget.php’,
‘jsonldwidget’ => ‘jsonld/src/Controller/jsonldWidget.php’
),

Liegt nicht an der Klein-/Großschreibung, das ist eine kleine Eigenheit in den Fehlermeldungen, da werden, soweit ich weiß, die Klassen immer klein geschrieben.
In der metadata.php steht es nach guter alter Sitte camelCase.

Ich vermute es ist ein Zusammenspiel mit anderen Modulen, ich hatte noch nie Probleme in meiner 4.10.4 CE, insofern sollte es etwas anderes sein.

Wenn ich das richtig sehe taucht das Problem in der Zahlungsartauswahl auf, an sich überschreibt json-ld nichts, erweitert nur oxWidget, vielleicht ist es sinnvoll im Backend unter Module mal zu schauen ob da möglicherweise irgendein Zahlungsmodul mit kollidiert?