B2B-Modul für OXID 6

Hallo liebe OXID-Community,

ich suche gerade nach einen B2B-Modul für OXID 6.
Funktionalität, wenn Kunden im Frontend angemeldet sind und der Gruppe Händler zugeordnet sind, dann sollen diese alle Preise als Nettopreise angezeigt bekommen.

Aktuell habe ich in der 4er-Version das einfache B2B-Version von Alpha-Sys. Dieses habe ich aber nirgendwo für die 6er Version gefunden. Auch nicht bei packagist.org .

Habe ich da was übersehen, heisst das dort anders? Oder gibt es sowas irgendwo unkompliziert?
Danke vorab!

Hast du auch den Entwickler selbst gefragt, ob es sein Modul für V6 gibt?
Gelegentlich gibts Vorabversionen, die noch nicht veröffentlicht wurden.

Das habe ich noch nicht gemacht, denn ich möchte jemanden, der ein Modul ohnehin schon kostenfrei anbietet nicht kognitiv belasten.

Schau mal hier:

1 Like

Hallo,
das Modul ist von mir. :wink:
Wenn du dich noch ca. 1 Woche gedulden kannst, dann habe ich das Modul auf Oxid 6 migriert.
Steht eh noch auf meiner ToDo-Liste.

Grüße
Fabian

2 Likes

Hallo Fabian,

danke für die Rückmeldung. Ich bin gerade mit einer Portierung eines Shops von 4 auf 6 beschäftigt und schon total in Verzug weil ich an etlichen - eigentlich banalen - Dingen hängen bleibe.

Ich habe dein 4-Stündiges Update-Video vor mir und durchlaufe immer wieder den Abschnitt zwischen 1:05:30 und 1:40:00 und lese die offiziellen OXID-Artikel. (da geht es um die Modulportierung)

Ich versuche gerade schon den ganzen Tag erfolglos dieses - eigentlich einfache B2B-Plugin - auf die neuen Notoationen umzustellen weil ich das selber lernen will. Ich bin aber schon total am verzweifeln!

Ich habe ein “path”-Repository extensions/modulname angelegt, wie im Video beschrieben.
Composer kopiert auch das Modul korrekt in den source/modules-Ordner.
Nur hänge ich gerade bei der Autoloader-Sache und komme da nicht weiter: Wenn ich “composer update --no-dev” mache, dann durchläft er alles aber der Namespace wird NICHT in der autoload_psr4.php ergänzt.

Den Namespace habe ich in der extensions/modulname/Core/Config.php angegeben und auch alle anderen Angaben habe ich analog zu den anderen Modulen und Anleitungen gemacht.

Wenn ich das Modul im Backend aktivieren will, gibt es einen Eintrag im Errorlog.

[2019-03-20 21:52:41] OXID Logger.ERROR: Module class MeinVendor\MeinModul\Core\Config not found. Module ID <modul-id> disabled ...
Ich glaube aber dass das ein Folgefehler ist weil der Namespace nicht im Autoloader registriert wurde.

Diese Anleitung habe ich auch schon durchgearbeitet:
https://docs.oxid-esales.com/developer/en/6.0/modules/skeleton/composerjson/module_via_composer.html#module-extra-20160524

Kannst Du bitte die composer.json und die Dateipfade überprüfen?
Unter Windows scheint das egal zu sein, aber die Groß- und Kleinschreibung ist essentiell.
Beispiel:

<?php
namespace D3\Heidelpay\Models\Parameter\Group;
Class CompanyData {}

muss im diesem Pfad sein:
src/Models/Parameter/Group/CompanyData.php

in der composer.json steht dann (nur ein Teil):

...
      "extra": {
        "oxideshop": {
          "source-directory": "/src",
          "target-directory": "d3/heidelpay"
        }
      },
     "autoload": {
        "psr-4": {
          "D3\\Heidelpay\\": "../../../source/modules/d3/heidelpay"
        }
      }
1 Like

Danke, Kristian.

Nun funktioniert es. Zwar nicht beim ersten mal, sondern nach ein bissl herumprobieren…

Ich habe in der (hier) “CompanyData.php” die namespace-Anweisung ganz nach oben in die zweite Zeile geschireben (vorher war oben noch ein Kommentar) und danach das namespace-Schlüsselwort.

