Summer Cart integration
Łatwy w użyciu, w pełni funkcjonalny koszyk na zakupy w PHP.
Summer Cart posiada wszystkie narzędzia i funkcje umożliwiające sprzedawcom internetowym łatwe zbudowanie działającego sklepu. Niezależnie od tego, czy sprzedajesz kilkanaście niszowych produktów, czy setki produktów, dzięki mistrzowsko wykonanemu sklepowi uzyskasz wysoką widoczność i popularność swojej działalności.
Integracja Post Affiliate Pro z Summer Cart będzie wymagała nie tylko modyfikacji stopki sklepu (aby dodać kod śledzenia kliknięć), ale także 2 klas koszyka. Zobacz szczegóły tej integracji poniżej.
Integracja przez kliknięcie
Kod śledzenia kliknięć powinien być umieszczony w pliku skins//customer/footer.tmpl.
Jeśli nie masz tego pliku, po prostu skopiuj go z katalogu szkieletowego do katalogu motywu i dodaj kod śledzenia kliknięć, który jest przygotowany dla Ciebie w Post Affiliate Pro (menu Narzędzia -> Integracja -> Śledzenie kliknięć)
Dodaj ten kod przed znacznikiem
Integracja sprzedaży
Integracja sprzedaży będzie działać w 2 krokach, a odbywa się ona poprzez wywołanie żądań PAP API do Post Affiliate Pro bezpośrednio z kodu php Twojego koszyka.
W pierwszym kroku zostanie utworzona transakcja w Post Affiliate Pro (status Pending), a później, gdy zamówienie zostanie dostarczone do klienta, transakcja w Post Affiliate Pro zmieni status na Approved.
Dodaj etap transakcji
Twój koszyk stworzy zamówienie w czasie, gdy odwiedzający zostanie przekierowany do procesora płatności (np. Paypal). W tym samym czasie powstaje transakcja w Post Affiliate Pro (status Pending)
Otwórz plik koszyka: /include/sc/util/order/OrdersInProgress.php
abyśmy mogli umieścić tam kod śledzenia sprzedaży na samym końcu klasy scOrdersInProgress .
Aby śledzić całe zamówienie jako 1 transakcję (prowizję) w Post Affiliate Pro (nawet jeśli podczas danego zamówienia zakupiono wiele pozycji) użyj następującego kodu:
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();
}
Jeśli chcesz, aby każda pozycja zakupiona podczas zamówienia była śledzona jako osobna transakcja (prowizja) w Post Affiliate Pro, to użyj następującego kodu:
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();
}
WAŻNE: metoda ta powinna być zapisana przed końcem klasy, czyli przed ostatnim } w pliku /include/sc/util/order/OrdersInProgress.php
WAŻNE: Nie zapomnij zastąpić prawidłowej ścieżki do pliku PapApi.class.php.
Plik PapApi.class.php można pobrać z instalacji Post Affiliate Pro w menu Narzędzia-> Integracja -> Integracja Api.
Skopiuj go na swój serwer, na którym zainstalowany jest Twój sklep i ustaw odpowiednią ścieżkę.
Dodaj etap transakcji
Teraz powinniśmy użyć metody registerNewPostAffiliateProTransaction, którą dodaliśmy w poprzednim kroku.
Proszę dodać następującą linię kodu do metody createOrder tuż przed ostatnim wersem
return $this->_lastOrderId;
$this->registerNewPostAffiliateProTransaction($order);
Zmiana statusu transakcji
Status istniejących transakcji w Post Affiliate Pro może być kontrolowany poprzez zmianę statusu w koszyku.
Poniższy kod zmieni status transakcji PAP na Approved, jeśli zamówienie w koszyku będzie miało status Delivered.
I ustawi transakcję PAP na status Declined, jeśli ustawisz zamówienie w koszyku na status Cancelled, Failed lub Returned.
Edytuj plik koszyka /include/sc/domainobj/Order.php i na końcu klasy Zamówienia dodaj następującą metodę:
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;
}
WAŻNE: metoda ta powinna być zapisana przed końcem klasy, czyli przed ostatnim } w pliku /include/sc/domainobj/Order.php
WAŻNE: Nie zapomnij zastąpić prawidłowej ścieżki do pliku PapApi.class.php.
Plik PapApi.class.php można pobrać z instalacji Post Affiliate Pro w menu Narzędzia-> Integracja -> Integracja Api.
Skopiuj go na swój serwer, na którym zainstalowany jest Twój sklep i ustaw odpowiednią ścieżkę.
WAŻNE: Znaczenie ma Twoja nazwa użytkownika sprzedawcy i Twoje hasło. Żądanie API użyje Twoich danych uwierzytelniających, aby uzyskać dostęp do transakcji w Twojej instalacji Post Affiliate Pro.
Zmiana statusu transakcji
Teraz powinniśmy użyć metody, którą dodaliśmy do klasy Zamówienia.
Dodaj następującą linię kodu (znajdującą się w ramce poniżej) do pliku /include/sc/domainobj/Order.php na samym końcu metod updateOrderStatus i setOrderStatus.
$this->updatePostAffiliateProTransaction();
Niestandardowe statusy zamówień
W przypadku, gdy planujesz używać niestandardowych statusów zamówień w swoim Summer Cart, powinieneś dostosować metodę updatePostAffiliateProTransaction w pliku koszyka /include/sc/domainobj/Order.php.
w funkcji switch powinieneś dodać nowe instrukcje przypadków, gdzie wartością będzie ID twojego niestandardowego statusu.
Integrate Ubercart seamlessly with Drupal for your online store using Post Affiliate Pro. Discover integration settings, implement thank you page codes, and optimize PayPal payment gateway for enhanced tracking and affiliate marketing success. Set up your free account today and explore the benefits Post Affiliate Pro can bring to your business!
Odkryj łatwą integrację Pinnacle Cart z Post Affiliate Pro! Nasze oprogramowanie koszyka zakupowego obsługuje wielu języków, idealne dla międzynarodowych klientów. Dowiedz się, jak zintegrować kod śledzenia sprzedaży i ciesz się nową wersją Pinnacle Cart. Wypróbuj za darmo i usprawnij swój marketing afiliacyjny już dziś!