Virtue Mart integration
Eine kostenlose eCommercelösung.
Die Integration mit Virtue Mart findet statt, indem ein Verkaufstrackingskript auf der Bestätigungsseite platziert wird.
Vorlage bearbeiten
Suchen und öffnen Sie die Datei checkout.thankyou.php.
Sie sollte in ‘administrator/components/com_virtuemart/html/‘ sein.
Integration
Ersetzen Sie die letzte Zeile:
?>
mit dem folgenden Code:
$q = "SELECT * FROM #__{vm}_user_info WHERE user_id='$user_id'";
$db->query( $q );
$pap_user_email = $db->f('user_email');
$q = "SELECT * FROM #__{vm}_orders WHERE order_id='$order_id'";
$db->query( $q );
$pap_order_subtotal = $db->f('order_subtotal' );
$pap_coupon_code = $db->f("coupon_code");
$pap_coupon_discount = $db->f("coupon_discount");
if (!is_null($pap_coupon_discount) && $pap_coupon_discount != '') {
$pap_order_total = $pap_order_subtotal - $pap_coupon_discount;
} else {
$pap_order_total = $pap_order_subtotal;
}
$q = "SELECT * FROM #__{vm}_order_item WHERE order_id='$order_id'";
$db->query( $q );
$pap_product_id = $db->f('product_id');
?>
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">PostAffTracker.setAccountId('Account_ID');var sale = PostAffTracker.createSale();
sale.setTotalCost('<?php echo $pap_order_total ?>');
sale.setOrderID('<?php echo $order_id ?>');
sale.setProductID('<?php echo $pap_product_id ?>');
sale.setData1('<?php echo $pap_user_email ?>');
sale.setCoupon('<?php echo $pap_coupon_code ?>');
PostAffTracker.register();
</script>
Dieser Code trackt die Teilsumme des Preises (mit Couponrabatten). Wenn Sie etwas anderes tracken möchten, können Sie eine dieser Variablen verwenden:
order_total, order_subtotal, order_tax, order_shipping, order_shipping_tax, coupon_discount, order_discount, order_status, customer_note
Verwenden Sie sie so, wie sie in dem oben stehenden Code in der dritten Zeile erscheinen.
Separate Produkte
Es besteht auch die Möglichkeit, auf PAP für jede Produktart einzigartige Transaktionen zu generieren. Damit haben Sie die Fähigkeit, innerhalb einer Bestellung separate Produktarten zu bearbeiten. Dies ist nützlich, sollte eine Rückerstattung notwendig sein. Dann müssen Sie nur eine Transaktion (Provision) ablehnen, die der Produktart zugeteilt wurde, welche rückerstattet wurde.
Verwenden Sie in diesem Fall bitte diesen Integrationscode, anstelle des Codes oben:
$q = "SELECT * FROM #__{vm}_user_info WHERE user_id='$user_id'";
$db->query( $q );
$pap_user_email = $db->f('user_email');
$q = "SELECT * FROM `#__{vm}_orders` WHERE `order_id`='$order_id'";
$db->query( $q );
$pap_coupon_code = $db->f('coupon_code');
$pap_coupon_discount = $db->f('coupon_discount');
$pap_order_subtotal = $db->f('order_subtotal');
$q = "SELECT * FROM #__{vm}_order_item WHERE order_id='$order_id'";
$number_of_items = @ mysql_fetch_array ($q);
$db->query( $q );
$i='0';
while ($db->next_record()) {
$pap_product_id[$i] = $db->f('product_id');
$pap_item_price[$i] = $db->f('product_final_price');
$pap_item_quantity[$i] = $db->f('product_quantity');
$i++;
}
?>
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">
PostAffTracker.setAccountId('Account_ID');<?php
for ($j=0; $j<=$i; $j++){
$pap_final_price[$j] = ($pap_order_subtotal - $pap_coupon_discount) * $pap_item_price[$j] * $pap_item_quantity[$j] / $pap_order_subtotal;
echo "var sale".$j." = PostAffTracker.createSale();\n".
"sale".$j.".setTotalCost('". $pap_final_price[$j]."');\n".
"sale".$j.".setOrderID('".$order_id."');\n".
"sale".$j.".setData1('".$pap_user_email."');\n".
"sale".$j.".setCoupon('".$pap_coupon_code."');\n".
"sale".$j.".setProductID('".$pap_product_id[$j]."');\n\n";
}
?>
PostAffTracker.register();
</script>
Wenn Sie anstatt der Warenzahl lieber den Warennamen sehen möchten, verwenden Sie diese Variable ‘order_item_name‘ anstatt von ‘product_id‘ in dieser Zeile:
$pap_product_id[$i] = $d
Fertig
Nun ist die Anwendung integriert. Jedes Mal, wenn ein Kunde auf der Bestätigungsseite landet, wird der Trackingcode abgerufen und ein Verkauf für den jeweiligen Affiliate registriert.
Version 1.4
Es scheint, als ob in der Version 1.4 eine andere Datei zu bearbeiten ist – checkout.result.php
Dies ist ein Vorschlag einer unserer Kunden, wir haben es nicht getestet.
Virtue Mart mit PayPal
In dem Fall, dass Sie VirtueMart mit PayPal auf Joomla verwenden, sind weitere Schritte erforderlich, sodass die Integration funktioniert.
Fügen Sie zuerst in administrator/components/com_virtuemart/notify.php (in Ihrem Server) unter der Zeile mit dem Code: if ($_POST) { Zeilen ein
/* PAP integration */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://URL_TO_PostAffiliatePro/plugins/PayPal/paypal.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
curl_exec($ch);
/* end of PAP integration */
Speichern Sie die Datei nun und loggen Sie sich auf Joomla ein.
VirtueMart mit PayPal
Navigieren Sie zu Bestandteile> VirtueMart> Store> Liste der Zahlungsmethoden> PayPal> Konfiguration> Zusätzliche Zahlungsinfo und fügen Sie eine dieser Zeilen ein:
"custom" => 'Account_ID'$_COOKIE['PAPVisitorId'], // for version of PAP 4.4.x.x and higher
oder (abhängig von Ihrer PAP-Verison):
"custom" => $_COOKIE['PAPCookie_Sale'], // for version of PAP 4.3.x.x and lower
Fügen Sie es unter der Zeile mit “notify_url”=>… ein