Und dann habe ich meinen Vendorname an allen Stellen gleich geschrieben.
Beim Vendorname im modules-Ordner hatte eine eine Abkürzung… Scheinbar muss wirklich der Vendorname in Namespace und Pfaden und Modulangaben identisch sein.
Dann stand es bei mir auch in der autoload_psr4.php drinnen.

Nun gibt es aber ein neues Problem! Dadurch dass sich mein Vendorname geändert hatte und damit auch der Pfad im Modules-Ordner (von Abkürzung zu ausgeschrieben) könnte ich das Modul nicht aktivieren (“Kann nicht geladen werden”) --> Code-Rückwärtssuche --> in der aModulePaths in oxconfig steht der alte Pfad drinnen und ich bekomme den nicht raus. Wieso muss das hier unbedingt als BLOB abgespeichert sein!!! Ein normales serialisiertes Array mit Datentyp Text reicht doch auch aus!

Wie kann ich nun gezielt diesen BLOB-Wert bearbeiten?

Nachtrag. Mit etwas Googlesuche habe ich gefunden, wie man den Blob lesen kann:

SELECT OXVARVALUE, DECODE(OXVARVALUE, 'der_key_aus_der_config_klasse') AS OXVARVALUEDECODED
FROM oxconfig
WHERE OXVARNAME LIKE 'aModulePaths'

Leider wurde bei mir im phpmyadmin leider in beiden Spalten ein “[BLOB 769 B]” angezeigt.
Den Klartext bekommt man wenn man bei dern “Optionen”, “BLOB Inhalte anzeigen” auswählt.

Nun kann man das serialisierte Array bearbeiten und nach folgendem Vorbild wieder in die DB schreiben.
ggl gleich direkt mit einem UPDATE-Statement

Nun endlich endet diese Odyssee und mein Modul funktioniert - heyyyy endlich Nettopreise nach über 10 Stunden Verzweiflung! Ihr von Oxid habt da echt ein paar große Hürden eingebaut.

@Alpha-Sys
Ich möchte dem Lehrmeister gegenüber nicht Lehrmeisterhaft erscheinen aber ich haben einen Fehler in deinem anderen Modul “say_seotitle” gefunden. Auch moduleinternals zeigt das an.

Wenn man das b2b-modul einmal anfasst, kann dabei auch gleich das seotitle-Modul korrigiert werden.
Die Blockerweiterung für das Kategorieformular greift ins Leere. Der Block scheint in den unterorder include umgezogen zu sein.

in der metadata.php muss aus
array('template' => 'category_main.tpl', 'block'=>'admin_category_main_form', 'file'=>'views/blocks/admin_category_main_form.tpl'),
das hier werden:
array('template' => 'include/category_main_form.tpl', 'block'=>'admin_category_main_form', 'file'=>'views/blocks/admin_category_main_form.tpl'),

Hi,
du hast recht. Der Pfad zum Template hat sich geändert. Ich habe es im SEO Title Modul soeben angepasst. In der neuen Version (3.0.3) passt der Pfad nun wieder. Danke für den Hinweis.

Das B2B Modul mache ich wenn es gut läuft heute Abend noch fertig.

Grüße
Fabian

2 Likes

Hi,
hier gibt es übrigens das neue B2B Modul:
https://packagist.org/packages/alphasys/asy_b2b

Grüße
Fabian

Super danke. Habe mittlerweile selber das Modul auf OXID 6 portiert - ich musste das ja lernen :wink:
Hab auch meine ganzen anderen Module vollständig angepasst nun nun geht auch die WaWi-Synchronisation wieder im neuen Shop und arbeitet mit dem Amazon- und Ebay-Modul zusammen.

Vorgestern habe ich den Shop auf einen neuen Server umziehen lassen und geupdadet.

Ich hatte den Thread deshalb eröffnet weil ich total verzweifelt war und das lokale Path-Deployment und die Namespaces nicht funktioniert hatten, wie in deinem Update-Schulungsvideo. Scheinbar dürfen die Path-Repositories nicht im vendor-Ordner sein, sondern nur neben source und vendor.