Sofortdownload freischalten für Downloadartikel 0,00 Euro?

Thema wurde von Stichezauber, 30. Juli 2014 erstellt.

  1. Stichezauber

    Stichezauber Erfahrener Benutzer

    Registriert seit:
    15. März 2014
    Beiträge:
    83
    Danke erhalten:
    1
    Danke vergeben:
    39
    Hallo,

    eine Frage: Kann man, ohne in die php's eingreifen zu müssen, irgendwo einstellen, dass ein Download-Artikel, der 0,00 Euro kostet (egal ob als Aktionsartikel oder generell, also dauerhaft) sofort vom Kunden gedownloaded werden kann, wenn keine weiteren Artikel im Warenkorb sind und dementsprechend keine Zahlung erfolgen muss?

    Solange der Kunde kostenpflichtige Produkte mit dem kostenlosen Produkt im Warenkorb hat und dann über Paypal zahlt, wird ja der Download nach der Zahlung sofort freigeschaltet.

    Wenn aber ein Kunde nur den kostenlosen Artikel kauft, müssen wir diese Bestellung jedes Mal per Hand von "offen" in "ipayment bezahlt" ändern, damit der Kunde an den Download kommt. Nun kann man aber nicht 24-7 online sein, um zeitnah freizuschalten :).

    Ich habe im Forum nach dem Thema gesucht und auch Threads gefunden. Unter anderem auch den von Sven, ziemlich aktuell. Allerdings will ich aus verschiedenen Gründen nicht jedesmal in den php's und Datenbanken rumfuhrwerken, um solche an sich wichtigen Haupteinstellungen in der Software zu erzwingen. Ich kein Programmierer und daher etwas zurückhaltend, wenn es um solche Dinge geht. Zumal ich auch nicht nach jedem Update wieder Hand anlegen will.

    Gibt es da eine elegante Lösung, die Update-sicher ist und die auch von Nicht-Programmierern ohne Unfälle bewerkstelligt werden kann?

    Vielen Dank vorab.

    Die Antje von Stichezauber.

    PS: Die in Svens Thema vorgeschlagenen Lösungen habe ich übrigens versucht, aber bin daran gescheitert, dass ich die Stellen in der checkout_process.php erst garnicht gefunden habe (Suchfunktion in Notepad benutzt).
     
  2. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Elegant: ja.

    Update-sicher: Nein,

    von Nicht-Programmierern ohne Unfälle bewerkstelligt werden kann: Nein.
     
  3. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    33.599
    Danke erhalten:
    10.426
    Danke vergeben:
    1.498
    Könnte man nicht einen Download-Link in der Artikelbeschreibung einfügen?
    Dann braucht der Kunde gar nicht erst durch den Checkout.
     
  4. Stichezauber

    Stichezauber Erfahrener Benutzer

    Registriert seit:
    15. März 2014
    Beiträge:
    83
    Danke erhalten:
    1
    Danke vergeben:
    39
    Hm, du meinst also extern, Barbara? Das wäre eventuell eine Möglichkeit, aber die saubere englische Art ist das nicht. Dann kann man die Freebies ja gleich auf der Startseite in den Begrüßungstext einbauen ;-) Ausserdem unterliegen die Freebies ja denselben Nutzungsbedingungen wie die Kaufdateien, bzw. noch strengeren. Wenn der Kunde also nicht gezwungen wird, sich für den Download einzuloggen, haben wir auch keine Kontrolle (sofern man das überhaupt hat nach dem Download), welcher Endkunde und "Weiter-Nutzer" sich die Freebies geholt hat.

    Avender, also 2 Neins und 1 Ja ... das überzeugt mich nicht wirklich. Dann lass ich die Finger davon. 1 Nein hätte mich eventuell noch überzeugt :)
     
  5. MP Solution

    MP Solution Erfahrener Benutzer

    Registriert seit:
    2. Oktober 2013
    Beiträge:
    2.945
    Danke erhalten:
    456
    Danke vergeben:
    93
    jeeeep, Barbara das geht. In einem Artikel der angelegt wurde, würde ich einen Sofort-Download-Link einsetzen. Oder aber mit einer Landingpage arbeiten. Somit braucht der Kunde keinen Checkout zu durchlaufen und hat das gewünsche sofort.

    LG
    Jörg
     
  6. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das ist eigentlich trivial:

    In der Checkout-Process muss man den order_status auf "bezahlt" setzen, wenn der Warenwert im Korb "0" ist.....
     
  7. sophiek

    sophiek Mitglied

    Registriert seit:
    22. Oktober 2014
    Beiträge:
    18
    Danke erhalten:
    0
    Ich würde diesen Thread gern noch einmal nach oben schubsen, da ich gern einige kostenlose Produkte nur für eine bestimmte Zeit lang und eine bestimmte Anzahl anbieten möchte - also deswegen keinen direkten Downloadlink einbauen möchte.

    @Avenger: Könntest du eventuell deine Lösung noch genauer erläutern?

    Ich nehme an, dass in der checkout_process.php dann ein paar Zeilen hinzugeschrieben werden müssen,
    da ich der Programmierung aber eher bedingt fähig bin, komme ich der Sache nicht ganz auf die Spur.

    Ich weiß nicht, welche Variable Warenkorb besitzt. Eigentlich gebe ich zu, die "php_sprache" eher gegen 0 zu beherrschen, also nicht lachen über meinen "Pseudo-Code"

    PHP:
    if(WARENKORB == 0)
    {
        
    order_status "bezahlt";
    }
    0 sollte wohl eher eine Variable der Währung sein?
    Man muss so eine if-Schleife sicher mit einem "else" auffangen ...
    Und das zuweisen eines Wertes ist garantiert auch nicht einfach mit einem = getan.

    Also, ich würde mich über ein bisschen Programmierhilfe freuen :D Der Fakt, dass es irgendwie möglich ist, lässt mich nicht los, und ich würde es wirklich gern umsetzen.

    Lg Sophie
     
  8. nicole lau

    nicole lau Erfahrener Benutzer

    Registriert seit:
    9. April 2014
    Beiträge:
    60
    Danke erhalten:
    1
    Danke vergeben:
    13
    Auch ich hätte in dieser Frage noch Klärungsbedarf. Ich habe dieses Problem auch schonmal thematisiert und mir wurde damals die Lösung
    über den Content-Manager die Datei anzubieten empfohlen. Das gehr auch, bei mir sieht die Sache nun wie folgt aus: http://shop.nicibiene.de/product_info.php?info=p42_freebook-schlueppi-fuer-kleine-maenner.html

    Es ist allerdings so, dass die Kunden das nicht so wahrnehmen und ich von Bestellungen mit "0" Euro regelrecht zugespamt werde und alle
    manuell auf "bezahlt" umstellen muss oder nochmal eine Email mit einer Anleitung zusende.

    Mich befriedigt diese Lösung in keinem Falle. Die in der Artikelbeschreibung hervorgehobenen Hinweise bekommen die Kunden auch nicht zu Gesicht, da dafür ein Scrollvorgang nötig ist. Der "kaufen" Button ist da viel verlockender als alles andere.

    Ich hätte auch gerne eine elegante Lösung, die über den normalen Bestellvorgang reibungslos und ohne Aufwand funktioniert.

    LG Nicole
     
  9. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.394
    Danke erhalten:
    1.572
    Danke vergeben:
    115
    Warum stellst du bei solchen Artikeln den „Artikelpreisstatus“ nicht einfach auf „nicht käuflich“?
     
  10. nicole lau

    nicole lau Erfahrener Benutzer

    Registriert seit:
    9. April 2014
    Beiträge:
    60
    Danke erhalten:
    1
    Danke vergeben:
    13
  11. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.394
    Danke erhalten:
    1.572
    Danke vergeben:
    115
    Ich habe mir das der Einfachheit halber mal schnell direkt bei dir Im Shop angesehen. Der Download wurde nicht angezeigt, weil du den Kundengruppencheck aktiviert hast und der Artikel-Content für keine Gruppe freigeschaltet war. Ich habe das jetzt für alle freigeschaltet. Müsstest du bei den anderen Artikel-Contents entsprechend auch noch machen.
     
  12. nicole lau

    nicole lau Erfahrener Benutzer

    Registriert seit:
    9. April 2014
    Beiträge:
    60
    Danke erhalten:
    1
    Danke vergeben:
    13
    Danke, Marco! Ich hatte den Kundegruppencheck spaßenshalber probiert, um den Händlerbereich auszublenden. Dass das dann auch im Contentbereich durchschlägt, wusste ich nicht. Wieder schlauer.

    Aber so recht will mir die Lösung trotzdem nicht gefallen. Kann man den Text "nicht käuflich" irgendwie ändern? Im Textbereich habe ich nichts gefunden. Da ich keine solchen Artikel einstellen werde, könnte ich auch mit einer generellen Textänderung in "freebie" oder Ähnliches leben.

    Es wäre kontraproduktiv, die Besucher die über dieses wirklich für mich interessante Marketinginstrument im Shop landen, gleich mal vor den Kopf zu stoßen...

    Eine Variante mit Registrierung und komplett automatischer Abwicklung wäre für mich das Wünschenswerteste-genau wie die Threaderöffnerin geschrieben hat. Mir gefällt es nicht so recht, dass sich jeder ungesehen und völlig anonym bedienen kann-es ist ja auch eine Sache des Urheberrechts, dass man da gerne ein klitzekleinwenig Kontrolle hätte...die man ja nach dem Download eh nicht mehr hat.
     
  13. sophiek

    sophiek Mitglied

    Registriert seit:
    22. Oktober 2014
    Beiträge:
    18
    Danke erhalten:
    0
    Avenger schrieb ja, dass es möglich ist, unsere Wünsche umzusetzen.
    Vielleicht könnte ein PHP-Versierter Mensch uns den Code zum Einfügen in die genannte Datei geben - das wäre wirklich super.
     
  14. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    10. August 2012
    Beiträge:
    1.554
    Danke erhalten:
    455
    Danke vergeben:
    96
    Den Text solltest du finden, wenn du nur nach "nicht k" suchst. Das Texte anpassen Modul hat schon ewig Probleme mit Umlauten in der Suche.
     
  15. sophiek

    sophiek Mitglied

    Registriert seit:
    22. Oktober 2014
    Beiträge:
    18
    Danke erhalten:
    0
    genau mir geht es wie nicole ....

    da ich gerne auch "Lockangebote" bis zu einer bestimmten Stückzahl - sagen wir 500 gern kostenlos, danach aber kostenpflichtig anbieten möchte - bei einer einbindung über das CMS kann ich die Anzahl der Downloads ja nicht kontrollieren?
     
  16. Anonymous

    Anonymous Beta-Held

    Registriert seit:
    22. März 2015
    Beiträge:
    2.381
    Danke erhalten:
    640
    Danke vergeben:
    412
    #16 Anonymous, 31. März 2015
    Zuletzt bearbeitet: 19. Mai 2015
    Gibts zu dem Thema schon was neues? Ich habe im Shop nichts gefunden. Kann jemand was programmieren, natürlich gegen Bezahlung.
     
  17. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Da es immer wieder Anfragen zu dem Thema gibt, habe ich das mal versucht umzusetzen.

    Die Idee ist, dass bei Warenkörben mit Wert 0, die Downloads enthalten, der Order-Status auf den 1. Order-Status gesetzt wird, der eine Freigabe des Downloads bewirkt.

    Diese Statii werden im Admin gesetzt.

    download_options.jpg

    Folgenden Code als

    "user_classes\overloads\CheckoutProcessProcess\av_immediate_download_if_value0_CheckoutProcessProcess.php"

    speichern (ohne Umbruch und Leerzeichen!):

    PHP:
    <?php
    /* --------------------------------------------------------------
    av_immediate_download_if_value0_CheckoutProcessProcess.inc.php 2015-06-06 Avenger
    Gambio GmbH
    http://www.gambio.de
    Copyright (c) 2015 Gambio GmbH

    Copyright (c) 2015 Avenger, apprentice@gmx.de
    Allow immediate download if cart value is 0. Set order-status to "paid" in that case....

    Store as: user_classes\overloads\CheckoutProcessProcess\av_immediate_download_if_value0_CheckoutProcessProcess.php

    Released under the GNU General Public License (Version 2)
    [http://www.gnu.org/licenses/gpl-2.0.html]
    --------------------------------------------------------------


    based on:
    (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
    (c) 2002-2003 osCommerce(checkout_process.php,v 1.128 2003/05/28); www.oscommerce.com
    (c) 2003     nextcommerce (checkout_process.php,v 1.30 2003/08/24); www.nextcommerce.org
    (c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: checkout_process.php 1277 2005-10-01 17:02:59Z mz $)

    Released under the GNU General Public License
    ----------------------------------------------------------------------------------------
    Third Party contribution:

    Customers Status v3.x  (c) 2002-2003 Copyright Elari elari@free.fr | www.unlockgsm.com/dload-osc/ | CVS : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/elari/?sortby=date#dirlist

    Credit Class/Gift Vouchers/Discount Coupons (Version 5.10)
    http://www.oscommerce.com/community/contributions,282
    Copyright (c) Strider | Strider@oscworks.com
    Copyright (c  Nick Stanko of UkiDev.com, nick@ukidev.com
    Copyright (c) Andre ambidex@gmx.net
    Copyright (c) 2001,2002 Ian C Wilson http://www.phesis.org

    Released under the GNU General Public License
    --------------------------------------------------------------------------------------- */

    class av_immediate_download_if_value0_CheckoutProcessProcess extends av_immediate_download_if_value0_CheckoutProcessProcess_parent
    {
        public function 
    add_order_data(&$p_sql_data_array)
        {
        if (
    DOWNLOAD_ENABLED == 'true')
        {
          
    $cart_value=$_SESSION['cart']->show_total();
          if (
    $cart_value==0)
          {
            
    //Check for any downlodas in cart.
            
    $have_downloads=false;
            
    $products=$this->coo_order->products;
            foreach (
    $products as $product)
            {
              
    $attributes=$product['attributes'];
              foreach (
    $attributes as $attribute)
              {
                if (
    $attribute['option']=='downloads')
                {
                  
    $have_downloads=true;
                  break 
    2;
                }
              }
            }
            if (
    $have_downloads)
            {
              
    //If cart value = 0, set orders-status to first DOWNLOAD_MIN_ORDERS_STATUS...
              
    $t_download_order_status_array explode('|'DOWNLOAD_MIN_ORDERS_STATUS);
              if (
    is_array($t_download_order_status_array) && count($t_download_order_status_array))
              {
                
    $p_sql_data_array['orders_status']=$t_download_order_status_array[0];
                
    $p_sql_data_array['abandonment_download']=1;
              }
            }
          }
        }
        return;
        }
    }
    Wie immer gilt:

    • Anwendung auf das ausschließliche Risiko des Shopbetreibers.
    • Es gibt keinerlei Gewährleistung.
    • Erst in einem Testshop testen.
     
  18. olaf-huettmann

    olaf-huettmann Mitglied

    Registriert seit:
    8. Mai 2015
    Beiträge:
    7
    Danke erhalten:
    0
    Du bist ein Held !!!!!!!
    Das geht ja tadellos. Super !!
    Für leute wie mich muß man nur noch sagen, das man den Ordner "CheckoutProcessProcess" erstellen muß und dann die Datei "av_i mmediate_download_if_value0_CheckoutProcessProcess .php" hineinpackt.
    MfG
    olaf
     
  19. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Eine kleine Korrektur, um das Overload-Chaining zu ermöglichen:

    es fehlte

    PHP:
    parent::add_order_data($p_sql_data_array);
    PHP:
     <?php
    /* --------------------------------------------------------------
    av_immediate_download_if_value0_CheckoutProcessProcess.inc.php 2015-06-06 Avenger
    Gambio GmbH
    http://www.gambio.de
    Copyright (c) 2015 Gambio GmbH

    Copyright (c) 2015 Avenger, apprentice@gmx.de
    Allow immediate download if cart value is 0. Set order-status to "paid" in that case....

    Store as: user_classes\overloads\CheckoutProcessProcess\av_immediate_download_if_value0_CheckoutProcessProcess.php

    Released under the GNU General Public License (Version 2)
    [http://www.gnu.org/licenses/gpl-2.0.html]
    --------------------------------------------------------------


    based on:
    (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
    (c) 2002-2003 osCommerce(checkout_process.php,v 1.128 2003/05/28); www.oscommerce.com
    (c) 2003     nextcommerce (checkout_process.php,v 1.30 2003/08/24); www.nextcommerce.org
    (c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: checkout_process.php 1277 2005-10-01 17:02:59Z mz $)

    Released under the GNU General Public License
    ----------------------------------------------------------------------------------------
    Third Party contribution:

    Customers Status v3.x  (c) 2002-2003 Copyright Elari elari@free.fr | www.unlockgsm.com/dload-osc/ | CVS : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/elari/?sortby=date#dirlist

    Credit Class/Gift Vouchers/Discount Coupons (Version 5.10)
    http://www.oscommerce.com/community/contributions,282
    Copyright (c) Strider | Strider@oscworks.com
    Copyright (c  Nick Stanko of UkiDev.com, nick@ukidev.com
    Copyright (c) Andre ambidex@gmx.net
    Copyright (c) 2001,2002 Ian C Wilson http://www.phesis.org

    Released under the GNU General Public License
    --------------------------------------------------------------------------------------- */

    class av_immediate_download_if_value0_CheckoutProcessProcess extends av_immediate_download_if_value0_CheckoutProcessProcess_parent
    {
      public function 
    add_order_data(&$p_sql_data_array)
      {
        
    parent::add_order_data($p_sql_data_array);
        if (
    DOWNLOAD_ENABLED == 'true')
        {
          
    $cart_value=$_SESSION['cart']->show_total();
          if (
    $cart_value==0)
          {
            
    //Check for any downlodas in cart.
            
    $have_downloads=false;
            
    $products=$this->coo_order->products;
            foreach (
    $products as $product)
            {
              
    $attributes=$product['attributes'];
              foreach (
    $attributes as $attribute)
              {
                if (
    $attribute['option']=='downloads')
                {
                  
    $have_downloads=true;
                  break 
    2;
                }
              }
            }
            if (
    $have_downloads)
            {
              
    //If cart value = 0, set orders-status to first DOWNLOAD_MIN_ORDERS_STATUS...
              
    $t_download_order_status_array explode('|'DOWNLOAD_MIN_ORDERS_STATUS);
              if (
    is_array($t_download_order_status_array) && count($t_download_order_status_array))
              {
                
    $p_sql_data_array['orders_status']=$t_download_order_status_array[0];
                
    $p_sql_data_array['abandonment_download']=1;
              }
            }
          }
        }
        return;
        }
    }
     
  20. Anonymous

    Anonymous Beta-Held

    Registriert seit:
    22. März 2015
    Beiträge:
    2.381
    Danke erhalten:
    640
    Danke vergeben:
    412
    Perfekt. Tausend Dank.