Skocz do zawartości

Rekomendowane odpowiedzi

Na Prestashop addons pojawił się oficjalny oczywiście płatny moduł mający dostosowywać Prestashop do wymagań wynikających z RODO.

 

Czy jest tu na forum ktoś bliżej zapoznany z tą tematyką, czy ten moduł autentycznie wystarczy?

 

Może ktoś go testował?

 

Albo jak planujecie się dostosować do RODO? 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Problemem z RODO jest to, że tak naprawdę nie potrzeba jakichś specjalnych modułów

CO potrzeba aby osiągnąć zgodność z rodo.

1. polityka prywatności zawierająca niezbędne i wymagane przez prawo informacje (moduł tego nie dostarczy)

2. Checboxy z odpowiednią formułką i akceptacją przy rejestracji w sklepie

3. Odpowiednia informacja w ustawieniach mojego konta

4. chcebox z odpowiednia formułką w formularzu kontaktowym (moduł tego nie dostarczy)

5.checbox z odpowiednią formułką przy newsletterze (oraz należy zmodyfikować zapisywanie się do newslettera podczas rejestracji)

6.Modyfikacja szablonów email tak aby zawierały odpowiednie informacje (moduł tego nie dostarczy)

7.Moduł także nie dostarczy wszelkich niezbędnych formularzy/dokumentacji jaką tak swoją drogą już od dawna należy prowadzić a jest określona w UODO i przepisach wykonawczych - ci którzy się przyłożyli mają z RODO z górki bo już dysponują odpowiednią dokumentacją i procedurami. Problemem jest to, że część dokumentacji, której prowadzenie wynika z aktualnie obowiązującej ustawy UODO po wejściu w życie RODO będzie musiał być dostępna na każde "życzenie" każdego kto będzie miał na to ochotę ;).

Wymienił bym jeszcze kilka punktów ale............

Tak więc myślenie, ze jakikolwiek moduł załatwi sprawę z RODO jest raczej myśleniem "życzeniowym" i może po 25.05 raczej być "czarnym scenariuszem" niż "życzeniem".

Tak więc napisze jeszcze raz żaden moduł nie załatwi spraw związanych ze zgodnością sklepu z RODO.

W tej chwili mamy zakończone ponad 20 wdrożeń związanych z RODO i wiem co piszę ;)

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

@sower Twierdzisz, że nie potrzeba żadnego modułu itd, jednak piszesz, że potrzebny checkbox tu i tam...
Jak zatem wpakować odpowiednie checkboxy lub akcje na zdarzenia do sklepu jeśli nie właśnie za pomocą odpowiednich modułów?? Większość (pewnie ponad 90%) właścicieli sklepów pewnie nie jest tak uzdolniona technicznie jak Ty. Może zatem podzielisz się swoją wiedzą z innymi?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Twierdzę, że nie potrzeba jakichś specjalnych płatnych modułów

