Skocz do zawartości
ircykk

[Moduł] ShipToPay (ship2pay) dla PrestaShop 1.6

Rekomendowane odpowiedzi

Witam.

Dziękuję za moduł. ircykk

Ważna informacja. Żeby moduł działał, koniecznie trzeba usunąć pozostałości po wcześniejszych modułach tego typu.

Warunkiem koniecznym jest włączenie nadpisywania kontrolerów.

Miałem problemy, gdy zainstalowałem inny moduł tego typu wcześniej.

Musiałem się pozbyć pozostałości po nim.

Moduł rewelacyjnie sprawuje się na Prestashop 1.6.

Dobra współpraca z  "Multistore" .

Polecam

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Właśnie zainstalowałam moduł. Śmiga pięknie, ale... No właśnie, ale. Na angielskiej wersji wywala błąd, że moduł nie jest zainstalowany. Czy coś należy zmienić w plikach? Będę dzwięczna za pomoc :)

 

EDIT: problem zażegnany :D 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Sprawdzałem i moduł działa bez problemu przy OPC jak i 5 kroków na PS 1.6.0.11. Czym objawia się nie działanie (wszystkie czy brak płatności)? Czy jest mulistore? Usunięcie cache/class_inex.php nie pomaga?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nie ma multistore. Problem polega na tym, że o ile w starszych wersjach zaznaczyłem odpowiednie środki transportu przy odpowiednich rodzajach płatność i po zapisaniu w panelu zarządzania modułem to zaznaczenie zostawało, to w nowej wersji zaznaczam sobie odpowiednio klikam zapisz, nawet dostaję komunikat że prawidłowo zapisano ale po zapisaniu całe zaznaczenie znika. A gdy próbuję robić zakup to wszystkie sposoby dostawy są dostępne niezależnie od rodzaju płatności.

Jeżeli usunę cache/class_index.php to wyskakuje komunikat o braku zainstalowanych modułów płątności,

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
<?php

class Hook extends HookCore
{

	/*
	* module: shiptopay
	* date: 2015-01-22 12:50:45
	* version: 2.0
	*/
    public static function getHookModuleExecList($hook_name = null)
    {
        $context = Context::getContext();
        $cache_id = 'hook_module_exec_list_'.(isset($context->shop->id) ? '_'.$context->shop->id : '' ).((isset($context->customer)) ? '_'.$context->customer->id : '');
        if (!Cache::isStored($cache_id) || $hook_name == 'displayPayment' || $hook_name == 'displayBackOfficeHeader')
        {
            $frontend = true;
            $groups = array();
            $use_groups = Group::isFeatureActive();
            if (isset($context->employee))
                $frontend = false;
            else
            {
                // Get groups list
                if ($use_groups)
                {
                    if (isset($context->customer) && $context->customer->isLogged())
                        $groups = $context->customer->getGroups();
                    elseif (isset($context->customer) && $context->customer->isLogged(true))
                        $groups = array((int)Configuration::get('PS_GUEST_GROUP'));
                    else
                        $groups = array((int)Configuration::get('PS_UNIDENTIFIED_GROUP'));
                }
            }
            
            // SQL Request
            $sql = new DbQuery();
            $sql->select('h.`name` as hook, m.`id_module`, h.`id_hook`, m.`name` as module, h.`live_edit`');
            $sql->from('module', 'm');
            if ($hook_name != 'displayBackOfficeHeader')
            {
                $sql->join(Shop::addSqlAssociation('module', 'm', true, 'module_shop.enable_device & '.(int)Context::getContext()->getDevice()));
                $sql->innerJoin('module_shop', 'ms', 'ms.`id_module` = m.`id_module`');
            }
            $sql->innerJoin('hook_module', 'hm', 'hm.`id_module` = m.`id_module`');
            $sql->innerJoin('hook', 'h', 'hm.`id_hook` = h.`id_hook`');
            if ($hook_name != 'displayPayment')
                $sql->where('h.name != "displayPayment"');
            // For payment modules, we check that they are available in the contextual country
            elseif ($frontend)
            {
                // ShipToPay remove fix (override still exists but module not)
                if(Module::getInstanceByName('shiptopay')->active)
                    $sql->innerJoin('shiptopay', 'stp', 'stp.`id_payment` = m.`id_module` AND stp.`id_carrier` = ' . (int)$context->cart->id_carrier . ' AND stp.`id_shop` = ' . (int)$context->shop->id);

                if (Validate::isLoadedObject($context->country))
                    $sql->where('(h.name = "displayPayment" AND (SELECT id_country FROM '._DB_PREFIX_.'module_country mc WHERE mc.id_module = m.id_module AND id_country = '.(int)$context->country->id.' AND id_shop = '.(int)$context->shop->id.' LIMIT 1) = '.(int)$context->country->id.')');
                if (Validate::isLoadedObject($context->currency))
                    $sql->where('(h.name = "displayPayment" AND (SELECT id_currency FROM '._DB_PREFIX_.'module_currency mcr WHERE mcr.id_module = m.id_module AND id_currency IN ('.(int)$context->currency->id.', -1, -2) LIMIT 1) IN ('.(int)$context->currency->id.', -1, -2))');
            }
            if (Validate::isLoadedObject($context->shop))
                $sql->where('hm.id_shop = '.(int)$context->shop->id);

            if ($frontend)
            {
                if ($use_groups)
                {
                    $sql->leftJoin('module_group', 'mg', 'mg.`id_module` = m.`id_module`');
                    if (Validate::isLoadedObject($context->shop))
                        $sql->where('mg.id_shop = '.((int)$context->shop->id).' AND  mg.`id_group` IN ('.implode(', ', $groups).')');
                    else
                        $sql->where('mg.`id_group` IN ('.implode(', ', $groups).')');
                }
            }

            $sql->groupBy('hm.id_hook, hm.id_module');
            $sql->orderBy('hm.`position`');

            $list = array();
            if ($result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql))
                foreach ($result as $row)
                {
                    $row['hook'] = strtolower($row['hook']);
                    if (!isset($list[$row['hook']]))
                        $list[$row['hook']] = array();

                    $list[$row['hook']][] = array(
                        'id_hook' => $row['id_hook'],
                        'module' => $row['module'],
                        'id_module' => $row['id_module'],
                        'live_edit' => $row['live_edit'],
                    );
                }
            if ($hook_name != 'displayPayment' && $hook_name != 'displayBackOfficeHeader')
            {
                Cache::store($cache_id, $list);
                // @todo remove this in 1.6, we keep it in 1.5 for retrocompatibility
                self::$_hook_modules_cache_exec = $list;
            }
        }
        else
            $list = Cache::retrieve($cache_id);

