Bestellung per Paypal bezahlt, Ware nur teilweise lieferbar...

Thema wurde von Rainer Amend, 18. September 2019 erstellt.

  1. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    Hallo,

    Bestellung im Shop 100 Euro, Zahlung per Paypal 100 Euro. Ware nur zu 50% lieferbar 50 Euro.

    Betrag über den Shop und Paypal zurück gezahlt 50 Euro. Aber jetzt steht in der Bestellung noch 100 Euro drin.
    Wie korrigiert man das, habe nix gefunden! Paypal stimmt wieder! In Mein Büro stimmt es auch.

    Also wie wird das in Gambio richtig gebucht bzw. berechnet, dass der/die Beträge stimmen??
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    Du musst die Artikel korrigieren und dann die Beträge neu berechnen lassen (MwSt und so sollte auch überprüft werden).
     
  3. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    versucht habe ich es, aber wie bekomme ich die Versandkosten von 5,95 Euro auf 0 Euro gesetzte?
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    raus nehmen und speichern?
     
  5. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    Ja, ich finde es nicht, wie ich "Den Versand auf 0 oder löschen kann"! Der Betrag des Artikels lässt sich ändern. Mir geht es um die Versandkosten. Das bleibt stehen. Das muss ich ändern und darf keine Änderung auf Paypal haben.
     
  6. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    Du öffnest die Bestellung und gehst auf den Button "Bearbeiten"
    Dann klickst Du oben auf den Reiter "Versandarten, Zahlungsweisen und Summen"
    Nun kannst Du rechts die Versandart mit den Kosten umstellen. und durch den button "speihcern" bestätigen.

    Jetzt kannst Du in dem Block "Zusammenfassung" darunter überprüfen, ob alles stimmt.
     
  7. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    Danke, hat geklappt, nur habe ich da noch Fehler entdeckt.

    Siehe Bild:

    3 x Warnung und "DHL und HERMES" sind nicht sichtbar. Man sieht nur "Kein Versand und Selbstabholung".

    Wie und wo muss das geändert werden?
     

    Anhänge:

  8. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    Da wird die Sprachdatei nicht gefunden.
    Hast Du das in GXModules? wenn ja, erstelle in dem selben Verzeichnis im Ordner "Shop" ein weiteres Unterverzeichnis:
    Overloads/LanguageTextManager/
    und darin eine Datei
    MappingArrayExtension.php
    mit diesem Inhalt:
    PHP:
    <?php

    class MappingArrayExtension extends MappingArrayExtension_parent
    {
        protected function 
    _initMappingArray()
        {
            
    parent::_initMappingArray();

            
    // hier die entsprechenden geklonten Versandmodule eintragen
            
    $mappingArray = array(
                
    'modules/shipping/table2.php' => 'table2',
                
    'modules/shipping/table3.php' => 'table3',
            );

            foreach(
    self::$languages as $languageArray)
            {
                foreach(
    $mappingArray as $old => $new)
                {
                    
    $old 'lang/' $languageArray['directory'] . '/' sprintf($old$languageArray['directory']);
                    
    $new sprintf($new$languageArray['directory']);

                    
    self::$sectionMappings[$old] = $new;
                }
            }
        }
    }
     
  9. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    Genauso habe ich es unter

    shop/GXModules/Overloads/LanguageTextManager/MappingArrayExtension.php


    <?php

    class MappingArrayExtension extends MappingArrayExtension_parent
    {
    protected function _initMappingArray()
    {
    parent::_initMappingArray();

    // hier die entsprechenden geklonten Versandmodule eintragen
    $mappingArray = array(
    'modules/shipping/table2.php' => 'table2',
    'modules/shipping/table3.php' => 'table3',
    );

    foreach(self::$languages as $languageArray)
    {
    foreach($mappingArray as $old => $new)
    {
    $old = 'lang/' . $languageArray['directory'] . '/' . sprintf($old, $languageArray['directory']);
    $new = sprintf($new, $languageArray['directory']);

    self::$sectionMappings[$old] = $new;
    }
    }
    }
    }

    eingetragen.

    Cache geleert. Verändert sich aber nix.

    (Link nur für registrierte Nutzer sichtbar.)
    Versandart
    aktuell
    Kein Versand

    neu
    Kosten:
     
  10. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    Hast Du auch den Text-Cache geleert?
    Text -> Module -> Seiten -> Browser
    Seite neu aufrufen
     
  11. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    #11 Rainer Amend, 19. September 2019
    Zuletzt bearbeitet: 19. September 2019
    Ja, habe gerade den Cache nochmals gelöscht und den Cache im Browser auch. Bleibt unverändert.

    Soll ich ein Ticket einstellen?
     
  12. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    Da das eine individuelle Anpassung ist, wird ein Ticket nicht unbedingt nützen

    Schau mal bitte in die lang-Dateien der Module, ob da diese Zeilen oben stehen:
    Code:
    $languageTextManager = MainFactory::create_object('LanguageTextManager', array(), true);
    $languageTextManager->init_from_lang_file('table2');
    (entsprechend des Modules)
    Wenn nicht, setze die Zeile einmal über das
    $t_language_text_section_content_array = array
     
  13. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    du meinst hier: shop/GXModules/Overloads/LanguageTextManager/MappingArrayExtension.php

    (entsprechend des Modules)
    Wenn nicht, setze die Zeile einmal über das
    $t_language_text_section_content_array = array

    finde ich weder noch!

    Ich brauche das immer etwas präzieser... immer den kompletten Pfad.
     
  14. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    nein, ich meine die Dateien in lang/german/user_sections/.../
    oder in GXModules/.../.../Shipping/Shop/TextPhrases/german/
    je nachdem, wo Du die Sprachdateien abgelegt hast
     
  15. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    #15 Rainer Amend, 19. September 2019
    Zuletzt bearbeitet: 19. September 2019
    blickt keiner mehr durch, hier habe ich das .... der Text wird gefunden ...



    $languageTextManager = MainFactory::create_object('LanguageTextManager', array(), true);
    $languageTextManager->init_from_lang_file('table2');

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


    public function __construct() {
    global $order;

    $this->code = 'table2';
    $this->title = defined('MODULE_SHIPPING_TABLE2_TEXT_TITLE') ? MODULE_SHIPPING_TABLE2_TEXT_TITLE : '';
    $this->description = defined('MODULE_SHIPPING_TABLE2_TEXT_DESCRIPTION') ? MODULE_SHIPPING_TABLE2_TEXT_DESCRIPTION : '';
    $this->sort_order = defined('MODULE_SHIPPING_TABLE2_SORT_ORDER') ? MODULE_SHIPPING_TABLE2_SORT_ORDER : '0';
    $this->icon = '';
    $this->tax_class = defined('MODULE_SHIPPING_TABLE2_TAX_CLASS') ? MODULE_SHIPPING_TABLE2_TAX_CLASS : '0';
    $this->enabled = defined('MODULE_SHIPPING_TABLE2_STATUS') && MODULE_SHIPPING_TABLE2_STATUS === 'True';

    if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLE2_ZONE > 0) ) {
    $check_flag = false;
    $check_query = xtc_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TABLE2_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
    while ($check = xtc_db_fetch_array($check_query)) {
    if ($check['zone_id'] < 1) {
    $check_flag = true;
    break;
    } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
    $check_flag = true;
    break;
    }
    }

    if ($check_flag == false) {
    $this->enabled = false;
    }

    }
    }


    function quote($method = '') {
    global $order, $shipping_weight, $shipping_num_boxes,$xtPrice;

    if (MODULE_SHIPPING_TABLE2_MODE == 'price') {
    $order_total = $xtPrice->xtcRemoveCurr($_SESSION['cart']->show_total());
    } else {
    $order_total = $shipping_weight;
    }

    // BOF GM_MOD:
    $shipping = -1;

    $table_cost = preg_split('/[:,]/' , MODULE_SHIPPING_TABLE2_COST);
    $size = sizeof($table_cost);
    for ($i=0, $n=$size; $i<$n; $i+=2) {
    if ($order_total <= $table_cost[$i]) {
    $shipping = $table_cost[$i+1];
    break;
    }
    }

    // BOF GM_MOD
    if(MODULE_SHIPPING_TABLE2_MODE == 'weight' && $shipping != -1)
    {
    $shipping = $shipping * $shipping_num_boxes + (double)MODULE_SHIPPING_TABLE2_HANDLING;
    }
    elseif($shipping == -1)
    {
    $error = true;
    $shipping = 0;
    $shipping_method = MODULE_SHIPPING_TABLE2_UNDEFINED_RATE;
    }

    $this->quotes = array('id' => $this->code,
    'module' => MODULE_SHIPPING_TABLE2_TEXT_TITLE,
    'methods' => array(array('id' => $this->code,
    'title' => MODULE_SHIPPING_TABLE2_TEXT_WAY,
    'cost' => $shipping)));
    // EOF GM_MOD

    if ($this->tax_class > 0) {
    $this->quotes['tax'] = xtc_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
    }

    if (xtc_not_null($this->icon)) $this->quotes['icon'] = xtc_image($this->icon, $this->title);

    // BOF GM_MOD:
    if ($error == true) $this->quotes['error'] = MODULE_SHIPPING_TABLE2_UNDEFINED_RATE;

    return $this->quotes;
    }

    function check() {
    if (!isset($this->_check)) {
    $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_TABLE2_STATUS'");
    $this->_check = xtc_db_num_rows($check_query);
    }
    return $this->_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_TABLE2_STATUS', 'True', '6', '0', 'gm_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_TABLE2_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_TABLE2_COST', '', '6', '0', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_TABLE2_MODE', 'weight', '6', '0', 'gm_cfg_select_option(array(\'weight\', \'price\'), ', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE2_HANDLING', '0', '6', '0', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLE2_TAX_CLASS', '0', '6', '0', 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLE2_ZONE', '0', '6', '0', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE2_SORT_ORDER', '0', '6', '0', now())");
    }

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

    function keys() {
    return array('MODULE_SHIPPING_TABLE2_STATUS', 'MODULE_SHIPPING_TABLE2_COST', 'MODULE_SHIPPING_TABLE2_MODE', 'MODULE_SHIPPING_TABLE2_HANDLING','MODULE_SHIPPING_TABLE2_ALLOWED', 'MODULE_SHIPPING_TABLE2_TAX_CLASS', 'MODULE_SHIPPING_TABLE2_ZONE', 'MODULE_SHIPPING_TABLE2_SORT_ORDER');
    }
    }

    MainFactory::load_origin_class('table2');
     
  16. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    #16 barbara, 19. September 2019
    Zuletzt bearbeitet: 19. September 2019
    Sorry, jetzt habe ich mich verheddert:oops:

    es ist der Verweis auf die Sprachdatei und die muss natürlich in die Modul-Datei.
    Ist also alles richtig bei Dir.

    Nachtrag:
    ich habe jetzt bei mir in den Shops und Testshops mal nachgesehen, ich habe den Text mal gar nciht drinnen, einmal den Text wie bei Dir:
    $languageTextManager = MainFactory::create_object('LanguageTextManager', array(), true);
    $languageTextManager->init_from_lang_file('table2');

    und einmal einen etwas anderen:
    PHP:
     $languageTextManager MainFactory::create_object('LanguageTextManager', array(), true);
       
    $languageTextManager->init_from_lang_file('item2');
    Wenn das bei Dir mit dem "table2" nicht geht, dann versuche es doch einmal mit dem "item2"
     
  17. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    weder noch!

    mir fällt auf, dass table etwas anders aussieht als table2, dass ist aber korrekt? Hat vielleicht nix mit einander zu tun.
     
  18. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    Dein Pfad:
    shop/GXModules/Overloads/LanguageTextManager/MappingArrayExtension.php

    passt nicht ganz.
    Man kann die Sprachdateien und das Overload auch in GXModules anlegen.
    Der Pfad müsste dann etwa so sein:
    GXModules/DeinName/Modulname/Shop/Overloads/LanguageTextManager/MappingArrayExtension.php

    Wobei "DeinName" und "Modulnabme" von Dir vergeben werden

    Wenn Du aber die Sprachdateien unter lang/german/user_sections hast, kannst Du das Overload auch in den Ordner
    GXUserComponents/overloads/LanguageTextManager/
    ablegen.
    Das ist dann einfacher.


    P.S. wo kann ich Urlaub beantragen? ich glaube ich bin reif dafür.
     
  19. Rainer Amend

    Rainer Amend Erfahrener Benutzer

    Registriert seit:
    24. Dezember 2015
    Beiträge:
    683
    Danke erhalten:
    15
    Danke vergeben:
    116
    #19 Rainer Amend, 20. September 2019
    Zuletzt bearbeitet: 20. September 2019
    Moin Moin,

    ich fasse mal zusammen:

    IST zur Zeit:
    includes/modules/shipping/table2.php
    includes/modules/shipping/table3.php
    lang/german/user_sections/modules/shipping/table2.lang.inc.php
    lang/german/user_sections/modules/shipping/table3.lang.inc.php

    soll geändert werden auf:
    GXModules/DeinName/Modulname/Shop/Overloads/LanguageTextManager/MappingArrayExtension.php

    Hier kann ich eintragen was ich möchte?
    Wobei "DeinName" und "Modulnabme" von Dir vergeben werden

    Die Sprachdatei soll hier hin geschoben werden:
    GXUserComponents/overloads/LanguageTextManager/


    Und auf diesen Positionen sollen entfernt werden?
    includes/modules/shipping/table2.php
    includes/modules/shipping/table3.php
    lang/german/user_sections/modules/shipping/table2.lang.inc.php
    lang/german/user_sections/modules/shipping/table3.lang.inc.php

    Ist das jetzt so korrekt? Blick bald nicht mehr durch!

    dazu: 3.15.x.x: (Link nur für registrierte Nutzer sichtbar.)


    Gruß Rainer Amend
     
  20. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.560
    Danke erhalten:
    11.309
    Danke vergeben:
    1.614
    Noch einmal ganz auf Anfang.

    Die Dateien
    includes/modules/shipping/table2.php
    includes/modules/shipping/table3.php

    bleiben da wo sie sind.

    Erstelle in GXModules dieses Verzeichnis:
    Meins/Versand/Shop/Overloads/LanguageTextManager/
    und dort hinein die Datei
    MappingArrayExtension.php

    und
    Meins/Versand/Shop/TextPhrases/German/
    und dahin die Dateien:
    shipping/table2.lang.inc.php
    shipping/table3.lang.inc.php

    (Wenn Du weitere Sprachen hast, muss das für die anderen Sprachen entsprechend gemacht werden)
    Der Aufbau sollte dann so aussehen:
    GXModules/Meins/Versand/Shop/Overloads/LanguageTextManager/MappingArrayExtension.php
    /TextPhrases/German/shipping/table2.lang.inc.php
    table3.lang.inc.php

    Statt "Meins" kannst Du Deinen Namen oder Kürzel verwenden und statt "Versand" kannst Du auch einen anderen, für Dich eindeutigen, Namen verwenden.

    Danach die Cache leeren.