elefunds Donations für XT:Commerce und viele weitere Forks

Posted by on 16. September 2013

elefunds macht das Spenden einfach einfach!

Mit diesem Modul bieten Sie Ihren Kunden die Möglichkeit beim Kauf in Ihrem Onlineshop über elefunds zu spenden und es mit Freunden zu teilen.

Erfolgreich getestet für xt:Commerce v3.04 SP2.1, modified eCommerce Shopsoftware, Evergreen und Self-Commerce. Mit wenigen Anpassungen bei der Installation ist auch eine Verwendung in weiteren XTC-Forks (z.B. Gambio oder commerce:SEO) möglich.


Was ist elefunds?

elefunds ist ein junges Berliner StartUp und revolutioniert das »Online Fundraising«. Mit der eigens entwickelten Software können Kunden beim Onlineshopping ihre Kaufbeträge aufrunden und an gemeinnützige Organisationen spenden. Mehr über elefunds

Features

  • Anzeige der elefunds-Bar zum "einfach einfach spenden"
  • Einstellungen zur Ansicht/Layout der Bar im Backend
  • Anzeige der elefunds-Bar nur für gewählte Zahlungsarten
  • Auflistung aller getätigten Spenden und deren Status
  • automatische Bestätigung der Spende bei elefunds nach Zahlungseingang
  • Stornierungsmöglichkeit für Spenden (automatisch nach Status oder manuell)
  • automatische Prüfung der Modulversion
  • Anzeige der zu ergänzenden Rechtstexte für die AGB’s
  • optional: automatische Ergänzung der Rechtstexte in der Rechnung
  • optional: automatische Einbundung von jQuery 1.7.2

Systemvorraussetzungen

  • PHP 5.3.3
  • cURL
  • jQuery 1.7

Download

{phocadownload view=file|id=12}

Beispiel

In einer Testumgebung auf Basis von modified eCommerce können Sie Bestellungen auslösen um das Modul zu testen.

Installation

ACHTUNG: Die mitgelieferten Dateien sind Erweiterungen der Orginalen von xtcommerce_v304SP2.1. Solltest du eine ältere Version verwenden oder bereits Anpassungen in deinem Shop vorgenommen haben, vergleiche bitte alle Dateien auf Veränderungen.

Alle Modifikationen sind in Blöcken zusammen gefasst:

// BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - ***
Hier stehen die Änderungen.
Bitte kopiere die Kommentare mit um später diese Änderungen wieder zu erkennen
// EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - ***

1. Backup erstellen

Bitte leg ein Backup vom Shop und der Datenbank an bevor du die folgenden Schritte ausführst!

KEINE HAFTUNG FÜR FEHLFUNKTIONEN NACH DER INSTALLATION

2. Datenbank aktualisieren

Die Datei sql.txt aus dem Download im RDBMS (z.B. PHPmyAdmin) ausführen

Wenn du einen Tabellen-Präfix verwendest muss dieser in dem SQL-Statement ergänzt werden.

3. Dateien hochladen

Dateien und Unterverzeichnisse aus shop_root in den Document-Root vom Shop kopieren. Es dürfen bei einer ersten Installation keine Dateien überschrieben werden.

4. Dateien bearbeiten

4.1. [SHOP_ROOT]/lang/german/admin/german.php

Suche am Ende der Datei nach:

?>

VOR DIESER ZEILE einfügen:

// BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds
define('BOX_ELEFUNDS', 'elefunds');
// EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds

4.2. [SHOP_ROOT]/admin/includes/column_left.php

Suche nach:

BOX_IMPORT
4.2.1 xt:Commerce v3.04 SP2.1

NACH DER ZEILE einfügen:

// BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds
  if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['elefunds'] == '1')) echo ' -' . BOX_ELEFUNDS . '
'; // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds
4.2.2 modified eCommerce Shopsoftware

NACH DER ZEILE einfügen:

// BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds
  if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['elefunds'] == '1')) echo '
  • -' . BOX_ELEFUNDS . '
  • '; // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds
    4.2.3 Evergreen v1.1.0.2

    NACH DER ZEILE einfügen:

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds
    if (($admin_access['elefunds'] == '1'))
    echo 'Link[' . $i++ . '] = "1|' . BOX_ELEFUNDS . '|' . xtc_href_link('elefunds.php', '', 'NONSSL') . '|";';
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds
    4.2.4 Self-Commerce v3.0 b1

    NACH DER ZEILE einfügen:

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds
      if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['elefunds'] == '1')) $box_tools .= ' -' . BOX_ELEFUNDS . '
    '; // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - elefunds

    4.3 [SHOP_ROOT]/admin/orders.php

    Suche nach:

    $order_updated = true;

    VOR DIESER ZEILE einfügen:

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - inform elefunds
          require_once __DIR__ . '/../includes/elefunds/helper.php';
          ElefundsHelper::updateOrderState($oID, $status);
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - inform elefunds

    4.4 [SHOP_ROOT]/admin/print_order.php

    Suche nach:

    $smarty->caching = false;

    NACH DIESER ZEILE einfügen:

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - add elefunds receipt disclaimer
        require_once __DIR__ . '/../includes/elefunds/helper.php';
        if (defined('ELEFUNDS_ADD_RECEIPT_DISCLAIMER') && 'true' == ELEFUNDS_ADD_RECEIPT_DISCLAIMER && ElefundsHelper::getDonation($_GET['oID'])) {
          $smarty->assign('elefunds_disclaimer', ElefundsHelper::getReceiptDisclaimer());
        }
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - add elefunds receipt disclaimer

    4.5 [SHOP_ROOT]/includes/modules/order_totel/ot_total.php

    4.5.1 xt:Commerce v3.04 SP2.1 / Evergreen v1.1.0.2 / Self-Commerce v3.0 b1

    Suche 2x nach:

    'text' => '' . $xtPrice->xtcFormat($order->info['total'],true) . '',

    ERSETZE ZEILE durch:

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - use id to specify total value for modifications with elefunds sdk
                                    //'text' => '' . $xtPrice->xtcFormat($order->info['total'],true) . '',
                                    'text' => '' . $xtPrice->xtcFormat($order->info['total'],true) . '',
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - use id to specify total value for modifications with elefunds sdk

    Suche nach:

    'text' => '' . $xtPrice->xtcFormat($order->info['tax']+$order->info['total'],true) . '',

    ERSETZE ZEILE durch

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - use id to specify total value for modifications with elefunds sdk
                                    //'text' => '' . $xtPrice->xtcFormat($order->info['tax']+$order->info['total'],true) . '',
                                    'text' => '' . $xtPrice->xtcFormat($order->info['tax']+$order->info['total'],true) . '',
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - use id to specify total value for modifications with elefunds sdk
    4.5.2 modified eCommerce Shopsoftware

    Suche 2x nach:

    'text' => '' . $xtPrice->xtcFormat($order->info['total'],true) . '',

    ERSETZEN ZEILE durch:

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - use id to specify total value for modifications with elefunds sdk
                                    //'text' => '' . $xtPrice->xtcFormat($order->info['total'],true) . '',
                                    'text' => '' . $xtPrice->xtcFormat($order->info['total'],true) . '',
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - use id to specify total value for modifications with elefunds sdk

    Suche nach:

    'text' => '' . $xtPrice->xtcFormat($order->info['tax']+$order->info['total'],true) . '',

    ERSETZE ZEILE durch

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - use id to specify total value for modifications with elefunds sdk
                                    //'text' => '' . $xtPrice->xtcFormat($order->info['tax']+$order->info['total'],true) . '',
                                    'text' => '' . $xtPrice->xtcFormat($order->info['tax']+$order->info['total'],true) . '',
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - use id to specify total value for modifications with elefunds sdk

    4.6 [SHOP_ROOT]/templates/[DEIN_TEMPLATE]/admin/print_order.html

    Füge an beliebiger Stelle ein:

    {** BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - display elefunds disclaimer **}
    {$elefunds_disclaimer}
    {** EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - display elefunds disclaimer **}

    Zusatz: am Besten und sichersten ist dieser Text vor bzw. nach deinen AGB’s und den Wiederrufsbelehrungen einzufügen

    4.7 [SHOP_ROOT]/templates/[DEIN_TEMPLATE]/module/checkout_confirmation.html

    Füge an beliebiger Stelle ein:

    {** BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - display elefunds fundraising **}
    {if '' != $ELEFUNDS_BAR}
      {$ELEFUNDS_BAR}
    {/if}
    {** EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - display elefunds fundraising **}

    Zusatz: dieser Platzhalter wird durch die elefunds-Bar mit allen auswahlmöglichkeiten ersetzt. Am besten vor oder nach dem Listing der bestellten Artikel. ACHTUNG: wer ein Trusted-Shops-Siegel hat muss darauf achten die Bar NICHT zwischen den Produkten und dem Button „kaufen“ zu platzieren!

    4.8 [SHOP_ROOT]/templates/[DEIN_TEMPLATE]/module/checkout_success.html

    Füge an beliebiger Stelle ein:

    {** BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - donate with elefunds fundraising **}
    {if $ELEFUNDS_SHARE}
      {$ELEFUNDS_SHARE}
    {/if}
    {** EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - donate with elefunds fundraising **}

    Zusatz: dieser Platzhalter wird durch die Social-Media-Links ersetzt mit denen der Kunde seine Spende publizieren kann.

    4.9 [SHOP_ROOT]/checkout_confirmation.php

    Suche nach

    $smarty->assign('TOTAL_BLOCK', $total_block);

    NACH DIESER ZEILE einfügen:

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - display elefunds fundraising
    require_once __DIR__ . '/includes/elefunds/helper.php';
    $actualTotal = number_format($order->info['total'], 2, '', '');
    $smarty->assign('ELEFUNDS_BAR', ElefundsHelper::getBar($actualTotal));
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - display elefunds fundraising

    4.10 [SHOP_ROOT]/checkout_process.php

    Suche nach

    xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));

    VOR DIESER ZEILE einfügen:

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - donate with elefunds fundraising
    require_once __DIR__ . '/includes/elefunds/helper.php';
    try {
      ElefundsHelper::makeDonation($insert_id);
    } catch (Lfnds\Exception\ElefundsException $e) {
      // do nothing
    }
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - domate with elefunds fundraising

    4.11 [SHOP_ROOT]/checkout_success.php

    Suche nach

    $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/checkout_success.html');

    VOR DIESER ZEILE einfügen:

    // BOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - donate with elefunds fundraising
    require_once __DIR__ . '/includes/elefunds/helper.php';
    $smarty->assign('ELEFUNDS_SHARE', ElefundsHelper::getSocialMediaShare($last_order));
    // EOF - Timo Paul (mail[at]timopaul[dot]biz) - 2013-09-24 - domate with elefunds fundraising

    5. Konfiguration

    im Backend unter „Hilfsprogramme“ >> „elefunds“ >> [CONFIGURATION] vornehmen

    5.1 modified eCommerce Shopsoftware

    Bitte jQuery auf Version 1.7 oder höher aktualisieren (ist im Archis unter \shop_root\includes\elefunds\jquery-1.7.2.min.js enthalten)

    5.2 xt:Commerce v3.04 SP2.1 / Evergreen v1.1.0.2 / Self-Commerce v3.0 b1

    jQuery muss geladen werden wenn es im Template nicht bereits ergänzt wurde

    5.3 Evergreen v1.1.0.2

    der „CSS Formular-Selektor“ muss auf „#form_checkout_confirmation“ geändert werden

    6. Installation

    Im Backend unter „Module“ >> „Zusammenfassung“ >> Modul „elefunds Spende“ installieren