        // If hook_name is given, just get list of modules for this hook
        if ($hook_name)
        {
            $retro_hook_name = strtolower(Hook::getRetroHookName($hook_name));
            $hook_name = strtolower($hook_name);

            $return = array();
            $inserted_modules = array();
            if (isset($list[$hook_name]))
                $return = $list[$hook_name];
            foreach ($return as $module)
                $inserted_modules[] = $module['id_module'];
            if (isset($list[$retro_hook_name]))
                foreach ($list[$retro_hook_name] as $retro_module_call)
                    if (!in_array($retro_module_call['id_module'], $inserted_modules))
                        $return[] = $retro_module_call;

            return (count($return) > 0 ? $return : false);
        }
        else
            return $list;
    }
}

O ten plik chodzi?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Hi. Does this module work in prestashop 1.6.0.9 and higher?

Sorry to write in English but I don't understand your language I'm Portuguese.

I need a module were I can charge different prices of delivery according to the type of payment chosen by the customer.

Can I do that with ship2pay?

Thanks.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Hi! I'm sorry if I write in English, but I'm Italian ..
The module works fine, but disables the Paypal payment. When I enable ShipToPay module, the Paypal module does not work anymore.
Can you tell me why? (Obviously: Prestashop v1.6.0.9)
Thanks for your help

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Hi

uninstall and reinstall the PayPal module

when you uninstall  module before installing clear cache

Hi sower, thanks for your answer!

I tryed tu uninstall and clear cache, but still don't work. ShipToPay don't detect Paypal. Look:

post-12396-0-94881100-1424800195_thumb.png

 

and in front office disappears from payment page.

It will be because the Paypal module is modified and not is the original module?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Witam,

 

Wydaje mi się że moduł przestał działać dla najnowszej wersji 1.6.0.13, inna wersja podobnego modułu "konkurencji" również, więc myślę że coś zostało zmienione w silniku.

Moduł się instaluje, zaznaczam odpowiednie płatności do odpowiednich przewoźników - niestety w trakcie zamówienia mam wybór wszystkich, czyli tak jakby zaznaczone reguły w ogóle nie działały.

 

Czyściłem cache itp.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

W tej chwili sprawdzałem i działa ok, jak instalowałeś kilka moduł ship2pay to pewnie masz problem z overridem z innych modułów co w 99% przypadków powoduje problem.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



  • Przeglądający

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

  • Aktywni użytkownicy

    Nikt jeszcze nie otrzymał reputacji w tym tygodniu.

  • Statystyki forum

    • Tematów
      7518
    • Postów
      36245
×