Opencart + pazaruvaj.com

Dea Pamukchieva

New Member
Здравейте,
имам следния проблем, искам да направя магазина си "Коректен магазин" в сайта pazaruvaj.com като за целта са ми предоставили скрипт, който трябва да поставя на страницата с потвържение на поръчката, но когато го направя ми излизат грешки. Досега не съм писала особено много на php и определено не съм използвала класове, а очевидно opencart работи с класове. Aко някой може да ми окаже някаква помощ нека пише, защото е доста спешно
 
От: Opencart + pazaruvaj.com

<?php

/*******************************************************************************
* Pazaruvaj.com trusted shop program
* Example code integration to the webshop
*
*
* Please note, that the example detailed below can not be simply copy-pasted
* into your webshop’s code, it has to be customized adequately.
*
* Setup steps:
* 1. Copy TrustedShop.php file to a place accessible by the webshop engine.
* 2. Copy this example code to the page of the webshop where the e-mail address
* of the customer and the names of the purchased products are retrievable
* from the webshop engine. Generally this is the webshop’s confirmation
* page of the purchase.
* 3. Customize the pasted example code according to the following:
* - Modify path of TrustedShop.php in require_once() in such a way that
* the webshop engine can use it.
* - Check that the proper WebAPI key is set, if not, modify it. You can find
* the WebAPI key on the partner portal.
* - Set the customer’s e-mail address.
* - Add the names of the purchased products.
* - Implement an error handling if you want (optional).
*
******************************************************************************/

require_once 'TrustedShop.php';

try {

// Provide your own WebAPI key.
// You can find your WebAPI key on your partner portal.

$Client = new TrustedShop('4eee39583f06aab1460277f41be9e0e7');

// Provide the e-mail address of your customer.
// You can retrieve the e-amil address from the webshop engine.

$Client->SetEmail($data['email']);

// Provide the name of the purchased products.
// You can get the name of the products from the webshop engine.
// The AddProduct method must be called for each of the purchased products.
//
// It is optional to provide the name of the products, so if this data is not
// available, you can leave out the AddProduct calls.

$Client->AddProduct('Name of first purchased product');
$Client->AddProduct('Name of second purchased product');

// This method sends us the e-mail address and the name of the purchased
// products set above. After the data arrived to us, we store them
// with the time stamp and the WebAPI key.
// This lets us know that someone has purchased at your webshop, to whom
// we later have to send the questionnaire for evaluating your shop.
// The "Send()" operation doesn't send immediately. It generates a HTML output,
// puts into source of the page and the customer's browser will send the
// required informations us.

$Client->Send();

} catch (Exception $Ex) {

// Here you can implement error handling. The error message can be obtained
// in the manner shown below. Implementing error handling is optional.

$ErrorMessage = $Ex->getMessage();
}

?>

това е скрипта, който трябва да добавя
 
От: Opencart + pazaruvaj.com

Така на магия няма да се получат нещата. Какви грешки дава ? Няма нищо сложно, всичко ти е описано какви настройки трябва да се направят.
 
От: Opencart + pazaruvaj.com

Аз нз в кой точно файл трябва да добавя скрипта, предполагам, че в checkout.php в controller-a, само че там имам php class и нз дали вътре в него мога просто да си сложа скрипта. Никога не съм работила с php класове. Като го сложа вътре в php class-a не се получават нещата и нз какво точно трябва да направя
 
От: Opencart + pazaruvaj.com

Гледайки схемата от сайта им, би трябвало да го добавиш да се изпълнява след финализиране на поръчката. От там следваш описанието в самият скрипт.

Тук в кавичките си слагаш API ключа, който те ще ти предоставят.
Код:
$Client = new TrustedShop('4eee39583f06aab1460277f41be9e0e7');

Тук в скобите си вкарваш стринг с пощата на клиента, за да могат те да изпратят запитването след 10 дена.
Код:
$Client->SetEmail($data['email']);

В скобите си слагаш името на поръчаният продукт... ако е повече от един, можеш да сложиш за всеки един продукт, този ред. Ако случайно желаеш, може и да не ги добавяш или поне така са описание в описанието на скрипта.
Код:
$Client->AddProduct('Name of first purchased product');

Другите части от кода не ги пипаш, понеже те са необходими за правилната работа на скрипта... може би само ще се наложи да пипнеш require_once за да оправиш пътя до класа, който ползват.

Надявам се да съм ти помогнал поне малко...
 
От: Opencart + pazaruvaj.com

