B2B Modul

Leider ist es in der Community Edition von Oxid nicht möglich Händlern Nettopreise anzuzeigen. Deshalb hat ein Freund, welcher einigen als “spass-tea” aus dem Oxid-Forum bekannt sein könnte, von mir ein Modul entwickelt das dieses Ermöglicht.
Hinweis: Das Oxid B2B Modul wurde nur mit der Version 4.2 des Oxid CE Shops getestet, wenn es zu Problemen kommen sollte, kann man das hier gerne melden.

Bedienungsanleitung

Ist das Modul installiert kann man im Oxid-Adminpanel unter Benutzer verwalten->Benutzergruppen einer bestimmten Benutzergruppe B2B-Rechte erteilen. Alle Benutzer dieser Gruppe haben ab dann im Oxid B2B-Zugang.

Installationsanleitung für das Oxid B2B Modul

1. Schritt

Zunächst wird folgende Datei benötigt: Oxid B2B Modul

Nach dem diese heruntergeladen ist müssen die Dateien im Ordner “copy_this” in dem Archiv unter SHOPDIR entpackt werden, wobei SHOPDIR der Ordner ist in dem Oxid installiert ist.

2. Schritt

Jetzt muss man im Oxid-Adminpanel unter Service->Tools->SQL folgende SQL-Befehle ausführen:

ALTER TABLE oxgroups ADD B2B TINYINT( 1 ) NOT NULL DEFAULT '0';

3. Schritt

In diesem Schritt muss man bei SHOPDIR/out/basic/de/cust_lang.php, wobei SHOPDIR der Ordner ist in dem Oxid installiert ist, folgendes hinzufügen:

'ACCOUNT_LOGIN_B2B' => 'Dies ist ein reiner Reseller-Shop, bitte melden Sie sich mit Ihrem Account an oder registrieren Sie sich und melden sich anschließend bei: HIER ENTSPRECHENDEN TEXT BZW LINK EINFÜGEN',
'ACCOUNT_LOGIN_B2B_VERIFY' => 'Ihr Account wurde noch nicht als Händler verifiziert, weitere Infos: HIER ENTSPRECHENDEN TEXT BZW LINK EINFÜGEN',
'INC_CMP_BASKET_NETTO' => '(Netto)',
'DETAILS_PLUSSHIPPING_NETTO' => 'zzgl. MwSt., zzgl.',
'INC_FOOTER_EXCLTAXANDPLUSSHIPPING' => '* Alle Preise zzgl. MwSt., zzgl. Versandkosten.',
'INC_HEADER_EXCLTAXANDPLUSSHIPPING' => 'Alle Preise zzgl. MwSt., zzgl. Versandkosten.'

4. Schritt

Nun muss im Oxid-Adminpanel unter Stamdaten->Grundeinstellung->System->Module folgendes eingetragen werden:

oxbasketitem => b2b/basketitemb2b
oxbasket => b2b/basketb2b
oxuser => b2b/userb2b
oxarticle => b2b/articleb2b
usergroup_main => b2b/usergroupmainb2b
oxcmp_user => b2b/cmp_userb2b
oxprice => b2b/priceb2b
oxshopcontrol => b2b/shopcontrolb2b
oxsimplevariant => b2b/simplevariantb2b

5. Schritt

Im letzten Schritt sind folgende Template Anpassungen durchzuführen. Die Templates sind standardmäßig unter SHOPDIR/out/basic/tpl/, wobei SHOPDIR der Ordner ist in dem Oxid installiert ist, zu finden:

admin/usergroup_main.tpl

Nach

<tr>
    <td class="edittext" width="100">
        [{ oxmultilang ident="GENERAL_NAME" }]
    </td>
    <td class="edittext">
        <input type="text" class="editinput" size="25" maxlength="[{$edit->oxgroups__oxtitle->fldmax_length}]" name="editval[oxgroups__oxtitle]" value="[{$edit->oxgroups__oxtitle->value}]" [{ $readonly }] [{ $disableSharedEdit }]>
        [{ oxinputhelp ident="HELP_GENERAL_NAME" }]
    </td>
</tr>

folgendes einfügen

<tr>
    <td class="edittext" width="70">
        B2B
    </td>
    <td class="edittext">
        <input class="edittext" type="checkbox" name="editval[oxgroups__b2b]" value='1' [{if $edit->oxgroups__b2b->value == 1}]checked[{/if}] [{ $readonly }] [{ $disableSharedEdit }]>
    </td>
</tr>

details.tpl

Folgendes

[{ oxmultilang ident="DETAILS_PLUSSHIPPING" }]

ersetzen mit

[{if $oxcmp_user->b2b}]
    [{ oxmultilang ident="DETAILS_PLUSSHIPPING_NETTO" }]
[{else}]
    [{ oxmultilang ident="DETAILS_PLUSSHIPPING" }]
[{/if}]

Folgendes

[{$priceItem->fbrutprice}]

ersetzen mit

[{if $oxcmp_user->b2b}]
    [{$priceItem->fnetprice}]
[{else}]
    [{$priceItem->fbrutprice}]
[{/if}]

_footer.tpl

