Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Selbstabholung für zwei Standorte, wie ändern?

    Thomas M.

    • Fördermitglied
    • Beiträge: 196
    Grüß Euch,

    obwohl ich keinerlei Kenntnisse in Javascript oder php habe, bloß ein wenig HTML und css kann bin ich, Dank des Forums und viel Zeit, sehr weit gekommen.
     :thx:  :pro:

    Momentan versuche ich gerade die /includes/shipping/selfpickup.php so zu ändern, das unter dem Punkt Selbstabholung zwei Auswahlmöglichkeiten (Zentrale und Produktion) zur Verfügung stehen.

    einer meiner vielen Versuche sieht so aus:
    /includes/modules/shipping/selfpickup.php
    Code: PHP  [Auswählen]
    <?PHP

    class selfpickup
    {
        var $code, $title, $description, $icon, $enabled;

        function selfpickup()
        {
            $this->code        = 'selfpickup';
            $this->title       = MODULE_SHIPPING_SELFPICKUP_TEXT_TITLE;
            $this->description = MODULE_SHIPPING_SELFPICKUP_TEXT_DESCRIPTION;
            $this->description = MODULE_SHIPPING_SELFPICKUP_TEXT_DESCRIPTION1;
            $this->icon        = '';   // change $this->icon =  DIR_WS_ICONS . 'shipping_ups.gif'; to some freeshipping icon
            $this->sort_order  = MODULE_SHIPPING_SELFPICKUP_SORT_ORDER;
            $this->enabled = ((MODULE_SHIPPING_SELFPICKUP_STATUS == 'True') ? true : false);
        }

        function quote($method = '')
        {
            $this->quotes = array(
                'id' => $this->code,
                'module' => MODULE_SHIPPING_SELFPICKUP_TEXT_TITLE
            );

            $this->quotes['methods'] = array(array(
                'id'    => $this->code,
                'title' => MODULE_SHIPPING_SELFPICKUP_TEXT_WAY,
                'cost'  => 0
            ));

                        $this->quotes['methods'] = array(array(
                'id'    => $this->code,
                'title' => MODULE_SHIPPING_SELFPICKUP_TEXT_WAY1,
                'cost'  => 0
            ));
                   
            if(xtc_not_null($this->icon))
            {
                $this->quotes['icon'] = xtc_image($this->icon, $this->title);
            }

            return $this->quotes;
        }

        function check()
        {
            $check = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_SELFPICKUP_STATUS'");
            $check = xtc_db_num_rows($check);

            return $check;
        }

        function install()
        {
            xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_SELFPICKUP_STATUS', 'True', '6', '7', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
            xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_SELFPICKUP_ALLOWED', '', '6', '0', now())");
            xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_SELFPICKUP_SORT_ORDER', '0', '6', '4', now())");
        }

        function remove()
        {
            xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        }

        function keys()
        {
            return array('MODULE_SHIPPING_SELFPICKUP_STATUS','MODULE_SHIPPING_SELFPICKUP_SORT_ORDER','MODULE_SHIPPING_SELFPICKUP_ALLOWED');
        }
    }
    ?>

    /lang/german/modules/shipping/selfpickup.php
    Code: PHP  [Auswählen]
    <?PHP

    define('MODULE_SHIPPING_SELFPICKUP_TEXT_TITLE', 'Selbstabholung');
    define('MODULE_SHIPPING_SELFPICKUP_TEXT_DESCRIPTION', 'Produktion');
    define('MODULE_SHIPPING_SELFPICKUP_TEXT_DESCRIPTION1', 'Zentrale');
    define('MODULE_SHIPPING_SELFPICKUP_TEXT_WAY', 'Produktion');
    define('MODULE_SHIPPING_SELFPICKUP_TEXT_WAY1', 'Zentrale');
    define('MODULE_SHIPPING_SELFPICKUP_ALLOWED_TITLE' , 'Erlaubte Zonen');
    define('MODULE_SHIPPING_SELFPICKUP_ALLOWED_DESC' , 'Geben Sie <b>einzeln</b> die Zonen an, in welche ein Versand m&ouml;glich sein soll. (z.B. AT,DE (lassen Sie dieses Feld leer, wenn Sie alle Zonen erlauben wollen))');
    define('MODULE_SHIPPING_SELFPICKUP_STATUS_TITLE', 'Selbstabholung aktivieren');
    define('MODULE_SHIPPING_SELFPICKUP_STATUS_DESC', 'M&ouml;chten Sie Selbstabholung anbieten?');
    define('MODULE_SHIPPING_SELFPICKUP_SORT_ORDER_TITLE', 'Sortierreihenfolge');
    define('MODULE_SHIPPING_SELFPICKUP_SORT_ORDER_DESC', 'Reihenfolge der Anzeige');

    (den auskommentierten Text habe ich zur Übersichtlichkeit bewusst weggelassen, ich hoffe das geht in Ordnung)

    Kann mir da bitte jemand von Euch helfen?

    Danke,
    Thomas

    Linkback: https://www.modified-shop.org/forum/index.php?topic=25288.0

    inox

    • Neu im Forum
    • Beiträge: 45
    Re: Selbstabholung für zwei Standorte, wie ändern?
    Antwort #1 am: 15. März 2013, 17:14:51
    Warum klonst du das Modul nicht einfach? Modul lokal kopieren, Klassen- Konstanten- und Funktionsbezeichnungen sowie Dateinamen ändern (aus selfpickup selfpickup1 machen) und dann nur noch die Texte entsprechend anpassen?

    Damit hast du 2 voneinander unabhängige Module, die sich nicht ins Gehege kommen.

    Grüße
    Uwe

    Thomas M.

    • Fördermitglied
    • Beiträge: 196
    Re: Selbstabholung für zwei Standorte, wie ändern?
    Antwort #2 am: 15. März 2013, 19:24:18
    Danke für Deinen Tipp Uwe,
    diese Möglichkeit ist mir bewusst.

    Übrigends, wenn man Barzahlung bei beiden Abholungmöglichkeiten anbieten will muss man auch die
    includes/modules/payment/cash.php und lang/german/modules/payment/cash.php nach Anleitung duplizieren.
    https://www.modified-shop.org/wiki/Tutorial:_Kopieren_eines_Versandmoduls
    in der includes/modules/payment/cash1.php gehört dann noch
    Code: PHP  [Auswählen]
    if ($_SESSION['shipping']['id'] != 'selfpickup_selfpickup')

    geändert auf
    Code: PHP  [Auswählen]
    if ($_SESSION['shipping']['id'] != 'selfpickup1_selfpickup1')

    ist eigentlich eine rein optische Angelegenheit, ich finde den "soll-Zustand" ansprechender als den "ist-Zustand"!
    Gibt es noch Ideen wie ich das lösen kann?

    Gruß,
    Thomas

    OM-D

    • Neu im Forum
    • Beiträge: 40
    Re: Selbstabholung für zwei Standorte, wie ändern?
    Antwort #3 am: 29. Juli 2013, 09:23:29
    Der "sollzustand" erhälst Du, indem Du in checkout_shipping.php und checkout_shipping_block.html ein klein wenig ergänzt/änderst :

    in checkout_shipping.php über
    Code: PHP  [Auswählen]
    $smarty->assign('language', $_SESSION['language']);
    einfügen:

    Code: PHP  [Auswählen]
    $shippingtitleanzeige = "ja";
    if($_SESSION['shipping']['id'] == 'selfpickup1_selfpickup1')
    {
    $shippingtitleanzeige = "nein";
    }
    $smarty->assign('SHIPPINGTITLEANZEIGE', $shippingtitleanzeige);

    dann noch das Template checkout_shipping_block.html entsprechend den eigenen Wünsche ändern z.B. :

    ersetze in checkout_shipping_block.html
    Code: PHP  [Auswählen]
      <tr>
        <td colspan="3" class="header"><strong>{$module_data.module}</strong></td>
      </tr>
     
    mit

    Code: PHP  [Auswählen]
    {* Title nur einmal bei diversen Selbstabhol-Auswahlmöglichkeiten anzeigen *}
    {if $SHIPPINGTITLEANZEIGE == 'ja'}
      <tr>
        <td colspan="3" class="header"><strong>{$module_data.module}</strong></td>
      </tr>
    {/if}

    Thomas M.

    • Fördermitglied
    • Beiträge: 196
    Re: Selbstabholung für zwei Standorte, wie ändern?
    Antwort #4 am: 10. August 2013, 17:25:13
    Servus OM-D,

    Danke für Deine Unterstützung (bin erst heute zum Testen gekommen), jedoch "löscht" mir Dein Vorschlag sämtliche Titel bei der Versandinformation.

    Gruß,
    Thomas

    OM-D

    • Neu im Forum
    • Beiträge: 40
    Re: Selbstabholung für zwei Standorte, wie ändern?
    Antwort #5 am: 11. August 2013, 11:14:29
    Sorry, kann auch gar nicht klappen, da $SHIPPINGTITLEANZEIGE dort noch gar nicht aus der Session abgefragt werden kann. Klassischer Denkfehler ;)

    Benenne mal die zeite Selbstabholung in der Datei
    /lang/german/modules/shipping/selfpickup2.php
    z.B. in "Selbst-Abholung" um und lass die erste bei "Selbstabholung"

    Code: PHP  [Auswählen]
    define('MODULE_SHIPPING_SELFPICKUP2_TEXT_TITLE', 'Selbst-Abholung');

    und dann versuch mal in der checkout_shipping_block.html mit der Abfrage

    Code: PHP  [Auswählen]
    {if $module_data.module == 'Selbstabholung'}

    bzw.

    Code: PHP  [Auswählen]
    {if $module_data.module != 'Selbst-Abholung'}

    für die zweite selfpickup den title raus zu nehmen, so dass nur noch die description bleibt. So sollte es gehen.
               
    anything