"One Page Checkout"-Modul für Gambio GX2 erhältlich?

Thema wurde von aloyal, 25. Juli 2012 erstellt.

  1. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Ich hoffe noch diese Woche.
     
  2. C h r i s t i a n

    C h r i s t i a n G-WARD 2012

    Registriert seit:
    26. April 2011
    Beiträge:
    3.456
    Danke erhalten:
    330
    Danke vergeben:
    551
    Spannung steigt :)
     
  3. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Gibt es auch eine Variante für den PayPal Express Checkout?
     
  4. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Der Express-Checkout ist davon unberührt. Ich werde mir das aber trotzdem annehmen. Ist leider blöt das es ein Kaufmodul ist, sonst hätte ich es mal gepostet.
     
  5. 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 blöde an Kaufmodulen für GPL-Software ist: nach dem Erstkauf ist das "vorgelfrei", und kann beliebig weiter verteilt werden....

    Deshalb bieten wir ja keine Module an :)....

    Aber Du kannst es ja mal für Beratungszwecke an entwicklung@powertemplate.de senden.
     
  6. C h r i s t i a n

    C h r i s t i a n G-WARD 2012

    Registriert seit:
    26. April 2011
    Beiträge:
    3.456
    Danke erhalten:
    330
    Danke vergeben:
    551
    hoffst du noch oder glaubst du schon? :)
     
  7. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Glauben ist nicht mein Ding! @Avenger schaut gerade noch drüber. Aber die Einbauanleitung ist fast fertig! Ich denke (glaube) (bin sicher) morgen! ;)
     
  8. C h r i s t i a n

    C h r i s t i a n G-WARD 2012

    Registriert seit:
    26. April 2011
    Beiträge:
    3.456
    Danke erhalten:
    330
    Danke vergeben:
    551
    schön, also muß ich jetzt bei alkim das modul kaufen und dann, wie geht dat weiter? Mit Einbauanleitungen komme ich nur bei IKEA mit klar :)
     
  9. balou...sagt "Auf Wiedersehn"

    balou...sagt "Auf Wiedersehn" Erfahrener Benutzer

    Registriert seit:
    7. Juni 2011
    Beiträge:
    1.766
    Danke erhalten:
    374
    Danke vergeben:
    134
    Bin voll gespannt. Wenn datt klappt. GEIL
     
  10. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Soll ich jetzt ne Ikea_Edition auflegen??? ;)
    Nach Aussagen von Avenger kann ich das Modul nach dem Kauf frei weitergeben, da es für ein unter GPU-Lizenz veröffentlichtes Prrogramm ist. Mhh, bin mir net sicher aber vieleicht kann sich @Avenger nochmals dazu äussern.
     
  11. C h r i s t i a n

    C h r i s t i a n G-WARD 2012

    Registriert seit:
    26. April 2011
    Beiträge:
    3.456
    Danke erhalten:
    330
    Danke vergeben:
    551
    mir ist das eigentlich egal, umsonst möchte ich nichts! Ich möchte bezahlen und was vernünftiges bekommen. Also schreib mir ne Rechnung und dann is dat gut....
     
  12. Petra

    Petra G-WARD 2013/14/15

    Registriert seit:
    27. August 2011
    Beiträge:
    6.998
    Danke erhalten:
    1.225
    Danke vergeben:
    227
    Mir auch, ich will das bitte auch haben. Ein lang gehegter Wunsch scheint endlich in Erfüllung zu gehen!
     
  13. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    #73 Steffen (indiv-style.de), 9. August 2012
    Zuletzt bearbeitet: 9. August 2012
    Einbauanleitung. NUR FÜR V2.010 !!!!!! Andere nicht getestet!!!!!!

    Alle Files der Originalversion aus dem Ordner new_files ins Root kopieren.
    Danach alle Files der Neuen Version aus dem Ornder new_files und new_dirs ins Root kopieren.

    Datenkbankerweiterungen durchführen.
    Die Datei install.ajax_checkout_process.php ausführen und danach löschen. Beispiel: http://www.IhreShopadresse.de/install.ajax_checkout_process.php Damit werden die Datenbankerweiterungen vollzogen.



    Danach sind noch folgende Änderungen zu machen.

    checkout_shipping.php suche nach:

    PHP:
    Released under the GNU General Public License
       
    ---------------------------------------------------------------------------------------*/
    include (
    'includes/application_top.php');
    füge danach ein:

    PHP:
    if (CHECKOUT_AJAX_STAT == 'true') {
                
    xtc_redirect(xtc_href_link('checkout.php''''SSL'));
    }
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    in /includes/classes/shipping.php Zeile 54/55 muss zweimal ein "_once" rein:
    PHP:
     include_once(DIR_WS_LANGUAGES $_SESSION['language'] . '/modules/shipping/' $include_modules[$i]['file']);
     include_once(
    DIR_WS_MODULES 'shipping/' $include_modules[$i]['file']);
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    create_guest_account.php ca. Zeile 363 das rote einfügen
    {
    $t_gm_redirect = FILENAME_CHECKOUT_SHIPPING;
    }

    #---- AJAX CHECKOUT PROCESS START
    if (CHECKOUT_AJAX_STAT == 'true' && $_POST['js_enabled'] == 1) {
    xtc_redirect(xtc_href_link('checkout.php', '', 'SSL'));
    } else {

    xtc_redirect(xtc_href_link($t_gm_redirect, '', 'SSL'));
    }
    // EOF GM_MOD
    }
    }
    ca. Zeile 697 das grüne mit dem roten ersetzen

    // EOF GM_MOD

    $smarty->assign('LIGHTBOX_CLOSE', xtc_href_link(FILENAME_LOGIN, '', 'NONSSL'));

    $smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE));
    #---- AJAX CHECKOUT PROCESS START
    $post_js_stat = '<script type="text/javascript">';
    $post_js_stat .= 'document.write(\''.xtc_draw_hidden_field('js_enabled', 1).'\');';
    $post_js_stat .= '</script>';
    $smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE).$post_js_stat);
    #---- AJAX CHECKOUT PROCESS END



    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    lang/german/admin/german.php das rote einfügen ca. Zeile 473
    /* BOF YOOCHOOSE */
    require_once(DIR_FS_CATALOG . 'admin/yoochoose/yoo_lang_german.php');
    /* EOF YOOCHOOSE */

    #---- AJAX CHECKOUT PROCESS START
    define('BOX_CONFIGURATION_333', 'Bestellprozess');
    define('BOX_COX_SORT','Bestellprozess Sortierung');
    #---- AJAX CHECKOUT PROCESS END

    ?>

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    system/views/shopping_cart/ShoppingCartContentView.inc.php das grüne mit dem roten ersetzen ca. Zeile 169
    }
    $this->set_content_data('BUTTON_RELOAD', xtc_image_submit('button_update_cart.gif', IMAGE_BUTTON_UPDATE_CART, 'onclick="var gm_quantity_checker = new GMOrderQuantityChecker(); return gm_quantity_checker.check_cart();"'));
    $this->set_content_data('BUTTON_BACK', '<a href="' . $_SESSION['gm_history'][count($_SESSION['gm_history'])-1]['CLOSE'] . '"><img src="templates/' . CURRENT_TEMPLATE . '/buttons/' . $_SESSION['language'] . '/button_back.gif" alt="' . IMAGE_BUTTON_BACK . '" title="' . IMAGE_BUTTON_BACK . '" border="0" /></a>');
    $this->set_content_data('BUTTON_BACK_URL', $_SESSION['gm_history'][count($_SESSION['gm_history'])-1]['CLOSE']);
    $this->set_content_data('BUTTON_CHECKOUT', '<a id="gm_checkout" onclick="var gm_quantity_checker = new GMOrderQuantityChecker(); return gm_quantity_checker.check_cart();" href="'.xtc_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL').'">'.xtc_image_button('button_checkout.gif', IMAGE_BUTTON_CHECKOUT).'</a>');


    #---- AJAX CHECKOUT PROCESS START
    $onclick = '';
    if (CHECKOUT_AJAX_STAT == 'true') {
    $onclick = 'window.location.href=\''.xtc_href_link('checkout.php','', 'SSL').'\'; return false;';
    } else{
    $onclick = 'var gm_quantity_checker = new GMOrderQuantityChecker(); return gm_quantity_checker.check_cart();';
    }
    $this->set_content_data('BUTTON_CHECKOUT', '<a id="gm_checkout" onclick="'.$onclick.'" href="'.xtc_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL').'">'.xtc_image_button('button_checkout.gif', IMAGE_BUTTON_CHECKOUT).'</a>');
    #---- AJAX CHECKOUT PROCESS END

    $this->set_content_data('LINK_CLOSE', $_SESSION['gm_history'][count($_SESSION['gm_history'])-1]['CLOSE']);
    // EOF GM_MOD

    }
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    templates/EyeCandy/boxes/box_top_navigation.html das grüne mit dem Roten ersetzen ca. Zeile 31
    {/if}
    {if $content_data.WISHLIST_URL}
    <li title="{$txt.title_wish_list}" class="png-fix"><a href="{$content_data.WISHLIST_URL}">{$txt.button_wish_list}</a></li>
    {/if}
    <li title="{$txt.title_checkout}" class="png-fix"><a href="{$content_data.CHECKOUT_URL}">{$txt.button_checkout}</a></li>
    <li title="{$txt.title_checkout}" class="png-fix"><a href="{$content_data.CHECKOUT_URL}" {php} if (CHECKOUT_AJAX_STAT == 'true') echo "onclick=\"window.location.href='".xtc_href_link('checkout.php', '', 'SSL')."'; return false;\"";{/php}>{$txt.button_checkout}</a></li>
    </ul>
    </div>
    </div>

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    templates/EyeCandy/module/shopping_cart.html das grüne mit dem Roten ersetzen ca. Zeile 37
    </div>
    {else}
    {$FORM_ACTION}
    {$HIDDEN_OPTIONS}
    <div class="checkout_button"><a href="{'checkout_shipping.php'|xtc_href_link}" class="button_green_big button_set_big"><span class="button-outer"><span class="button-inner"><img class="png-fix" src="{$tpl_path}img/icons/icon-white-shoppingcart.png" alt="" style="margin-right:10px; float:left" />{$button.checkout}</span></span></a></div>
    <div class="checkout_button"><a href="{'checkout_shipping.php'|xtc_href_link}" {php} if (CHECKOUT_AJAX_STAT == 'true') echo "onclick=\"window.location.href='".xtc_href_link('checkout.php', '', 'SSL')."'; return false;\"";{/php} class="button_green_big button_set_big"><span class="button-outer"><span class="button-inner"><img class="png-fix" src="{$tpl_path}img/icons/icon-white-shoppingcart.png" alt="" style="margin-right:10px; float:left" />{$button.checkout}</span></span></a></div>
    <br />
    <br />
    <br />
    {$MODULE_order_details}

    ca. Zeile 50

    {* TODO: write action_page_back handler *}
    <div class="continue_button"><a href="{$BUTTON_BACK_URL}" class="button_grey_big button_set_big action_page_back"><span class="button-outer"><span class="button-inner">{$button.continue_shopping}</span></span></a></div>
    {* TODO: use xtc_href_link plugin *}
    <div class="checkout_button"><a href="{'checkout_shipping.php'|xtc_href_link}" class="button_green_big button_set_big"><span class="button-outer"><span class="button-inner"><img class="png-fix" src="{$tpl_path}img/icons/icon-white-shoppingcart.png" alt="" style="margin-right:10px; float:left" />{$button.checkout}</span></span></a>{if $BUTTON_PAYPAL}<br />{$txt.text_or}&nbsp;&nbsp;&nbsp;<br />{$BUTTON_PAYPAL}{/if}</div>
    <div class="checkout_button"><a href="{'checkout_shipping.php'|xtc_href_link}" {php} if (CHECKOUT_AJAX_STAT == 'true') echo "onclick=\"window.location.href='".xtc_href_link('checkout.php', '', 'SSL')."'; return false;\"";{/php} class="button_green_big button_set_big"><span class="button-outer"><span class="button-inner"><img class="png-fix" src="{$tpl_path}img/icons/icon-white-shoppingcart.png" alt="" style="margin-right:10px; float:left" />{$button.checkout}</span></span></a>{if $BUTTON_PAYPAL}<br />{$txt.text_or}&nbsp;&nbsp;&nbsp;<br />{$BUTTON_PAYPAL}{/if}</div>
    {$FORM_END}
    {/if}
    </div>
    {if $LIGHTBOX == 'true'}</div>{/if}

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    templates/EyeCandy/source/boxes/top_menu.php das grüne mit dem Roten ersetzen ca. Zeile 33


    if(!isset($lng) && !is_object($lng))
    {
    include(DIR_WS_CLASSES . 'language.php');
    include_once(DIR_WS_CLASSES . 'language.php');
    $lng = new language;
    }




    So, nun testet es mal! Für Verbesserungen bin ich offen!
    WICHTIG! Das ist für ein Projekt umgebaut worden, die Styles müsst ihr anpassen

    Vorher unbedingt alle Daten sichern!

    Keine Gewähr auf Fehler.
     

    Anhänge:

  14. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    EDIT:

    Es können noch Änderungen zwecks Klassenüberladung kommen. Aber mal sehen was @Avenger dazu meint. Er ist mit PHP eine Ikone und kennt das System mit am besten.
     
  15. 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 das, was die GPL prinzipiell zulässt...

    Ich bin allerdings schon der Meinung, dass man dem Entwickler seine Leistung auch bezahlen sollte,,,,,

    Vielleicht kann man mit ihm ja einen reduzierten "Nur-Lizenz"-Deal (ohne Code-Lieferung) vereinbaren, da ja sein Code nicht mehr verwendet wird.
     
  16. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Bei genauerer Überlegung ist mir klar geworden, dass man den "One-page-checkout" mit m.E. kleinen Anpassungen auch für den Paypal-Checkout verwenden kann!

    Denn alles, was im Paypal-Checkout gemacht wird, macht der "One-page-checkout" schon von Hause aus: Versandart und Kommentare abfragen!

    Notwendige Änderungen:

    Man müsste im Fall des PayPal-Checkouts die User-Daten von PayPal abholen, und die Zahlungsarten-Abfrage anpassen, da dann ja nur Paypal zutrifft....

    Aber auch anders herum gibt es einen interessanten Ansatz:

    der vorhandene PayPal-Checkout ist fast auch schon ein "One-Page-Chekout"....

    Was für den normalen "One-Page-Chekout" fehlt ist lediglich die Zahlungsarten-Auswahl (die man aber leicht nachrüsten kann...)

    Bei diesem Ansatz muss man sehr viel weniger in die Shop-Software eingreifen, als mit dieser Lösung.
     
  17. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Richtig, das war auch mein erster Ansatz.
    Allerdings überlege ich noch, wenn man den OP-Checkout so benutzt wie es jetzt ist, braucht man da den PayPal-Expresscheckout noch???
    Eigentlich nicht, oder vergesse ich da irgend etwas?

    Genau, das denke ich auch. Es ist schon einiges an Zeit was man dafür benötigt.
     
  18. Avenger

    Avenger G-WARD 2012/13/14/15

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

    Man muss dem One-Page-Checkout aber ein paar PayPal-Express spezifische Dinge beibringen:

    Kundendaten von PayPal abholen.

    Zahlungsarten-Teil überarbeiten, da ja nur eine Zahlungsart möglich ist (PayPal).

    Aber ansonsten passt das so schon, dürfte nicht allzu schwierig sein.

    Ansatz:

    "paypal-checkout.php" wird geändert zu:

    PHP:
    $is_paypal_express=true;
    include(
    'checkout.php');
    Am Anfang von "checkout.php" (nach den ganzen "require_once") einfügen:

    PHP:
    if ($is_paypal_express)
    {
      
    // Get Customer Data and Check for existing Account.
      
    $o_paypal->paypal_get_customer_data();
      if (!isset (
    $_SESSION['customer_id']))
      {
        if (
    ACCOUNT_OPTIONS == 'guest')
        {
          
    xtc_redirect(xtc_href_link(FILENAME_CREATE_GUEST_ACCOUNT'''SSL'));
        }
        else
        {
          
    xtc_redirect(xtc_href_link(FILENAME_LOGIN'''SSL'));
        }
      }
      if (!
    $_SESSION['billto'])
      {
        
    $_SESSION['billto']=$_SESSION['sendto'];
      }
    }
     
  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
    Bezüglich der Zahlungsarten sollte eigentlich folgende Änderung in "checkout.php" genügen:

    PHP:
    $payment_modules = new payment;
    ersetzen mit

    PHP:
    if ($is_paypal_express)
    {
      
    $payment='paypalexpress';
    }
    else
    {
      
    $payment='';
    }
    $payment_modules = new payment($payment);
     
  20. C h r i s t i a n

    C h r i s t i a n G-WARD 2012

    Registriert seit:
    26. April 2011
    Beiträge:
    3.456
    Danke erhalten:
    330
    Danke vergeben:
    551
    auf alle Fälle! Ich werd es erstmal im Testshop einbauen, wenn alles läuft frage ich bei alkim mal an. Wäre wirklich schade, wenn niemand mehr bezahlt wegen dieser GPL und irgendwann die fähigen Leute den Beruf wechseln :)

    Aber auch ihr habt euch eigentlich was verdient (Steffen u. Avenger) :)