Language switcher

–Hidden comment

Use attributes in format region_from and region_to= to change the languages showing in language switcher.
Available regions are:
europe_from europe_to
asia_from asia_to
mideast_from mideast_to
america_from america_to

Example:
europe_from=0 europe_to=22 will put all languages (ordered in language switcher settings) from 1 to 21 to Europe region:
asia_from=22 asia_to=25 will put all languages from 23 to 24 (so only 2) into Asia region.

Summer Cart

Ein benutzerfreundlicher, funktionsreicher PHP-Warenkorb.

Summer Cart hat alle Tools und Funktionen, um es Onlineverkäufern leicht zu machen, einen betriebsreifen Store zu bauen. Egal, ob Sie Dutzende Nischenspezialitäten oder Hunderte Massenprodukte verkaufen, Sie erhalten hohe Sichtbarkeit und Beliebtheit dank eines professionell erstellten Stores.

Die Integration von Post Affiliate Pro mit Summer Cart erfordert die Bearbeitung der Fußzeile Ihres Shops (um den Klick-Trackingcode einzufügen) und zweier Warenkorbklassen. Sehen Sie die Details dieser Integration unten.

Klickintegration

Der Klick-Trackingcode sollte in der Datei skins//customer/footer.tmpl gespeichert werden.

Wenn Sie diese Datei nicht in Ihrer Skin haben, kopieren Sie sie einfach aus dem Skeletonverzeichnis Ihres Stilverzeichnisses und fügen Sie den Klick-Trackingcode ein, der für Sie auf Post Affiliate Pro (Menü Tools -> Integration -> Klicktracking) vorbereitet wurde.

Fügen Sie diesen Code vor der Markierung “

Da die Summer Cart-Integration kein Flashcookie-Tracking verwenden kann (es werden nur Browsercookies verwendet), müssen wir das Flashcookie-Tracking deaktivieren, indem die folgende Zeile in dem Klick-Trackingcode eingefügt wird:

PostAffTracker.disableTrackingMethod('F');

Sie sollte direkt nach dieser Zeile:

PostAffTracker.setAccountId('default1');

in Ihrem Klick-Integrationscode in der footer.tmpl-Datei eingefügt werden.

Verkaufsintegration

Die Verkaufsintegration funktioniert in 2 Schritten und die Integration findet statt, indem PAP API-Anfragen an Post Affiliate Pro direkt von dem PHP-Code Ihres Warenkorbes abgerufen werden.

Im ersten Schritt werden Transaktionen auf Post Affiliate Pro erstellt (Status Ausstehend) und später, wenn die Bestellung an den Kunden geliefert wurde, ändert sich der Status der Transaktion auf Post Affiliate Pro auf Genehmigt.

Transaktionsschritt einfügen

Ihr Warenkorb erstellt die Bestellung rechtzeitig, wenn ein Besucher an den Zahlungsverarbeiter (z.B. PayPal) weitergeleitet wird. Zeitgleich wird auf Post Affiliate Pro eine Transaktion (Status Ausstehend) erstellt.

Öffnen Sie die Warenkorb-Datei: /include/sc/util/order/OrdersInProgress.php

sodass wir hier den Verkaufstrackingcode am Ende der Klasse scOrdersInProgress platzieren können.

Um die gesamte Bestellung auf Post Affiliate Pro als 1 Transaktion (Provision) zu tracken (selbst wenn in einer bestimmten Bestellung mehrere Waren gekauft wurden), verwenden Sie bitte diesen Code:

private function registerNewPostAffiliateProTransaction($order) {
    include_once('<PATH_TO_PAP_API>/PapApi.class.php');
    $saleTracker = new Pap_Api_SaleTracker('https://URL_TO_PostAffiliatePro/scripts/sale.php');

    $productIDs = '';
    $items = $order->getOrderItems();
    foreach($items as $item) {
       $productIDs .= $item->get('OrderItemProductCode').',';
    }

    $sale = $saleTracker->createSale();
    $papOrderDetails = $order->getOrderTotalLines();
    $sale->setTotalCost($papOrderDetails[0]->get('OrderTotalLineCustomerCurrencyAmount'));
    $sale->setOrderID($order->getPK());
    $sale->setProductID($productIDs);
 
    $saleTracker->register();
}

Wenn Sie möchten, dass jedes Produkt in einer Bestellung auf Post Affiliate Pro als separate Transaktion (Provision) getrackt wird, verwenden Sie den folgenden Code:

private function registerNewPostAffiliateProTransaction($order) {
    include_once('<PATH_TO_PAP_API>/PapApi.class.php');
    $saleTracker = new Pap_Api_SaleTracker('https://URL_TO_PostAffiliatePro/scripts/sale.php');
      $items = $order->getOrderItems();
      foreach($items as $item) {
          $sale = $saleTracker->createSale();
          $sale->setTotalCost($item->get('OrderItemTotal'));
          $sale->setOrderID($order->getPK());
          $sale->setProductID($item->get('OrderItemProductCode'));
      }
      $saleTracker->register();
    }

WICHTIG: Diese Methode sollte vor dem Ende der Klasse gespeichert werden, also vor der letzten } in der Datei /include/sc/util/order/OrdersInProgress.php

WICHTIG: Vergessen Sie nicht, den korrekten Pfad zu der Datei PapApi.class.php einzutragen.

Die Datei PapApi.class.php kann aus Ihrer Post Affiliate Pro-Installation in dem Menü Tools-> Integration -> API-Integration heruntergeladen werden.

Kopieren Sie sie auf Ihren Server, wo Ihr Shop installiert ist und legen Sie den korrekten Pfad zu dem Ort fest.

