Virtue Mart integration
Una soluzione e-commerce gratuita.
L’integrazione con Virtue Mart avviene inserendo lo script di tracciamento delle vendite nella pagina di conferma.
Modifica il modello
Trova e apri il file checkout.thankyou.php.
Dovrebbe essere in ‘administrator/components/com_virtuemart/html/‘.
Integrazione
Sostituisci l’ultimo:
?>
con il codice seguente:
$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>
Questo codice traccerà il subtotale del prezzo (con un coupon di sconto). Se vuoi tracciare qualcos’altro, puoi usare una di queste varianti: order_total, order_subtotal, order_tax, order_shipping, order_shipping_tax, coupon_discount, order_discount, order_status, customer_note
Usalo nel modo in cui è mostrato nel codice sopra nella terza linea.
Prodotti separati
C’è anche la possibilità di generare una transazione unica in PAP per ogni tipo di prodotto. Così avrai la possibilità di modificare le diverse tipologie di prodotti all’interno di un ordine. È utile se si verifica un rimborso. Così potrai annullare solamente la transazione (commissione) del prodotto che deve essere rimborsato.
In questo caso dovresti utilizzare questo codice di integrazione invece del codice di cui sopra:
$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>
Se vuoi vedere il nome dell’articolo invece del numero dell’articolo usa la variante ‘order_item_name‘ invece di ‘product_id‘ in questa linea:
$pap_product_id[$i] = $d
Finito
Hai finito l’integrazione. Ogni volta che il cliente entra nella pagina di conferma dell’ordine il codice di tracciamento si attiverà e registrerà una vendita per l’affiliato di riferimento.
Versione 1.4
Sembra che la versione 1.4 abbia bisogno di modificare un altro file – checkout.result.php
È un suggerimento di uno dei nostri clienti, non l’abbiamo testato.
Virtue Mart con PayPal
Nel caso in cui tu stia usando VirtueMart con PayPal nel tuo account Joomla, devi fare alcuni passaggi specifici per far funzionare l’integrazione.
Per prima cosa, in administrator/components/com_virtuemart/notify.php (sul tuo server) aggiungi le righe sotto la linea con il codice: if ($_POST) {
/* 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 */
Ora salva il file e accedi al tuo account Joomla.
VirtueMart con PayPal
Vai a Componenti> VirtueMart> Negozio> Elenco Metodi di Pagamento> PayPal> Configurazione> Informazione Extra sul Pagamento e aggiungi una di queste righe:
"custom" => 'Account_ID'$_COOKIE['PAPVisitorId'], // for version of PAP 4.4.x.x and higher
oppure (dipende dalla tua versione di PAP):
"custom" => $_COOKIE['PAPCookie_Sale'], // for version of PAP 4.3.x.x and lower
Inseriscilo sotto la linea con “notify_url”=>…