w części dystrybucji presty jest dostępny darmowy moduł blockcustomerprivacy

 

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ę



  • Podobna zawartość

    • Przez Actuna
      Świeża instalacja w wersji 1.6.1.20, włączony multisklep, php5.6 (opcjonalnie mogę wyżej tylko na 7.0, 7.1),
      domyślny szablon, dwa języki PL, EN.
      Objaw: Po instalacji np modułu dowolnego (np: Block CMS, Blok informacji kontaktowych, Blok Lubie to na FB, )
      w administratorze ładnie mogę po zmieniać treści, ustawienia ...
      Pierwsze wejście na stronę sklepu -> wszystko pojawia się poprawnie, 
      ale jak dam odśwież ekran, to pojawiają się domyślne teksty ... i tak z każdym modułem,
      raz j=na jakiś czad odświeżania pojawią się prawidłowe treści.
      Po zmianie danych w modułu, kolejne odświeżenie strony jest prawidłowe, kolejne już nie ...
      Co próbowałem:
      1 - wyłączenie cache = brak problemu
      2 - przebudowanie cache z poziomu administratora = pierwsze wejście prawidłowe, kolejne z nieprawidłową wartością
      3 - ręczne usunięcie plików cache = pierwsze wejście prawidłowe, kolejne z nieprawidłową wartością
      4 - od instalowanie modułu, ponowna instalacja i konfiguracja = pierwsze wejście prawidłowe, kolejne z nieprawidłową wartością
       
      Jakiś cyrk ... mam problem z różnymi modułami, skończyły mi się pomysły gdzie może być problem.
       
      W ramach podejścia nie standardowego zauważyłem, że edycja plików *.tpl danego modułu w katalogu szablony sklepu, 
      taka jak dodanie pustej linii, spacji i zapisanie pliku, rozwiązuje problem do czasu kolejnej zmiany w danych danego modułu.
      (cache włączone).
      Powyższe rozwiązanie traktuje jako obejście problemu, a nie jego rozwiązanie,
      prawdopodobnie problem jest błachy. 
    • Przez AnkaW
      Cześć
      Wybaczcie początkującej ale mam pewnie banalny problem jednak jakoś nie mogę znaleźć rozwiązania.
      Zaczęłam budować własny moduł. Działanie modułu polega na wypełnieniu pół formularza, przejściu dalej, kolejny widok i na podstawie poprzedniego formularza wyświetlam kolejny formularz, i tak do czwartego kroku finalnego gdzie na podstawie ostatniego formularza wyświetlam produkty i mogę je dodać do koszyka.
      To moja pierwsza próba z samodzielnym pisaniem modułu przepraszam więc za może błahe pytanie.
      Jak przejść w obrębie tego modułu między kolejnymi widokami?
      Mam zrobiony kontroler w controllers/front o nazwie widok1.php do tego mam views/templates/front pliki skladak.tpl (to takie główne opakowanie) i widok1.tpl. W skladak.tpl mam include widok1.tpl zrobiony. I jak teraz przejść dalej do kolejnych widoków? Wiem że jestem może głupia blondynka ale nie mogę do tego dojść.
      Anka
    • Przez daars_pl
      Witam,
      Czy ktoś jest w stanie polecić moduł sprawnej wyszukiwarki produktów, lub ew. możliwość modyfikacji standardowej ?
      Tak aby przy produktach typu VR-50HD nie było kłopotu znalezienia go przy frazach 'vr50hd' 'vr 50hd' 'vr 50 hd' 'vr50-hd' 'vr50' itp. opcje wpisywania z odstępami, myślnikami i bez ?
      I żeby wyszukiwarka nie wyświetlała dodatkowo wielu niepotrzebnych produktów, które wcale nie mają takiej frazy w nazwie czy kategorii ? Ustawienia wag w panelu adm. nic nie dają.
      Pozdrawiam
    • Przez bonek04pl
      Witam serdecznie.
      Zduplikowałem moduł odpowiedzialny za wybieranie przy zamówieniu czy klient chce paragon i fakturę. Chciałem go zduplikować jako osobny moduł aby dodać jeszcze opcję wyboru Wniosku NFZ. Co zrobiłem aby zduplikować moduł:
      - Dodałem "2" do nazwy folderu oraz wszystkich plików które znajdują się w katalogu modułu (nie wliczając katalogów).
      - Wyedytowałem odpowiednio wszystkie pliki zduplikowanego stylu np. główny plik php:

       
      <?php if (!defined('_PS_VERSION_')) exit; class twParagonFaktura2 extends Module { const _PARAGON_FAKTURA2_ = 'tw_paragonfaktura2'; public static $documentType2 = array(); public function __construct() { $this->name = 'twparagonfaktura2'; $this->tab = 'billing_invoicing'; // front_office_features'; // $this->version = '1.0'; $this->author = 'Tomek Witek'; $this->need_instance = 0; $this->bootstrap = true; parent::__construct(); self::$documentType = array('Yes' => $this->l('Yes'), 'No' => $this->l('No') ); $this->displayName = $this->l('Receipt or invoice?'); $this->description = $this->l('The module allows you to choose the type of document confirming the purchase of goods (receipt or invoice)'); $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); } // ------------------------------------------------------------------------------------------------- __construct() public function addOverride($classname) { if ( version_compare(_PS_VERSION_, '1.6.1.0', '<') ) { return parent::addOverride($classname); } else { return true; } } // ------------------------------------------------------------------------------------------------- addOverride() public function install() { reset(self::$documentType); $sql = 'CREATE TABLE IF NOT EXISTS`'._DB_PREFIX_.self::_PARAGON_FAKTURA2_.'` ( `id_cart` int(11) NOT NULL, `document_type` ENUM(\''.implode("','", array_keys(self::$documentType) ).'\') NOT NULL DEFAULT \''.key(self::$documentType).'\', PRIMARY KEY(`id_cart`) ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8;'; return( parent::install() && $this->registerHook('displayShoppingCartFooter') && $this->registerHook('displayReceiptInvoiceExtra') && $this->registerHook('displayOrderDetail') && $this->registerHook('displayAdminOrder') && $this->registerHook('displayAdminOrderExtra') && $this->registerHook('actionGetExtraMailTemplateVars') && Configuration::updateValue('TW_PARAGON_FAKTURA2', key(self::$documentType)) && Db::getInstance()->execute($sql) ); } // ------------------------------------------------------------------------------------------------- install() public function removeOverride($classname) { if ( version_compare(_PS_VERSION_, '1.6.1.0', '<') ) { return parent::removeOverride($classname); } else { return true; } } // ------------------------------------------------------------------------------------------------- removeOverride() public function uninstall() { $sql = 'DROP TABLE IF EXISTS `'._DB_PREFIX_.self::_PARAGON_FAKTURA2_.'`;'; return( parent::uninstall() && $this->unregisterHook('displayShoppingCartFooter') && $this->unregisterHook('displayReceiptInvoiceExtra') && $this->unregisterHook('displayOrderDetail') && $this->unregisterHook('displayAdminOrder') && $this->unregisterHook('displayAdminOrderExtra') && $this->unregisterHook('actionGetExtraMailTemplateVars') && Configuration::deleteByName('TW_PARAGON_FAKTURA2') && Db::getInstance()->execute($sql) ); } // ------------------------------------------------------------------------------------------------- uninstall() public function getContent() { if (Tools::isSubmit('submitSaveConfiguration')) { Configuration::updateValue('TW_PARAGON_FAKTURA2', Tools::getValue('TW_PARAGON_FAKTURA2')); } return $this->renderConfigForm(); } // ------------------------------------------------------------------------------------------------- getContent() public function renderConfigForm() { $fields_form = array( 'form' => array( 'legend' => array( 'title' => $this->l('Configuration'), 'icon' => 'icon-cogs' ), 'input' => array( array( 'type' => 'select', 'label' => $this->l('Default document'), 'name' => 'TW_PARAGON_FAKTURA2', 'desc' => $this->l('Set the default document confirming the purchase of goods'), 'options' => array( 'query' => $this->getDocumentTypes(), 'id' => 'id_option', 'name' => 'name' ), ), ), 'submit' => array( 'title' => $this->l('Save'), ) ), ); $helper = new HelperForm(); $helper->show_toolbar = false; $helper->table = $this->name; $lang = new Language((int)Configuration::get('PS_LANG_DEFAULT')); $helper->default_form_language = $lang->id; $helper->module = $this; $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; $helper->identifier = $this->identifier; $helper->submit_action = 'submitSaveConfiguration'; $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name; $helper->token = Tools::getAdminTokenLite('AdminModules'); $helper->tpl_vars = array( 'fields_value' => array( 'TW_PARAGON_FAKTURA2' => Tools::getValue('TW_PARAGON_FAKTURA2', Configuration::get('TW_PARAGON_FAKTURA2')), ), 'languages' => $this->context->controller->getLanguages(), 'id_language' => $this->context->language->id ); return $helper->generateForm(array($fields_form)); } // --------------------------------------------------------------------------------------------------------- _renderConfigForm() public function getDocumentTypes() { $options = array(); foreach( self::$documentType as $docType => $docName ) { $options[] = array( 'id_option' => $docType, 'name' => $docName ); } return $options; } // --------------------------------------------------------------------------------------------------------- getDocumentTypes() public function getCurrentDocumentType($id_cart) { $sql = 'SELECT `document_type` FROM `'._DB_PREFIX_.self::_PARAGON_FAKTURA2_.'` WHERE `id_cart`='.$id_cart.';'; $currentDocument = Db::getInstance()->getValue($sql); return ( array_key_exists($currentDocument, self::$documentType) ? $currentDocument : 'unknow' ); } // --------------------------------------------------------------------------------------------------------- getCurrentDocumentType() public function getCurrentDocumentName($currentDocument, $unknow = 'unknow' ) { return ( array_key_exists($currentDocument, self::$documentType) ? self::$documentType[$currentDocument] : $unknow ); } // --------------------------------------------------------------------------------------------------------- getCurrentDocumentName() public function _prepareHook() { $this->context->controller->addCSS(($this->_path).'views/css/twparagonfaktura2.css', 'all'); $this->context->controller->addJS(($this->_path).'views/js/twparagonfaktura2.js'); // --------------------------- dodaje rekord jezeli nie istnieje (z domyslnym typem dokumentu - klient nie wybral rodzaju dokumentu) // --------------------------- dla danego koszyka (id_cart) zostanie wykonane tylko JEDEN RAZ! $sql = 'INSERT IGNORE INTO `'._DB_PREFIX_.self::_PARAGON_FAKTURA2_.'` (`id_cart`, `document_type`) VALUES ('.$this->context->cart->id.', "'.Configuration::get('TW_PARAGON_FAKTURA2').'" )'; Db::getInstance()->execute($sql); // --------------------------- odczytuje biezacy typ dokumentu, typ dokumentu moze byc inny niz po dodaniu rekordu // --------------------------- np po ponownym wejscu do koszyka - klient wczesniej zmienil typ dokumentu, // --------------------------- zobacz paragonfaktuta2.js, ajax2.php $currentDocument = $this->getCurrentDocumentType($this->context->cart->id); $this->smarty->assign(array( 'documentType' => self::$documentType, 'currentDocument' => $currentDocument, 'id_cart' => $this->context->cart->id, )); } // --------------------------------------------------------------------------------------------------------- _prepareHook() public function hookdisplayReceiptInvoiceExtra($params) { $this->_prepareHook(); return $this->display(__FILE__, 'views/templates/hook/paragonfaktura2.tpl'); } // --------------------------------------------------------------------------------------------------------- hookdisplayReceiptInvoiceExtra() public function hookDisplayShoppingCartFooter($params){ $this->_prepareHook(); return $this->display(__FILE__, 'views/templates/hook/paragonfaktura2.tpl'); } // --------------------------------------------------------------------------------------------------------- hookDisplayShoppingCartFooter() public function hookDisplayOrderDetail($params) { $currentDocument = $this->getCurrentDocumentType($params['order']->id_cart); if ($currentDocument == 'unknow') return false; $this->smarty->assign(array( 'currentDocument' => $currentDocument, 'currentDocumentTranslate' => $this->getCurrentDocumentName($currentDocument), )); return $this->display(__FILE__, 'views/templates/hook/order_detail2.tpl'); } // --------------------------------------------------------------------------------------------------------- hookDisplayOrderDetail() public function _prepareAdminHook() { $currentDocument = $this->getCurrentDocumentType($this->context->cart->id); $this->smarty->assign(array( 'currentDocument' => $currentDocument, 'currentDocumentTranslate' => $this->getCurrentDocumentName($currentDocument), )); } // --------------------------------------------------------------------------------------------------------- _prepareAdminHook() public function hookDisplayAdminOrder($params) { $this->_prepareAdminHook(); return $this->display(__FILE__, 'views/templates/admin/admin_orders2.tpl'); } // ---------------------------------------------------------------------------------------------------------- hookDisplayAdminOrder() public function hookDisplayAdminOrderExtra($params) { $this->_prepareAdminHook(); return $this->display(__FILE__, 'views/templates/admin/admin_orders2.tpl'); } // ---------------------------------------------------------------------------------------------------------- hookDisplayAdminOrderExtra() public function hookActionGetExtraMailTemplateVars($params) { if ($params['template'] == 'order_conf' || $params['template'] == 'new_order') { $currentDocument = $this->getCurrentDocumentType($this->context->cart->id); $params['extra_template_vars']['{receipt_invoice}'] = $this->getCurrentDocumentName($currentDocument, ''); } } // ---------------------------------------------------------------------------------------------------------- hookActionGetExtraMailTemplateVars() } Wszytko na pierwszy rzut oka powinno działać jednak gdy wybieram przy zamówieniu 1 pole (Paragon czy Faktura) to pod zarówno 1 jak i 2 polem na raz wyświetlają się błędy o uaktualnieniu i błędzie co skutkuje tym że 2 pole nie zmienia się po zakończeniu zamówienia (pozostaje domyslne - takie jakie jest ustawione w opcjach modułu) W bazie danych SQL tak samo widnieje tylko opcja domyślna, nie zmieniona.
      Gdzie robię błąd ?
       

      twparagonfaktura2.zip
    • Przez Inexo
      Witam,
      Poszukuję rozwiązania dla presty 1.6
      Chodzi mi o to by wyciągnąć z presty dane statystyczne, które mówią:  który klient kupił określony produkt.
      Czyli np. wybieram produkt i pokazuje mi który klient go zakupił.
      Niestety nie dostrzegam (chyba że nie widzę) takiej opcji w standardowych statystykach presty.
      Czy istnieje taki moduł lub inne rozwiązanie, które dostarczy mi owych informacji?
      Za pomoc z góry dziękuję
  • 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
      7644
    • Postów
      36796
×