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.
Nasi klienci wykorzystują Post Affiliate Pro do rozwoju swoich firm poprzez usprawnianie marketingu afiliacyjnego i sprawdzanie raportów wskaźników sukcesu. Integracja ProStores umożliwia śledzenie sprzedaży i wykorzystuje certyfikat SSL. Możesz także umówić się na rozmowę lub skorzystać z darmowego konta.
Raporty na temat najlepszych odsyłających URL
Raporty najlepszych odsyłających URL w Post Affiliate Pro pozwalają śledzić i analizować działania w marketingu afiliacyjnym, informując o skutecznych kanałach marketingowych i treściach generujących ruch i sprzedaże poprzez śledzenie URL. To narzędzie do optymalizacji linków partnerskich i zwiększenia konwersji.