Folgendes

[{ oxmultilang ident="INC_FOOTER_INCLTAXANDPLUSSHIPPING" }]

ersetzen mit

[{if $oxcmp_user->b2b}]
    [{ oxmultilang ident="INC_FOOTER_EXCLTAXANDPLUSSHIPPING" }]
[{else}]
    [{ oxmultilang ident="INC_FOOTER_INCLTAXANDPLUSSHIPPING" }]
[{/if}]

inc/popup_basket.tpl

Nach

[{ $oxcmp_basket->getFDeliveryCosts() }] [{ $currency->sign}]

folgendes einfügen

[{if $oxcmp_user->b2b}]
    [{ oxmultilang ident="INC_CMP_BASKET_NETTO" }]
[{/if}]

Folgend

[{ $oxcmp_basket->getFProductsPrice()}] [{ $currency->sign}]

ersetzen mit

[{if $oxcmp_user->b2b}]
    [{ $oxcmp_basket->getProductsNetPrice() }]
[{else}]
    [{ $oxcmp_basket->getFProductsPrice()}]
[{/if}]
[{ $currency->sign}]
[{if $oxcmp_user->b2b}]
    [{ oxmultilang ident="INC_CMP_BASKET_NETTO" }]
[{/if}]

dyn/mini_basket.tpl

Nach

[{ $oxcmp_basket->getFDeliveryCosts() }] [{ $currency->sign}]

folgendes einfügen

[{if $oxcmp_user->b2b}]
    [{ oxmultilang ident="INC_CMP_BASKET_NETTO" }]
[{/if}]

Folgendes

[{ $oxcmp_basket->getFProductsPrice()}] [{ $currency->sign}]

ersetzen mit

[{if $oxcmp_user->b2b}]
    [{ $oxcmp_basket->getProductsNetPrice() }]
[{else}]
    [{ $oxcmp_basket->getFProductsPrice()}]
[{/if}]
[{ $currency->sign}]
[{if $oxcmp_user->b2b}]
    [{ oxmultilang ident="INC_CMP_BASKET_NETTO" }]
[{/if}]

dyn/top_basket.tpl

Folgendes

[{ $oxcmp_basket->getFProductsPrice()}]

ersetzen mit

[{if $oxcmp_user->b2b}]
    [{$oxcmp_basket->getProductsNetPrice()}]
[{else}]
    [{ $oxcmp_basket->getFProductsPrice()}]
[{/if}]

_path.tpl

Folgendes

[{ oxmultilang ident="INC_HEADER_INCLTAXANDPLUSSHIPPING" }]

ersetzen mit

[{if $oxcmp_user->b2b}]
    [{ oxmultilang ident="INC_HEADER_EXCLTAXANDPLUSSHIPPING" }]
[{else}]
    [{ oxmultilang ident="INC_HEADER_INCLTAXANDPLUSSHIPPING" }]
[{/if}]

6. Schritt

Unter SHOPDIR/tmp/, wobei SHOPDIR der Ordner ist in dem Oxid installiert ist müssen jetzt nun noch alle Dateien gelöscht werden. Keine Angst dies sind nur temporäre Dateien die der Oxid-Shop bei bedarf wieder neu generiert.

Individuelle Anpassungen

Um individuelle Anpassungen an die eigenen Bedürfnisse vorzunehmen ist ein Blick in SHOPDIR/modules/b2b/shopcontrolb2b.php nötig, wobei SHOPDIR der Ordner ist in dem Oxid installiert ist.

Anpassung welche Seiten für nicht B2B-Nutzer einsehbar sind

Hierzu betrachtet man folgende zwei Arrays

protected $_showContentToNonB2B = array('oximpressum');
protected $_showViewsToNonB2B = array('account', 'forgotpwd', 'register', 'login', 'contact');

In diesem Fall ist es so, dass durch protected $_showContentToNonB2B = array('oximpressum'); das das Impressum nicht eingeloggten Nutzern, also der nicht B2B-Kunden, angezeigt wird. Diese Einträge entsprechen den Idents die unter Kundeninformationen->CMS-Seiten->Stamm->Ident. zu finden sind.
Bei protected $_showViewsToNonB2B = array('account', 'forgotpwd', 'register', 'login', 'contact'); wird angegeben welche statischen Seiten (Views) der nicht eingeloggten Nutzern, also der nicht B2B-Kunden, angezeigt bekommt und betreten darf. Die Voreinstellungen welche hier getroffen wurden dürften im Regelfall so stimmen, da der Nutzer sich hier:

  • Sich mit seinem vorhanden Account anmelden bzw. diesen verwalten kann (account)
  • Ein neues Passwort anfordern kann (forgotpwd)
  • Einen neuen Account registrien kann (register)
  • Sich mit seinem vorhanden Account anmelden kann (login)
  • Die Kontaktseite aufrufen kann (contact)

Falls eine der aufgelisteten Aktionen nicht gewünscht ist muss einfach der entsprechende Eintrag entfernt werden.

One Response to “B2B Modul”

  1. Oxid B2B Modul | GMAlex - deviant design and development Says:

    [...] B2B Modul [...]

Leave a Reply