Transaktionsschritt einfügen

Nun sollten wir die Methode registerNewPostAffiliateProTransaction verwenden, die in dem vorherigen Schritt hinzugefügt wurde.

Bitte tragen Sie die folgende Codezeile in der Methode createOrder direkt vor der letzten Zeile ein:

return $this->_lastOrderId;
$this->registerNewPostAffiliateProTransaction($order);

Status der Transaktion ändern

Der Status der bestehenden Transaktionen auf Post Affiliate Pro kann kontrolliert werden, indem der Status Ihres Warenkorbes geändert wird.

Der folgende Code ändert den Status der PAP-Transaktion zu Genehmigt, wenn Sie Ihre Warenkorbbestellung auf den Status Zugestellt ändern.

Der Status der PAP-Transaktion wird auf Abgelehnt geändert, wenn Sie Ihre Warenkorbbestellung auf den Status Storniert, Fehlgeschlagen oder Zurückgesendet ändern.

Bearbeiten Sie Ihre Warenkorbdatei /include/sc/domainobj/Order.php und fügen Sie am Ende der Klasse Order die folgende Methode ein:

    private function updatePostAffiliateProTransaction() {
      try {
  		  include_once('<PATH_TO_PAP_API>/PapApi.class.php');
        $session = new Gpf_Api_Session("https://URL_TO_PostAffiliatePro/scripts/server.php");

        if(!$session->login("<MERCHANT_USERNAME>","<MERCHANT_PASSWORD>")) {
          return false;
        }


        $request = new Pap_Api_TransactionsGrid($session);
        $request->addFilter("orderid", Gpf_Data_Filter::LIKE, $this->getPK());
        $request->addFilter("rtype", Gpf_Data_Filter::EQUALS, 'S');
        try {
        	$request->sendNow();
        	$grid = $request->getGrid();
        	$recordset = $grid->getRecordset();
        } catch (Exception $e) {
          return false;
        }

        foreach($recordset as $rec) {
          $transaction = new Pap_Api_Transaction($session);
          $transaction->setTransid($rec->get('transid'));
          try {
        	  if(!$transaction->load()) {
        	   return false;
        	  } else {
        	     if ($transaction->getStatus() != 'D') {
                  $newStatus = '';
                  switch($this->get('OrderStatus')) {
                    case scOrderStatus::ORDER_STATUS_UNFINISHED:
              		  case scOrderStatus::ORDER_STATUS_PAYMENT_PENDING:
              		  case scOrderStatus::ORDER_STATUS_NEW:
              		  case scOrderStatus::ORDER_STATUS_IN_PROGRESS:
              		  case scOrderStatus::ORDER_STATUS_ON_HOLD:
              		  case scOrderStatus::ORDER_STATUS_QUEUED:
              		    $newStatus = 'P';
              		    break;
              		  case scOrderStatus::ORDER_STATUS_RETURNED:
              	    case scOrderStatus::ORDER_STATUS_PAYMENT_FAILED:
              		  case scOrderStatus::ORDER_STATUS_CANCELLED:
              		    $newStatus = 'D';
              		    break;
              		  case scOrderStatus::ORDER_STATUS_DELIVERED:
              		    $newStatus = 'A';
              		    break;
            		  default:
            		    return false;
                  }
                  // changing the status of a transaction
                  if (strlen($newStatus) && $transaction->getStatus() != $newStatus) {
                    $transaction->setStatus($newStatus);
                    $transaction->save();
                  }
               }
        	  }
          } catch (Exception $e) {
            return false;
          }
        }
        } catch (Exception $e) {
          return false;
        }
        return true;
    }

WICHTIG: Diese Methode sollte vor dem Ende der Klasse gespeichert werden, also vor der letzten } in der Datei /include/sc/domainobj/Order.php

WICHTIG: Vergessen Sie nicht, den korrekten Pfad zu der Datei PapApi.class.php einzutragen. Die Datei
PapApi.class.php kann aus Ihrer Post Affiliate Pro-Installation in dem Menü Tools-> Integration -> API-Integration heruntergeladen werden.

Kopieren Sie sie auf Ihren Server, wo Ihr Shop installiert ist und legen Sie den korrekten Pfad zu dem Ort fest.

WICHTIG: Tragen Sie an den entsprechenden Stellen Ihren Verkäufer-Benutzernamen und Ihr Passwort ein. Die API-Anfrage verwendet Ihre Nutzerdaten, um auf Transaktionen in Ihrer Post Affiliate Pro-Installation zuzugreifen.

Status der Transaktion ändern

Nun sollten wir die Methode verwenden, die wir in der Klasse Order eingefügt haben.

Fügen Sie die folgende Codezeile (aus der Box unten) in der Datei /include/sc/domainobj/Order.php am Ende der Methoden updateOrderStatus und setOrderStatus ein.

$this->updatePostAffiliateProTransaction();

Benutzerdefinierter Bestellstatus

Falls Sie einen benutzerdefinierten Bestellstatus auf Summer Cart verwenden möchten, sollten Sie die Methode updatePostAffiliateProTransaction in Ihrer Warenkorbdatei /include/sc/domainobj/Order.php anpassen.

In Switch Function sollten Sie neue Fallstatements einfügen, in denen der Wert die ID Ihres benuzterdefinierten Status ist.

Back to Integrations Create account for FREE

Our website uses cookies. By continuing we assume your permission to deploy cookies as detailed in our privacy and cookies policy.

×

Schedule a one-on-one call and discover how Post Affiliate Pro can benefit your business.

We’re available on multiple dates

Schedule a call