Мерси, обаче на мен проблемът ми е, че не знам кой е този момент след финализиране на поръчката (checkout.php или пък success.php) и как в php класа във файла да сложа този скрипт, къде по-точно трябва да го сложа така, че да не ми се працака всичко
 
От: Opencart + pazaruvaj.com

Мерси, обаче на мен проблемът ми е, че не знам кой е този момент след финализиране на поръчката (checkout.php или пък success.php) и как в php класа във файла да сложа този скрипт, къде по-точно трябва да го сложа така, че да не ми се працака всичко

Бих казал, че не познавам самият CMS, но от това, което открих в Интернет, контролера, който ти отговаря за финализирането на поръчката e: catalog/controller/checkout/confirm.php
 
От: Opencart + pazaruvaj.com

Да, не го познавам и заради това питам, но освен, че не го познавам и от php не разбирам достатъчно :(
 
От: Opencart + pazaruvaj.com

По-надолу в темата съм описал как става интеграцията.
 
Последно редактирано:
От: Opencart + pazaruvaj.com

Здравейте ,
ще съм благодарен ако споделите още малко информация за това как става интеграцията на този скрипт.
Като начало вече е задължително и изпращането на имената на продуктите,което според мен е описано така $Client->AddProduct ($product['name']);
Единствено не ми става ясно това
//според инстукциите метода Send() генерира html код затова поместваме резултата в промелнива $trusted_shop_output, която трябва да поместиш в съответния .tpl файл
 
От: Opencart + pazaruvaj.com

Никой ли няма да удари едно рамо за този скрипт :(:(

Ще ударим, даже две!

Стъпка 1: Поставяш файл TrustedShop.php в public_html/system/library/.

Стъпка 2: Добавяш малко код в контролера намиращ се във файл public_html/catalog/controller/checkout/success.php от:

PHP:
if (isset($this->session->data['order_id'])) {
 
    $this->cart->clear();
      
    unset($this->session->data['shipping_method']);
    unset($this->session->data['shipping_methods']);
    unset($this->session->data['payment_method']);
    unset($this->session->data['payment_methods']);
    unset($this->session->data['guest']);
    unset($this->session->data['comment']);
    unset($this->session->data['order_id']);
    unset($this->session->data['coupon']);
    unset($this->session->data['reward']);
    unset($this->session->data['voucher']);
    unset($this->session->data['vouchers']);
      
}

на :

PHP:
     if (isset($this->session->data['order_id'])) {
 
            try {
                $pts_file = DIR_SYSTEM . 'library/TrustedShop.php';
          
                if (!is_file($pts_file)) {
                    throw new Exception('TrustedShop class not found!');
                }
          
                include_once($pts_file);
          
                $pts_web_api_key = 'стойността на Web API Key';
          
                $pts_service = new TrustedShop($pts_web_api_key);
          
                $client_email = $this->customer->isLogged() ? $this->customer->getEmail() : $this->session->data['guest']['email'];
          
                $pts_service->SetEmail($client_email);
          
                foreach($this->cart->getProducts() as $client_product) {
                    $pts_service->AddProduct($client_product['name']);
                }
          
                $this->data['pts_output'] = $pts_service->Prepare();
            } catch (Exception $ex) {
                $this->log->write('pazaruvaj.com error message: ' . $ex->getMessage());
            }

    $this->cart->clear();
      
    unset($this->session->data['shipping_method']);
    unset($this->session->data['shipping_methods']);
    unset($this->session->data['payment_method']);
    unset($this->session->data['payment_methods']);
    unset($this->session->data['guest']);
    unset($this->session->data['comment']);
    unset($this->session->data['order_id']);
    unset($this->session->data['coupon']);
    unset($this->session->data['reward']);
    unset($this->session->data['voucher']);
    unset($this->session->data['vouchers']);
      
}

Стъпка 3: Отваряш темплейтния файл намиращ се в public_html/catalog/view/theme/темата/template/common/success.tpl и въвеждаш следния код някъде преди "<?php echo $footer; ?>" и след "<?php echo $header; ?>" :

Код:
<?php
     if (!empty($pts_output)) {          
         echo $pts_output;
     }
?>

Малко пояснение: Повечето платени теми имат променен по-голям брой темплейтни файлове, тоест можеш да имаш променен темплейнтен файл success.tpl, но може и да нямаш, ако нямаш променяш този в default темата в противен случай този в папката на къстъм темата.
 
Последно редактирано:
  • Like
Реакции: CTAH
От: Opencart + pazaruvaj.com

Случайно някой да е интегрирал това нещо в Woocommerce и да има желание да помогне?
 

Горе