Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 03/06/2019 in all areas

  1. 2 points
    You are welcome 🙂 The forum is not a good place to be agressive and harsh, try Twitter for that. I didn't edited the topic to suite my needs, but to reflects the problem. You have a problem with a transaction on Addons. And the PrestaShop company is not a joke, this is a a serious business: most customers are happy, and only a few have problems and complain. I am sorry that you are part of the few customers with problems. Telling that our business is a joke is an insult. Were are you located in the world ? if you are not in the same timezone that us, that would explain part of the delays of the answers. We tried to help you, if you don't want our help, please stop to insult us.
  2. 1 point
    Export Products Export products generate's a CSV file which will match the Prestashop import functionality. This allows you to quickly make bulk changes to your store with minimal effort. Features Export all products Export by-products by category. CSV delimiter - lets you set the delimiter of the CSV export. Choose to export only active items. Language select. Only export products in your desired language. Multistore Support. Advanced Stock Management Support. Adds a link to your admin menu for ease of use. (You no longer have to dig through the modules page to use this). To use the module after install, navigate to the following: "Advanced Parameters > Export Products" exportproducts_2.6.1.zip I've also released a Pro version of this module which will export product combinations, categories, addresses & customers. You can read more about it here CHANGE LOG UPDATED v2.6.0 (05/04/2018) - Fix for 1.7.3.0 UPDATED v2.6.0 (13/08/2017) - Fix for 1.7+ - Fix Supplier Reference UPDATED v2.5.3 (23/03/2016) - Fix tools date format error. UPDATE v2.5.2 (22/02/2016) - Fix php syntax error. UPDATE v2.5.1 (17/02/2016) - Fix pricing export bug. - Fix 500 Internal Server Error UPDATE v2.5.0 (15/01/2016) - Fix price to exclude reductions - Fix price to export only one price using the latest import format for Prestashop 1.6.1.4 - Fix features export by adding a comma between features and add customized default value. UPDATE v2.4.2 (27/08/2015) - Fix empty cell spacing. UPDATE v2.4.1 (04/08/2015) - Fix syntax error is category function. - Fix notice error in warehouses if using advanced stock. UPDATE v2.4 (30/07/2015) - Multistore bug fixes for category display. UPDATE v2.3 (23/07/2015) - Multistore support - Advanced Stock Management Support - Fixed created date format. UPDATE v2.2 (08/04/2015) - Fix for warehouse name export. - Fix for UTF8 support in Excel on windows. UPDATE v2.1 (10/03/2015) - Fix for notice errors - Fix for categories UPDATE v2.0 Complete Rewrite for Prestashop 1.6+
  3. 1 point
    Na grupie zamkniętej Prestashop Polska ktoś poruszył temat zwiększonego zużycia CPU na hostingu ostatnimi na czasy i w sumie lekko temat olałem, dopóki nie powiązałem tego z krótkimi skokami zużycia na serwerze. Ostatnio też miałem dosyć duże skoki w którym po kilkanaście sekund lub nawet nieco dłużej wszystkie 4 rdzenie były na 100% i gdy szybko podglądałem co to za proces w PHP (komendą strace) to gdzieś tam śmigało odpalane zapytanie z PHP do MySQL o SUM('quantity') FROM `ps_cart_product` where bla bla i id_cart". No cóż, myślałem, że sobie z botami generującymi koszyki poradziłem (na forum są o tym tematy jak je blokować), ale jeden wybitnie ma gdzieś moje zabezpieczenia i wygenerował koszyk w którym było ponad 1000 produktów i gdy dodawał każdy kolejny produkt odpalały się wszystkie reguły koszyków itp, które dosyć mocno obliczeniowe były i obstawiam, że i u Was się to robiło. Tak więc na start diagnoza i naprawa: 1) Sprawdzić czy nie ma porzuconych koszyków, mój był na kilkanaście milionów złotych xD 2) Wprowadzić limit na produkty dodane do koszyka, można to na szybko zrobić o tak https://youtu.be/wAlXtr8u5Qo choć można sobie nieco to doprecyzować lub skopiować całą funkcję processChangeProductInCart stąd i podmienić w pliku controllers/front/CartController:php Można ustawić zmienne pod siebie zmieniając zmienne $max_cart_quantity oraz $max_cart_products. protected function processChangeProductInCart() { $mode = (Tools::getIsset('update') && $this->id_product) ? 'update' : 'add'; if ($this->qty == 0) { $this->errors[] = Tools::displayError('Null quantity.', !Tools::getValue('ajax')); } elseif (!$this->id_product) { $this->errors[] = Tools::displayError('Product not found', !Tools::getValue('ajax')); } $product = new Product($this->id_product, true, $this->context->language->id); if (!$product->id || !$product->active || !$product->checkAccess($this->context->cart->id_customer)) { $this->errors[] = Tools::displayError('This product is no longer available.', !Tools::getValue('ajax')); return; } $qty_to_check = $this->qty; $cart_products = $this->context->cart->getProducts(); $total_cart_quantity = 0; $total_cart_products = count($cart_products); if (is_array($cart_products)) { foreach ($cart_products as $cart_product) { $total_cart_quantity += $cart_product['cart_quantity']; if ((!isset($this->id_product_attribute) || $cart_product['id_product_attribute'] == $this->id_product_attribute) && (isset($this->id_product) && $cart_product['id_product'] == $this->id_product)) { $qty_to_check = $cart_product['cart_quantity']; if (Tools::getValue('op', 'up') == 'down') { $qty_to_check -= $this->qty; } else { $qty_to_check += $this->qty; } break; } } } $max_cart_quantity = 100; // Limit max quantity of all products $max_cart_products = 20; // limit products // limit the max add products to the cart added if (Tools::getValue('op', 'up') == 'up' && $mode == 'add'){ if ($total_cart_products >= $max_cart_products ){ $this->errors[] = sprintf(Tools::displayError('Przekroczono limit %s dodanych produktów do koszyka'), $max_cart_products); } else if ($total_cart_quantity + $this->qty > $max_cart_quantity) { $this->errors[] = sprintf(Tools::displayError('Przekroczono limit %s ilości sztuk w koszyku'), $max_cart_quantity); } } // Check product quantity availability if ($this->id_product_attribute) { if (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !Attribute::checkAttributeQty($this->id_product_attribute, $qty_to_check)) { $this->errors[] = Tools::displayError('There isn\'t enough product in stock.', !Tools::getValue('ajax')); } } elseif ($product->hasAttributes()) { $minimumQuantity = ($product->out_of_stock == 2) ? !Configuration::get('PS_ORDER_OUT_OF_STOCK') : !$product->out_of_stock; $this->id_product_attribute = Product::getDefaultAttribute($product->id, $minimumQuantity); // @todo do something better than a redirect admin !! if (!$this->id_product_attribute) { Tools::redirectAdmin($this->context->link->getProductLink($product)); } elseif (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && !Attribute::checkAttributeQty($this->id_product_attribute, $qty_to_check)) { $this->errors[] = Tools::displayError('There isn\'t enough product in stock.', !Tools::getValue('ajax')); } } elseif (!$product->checkQty($qty_to_check)) { $this->errors[] = Tools::displayError('There isn\'t enough product in stock.', !Tools::getValue('ajax')); } // If no errors, process product addition if (!$this->errors && $mode == 'add') { // Add cart if no cart found if (!$this->context->cart->id) { if (Context::getContext()->cookie->id_guest) { $guest = new Guest(Context::getContext()->cookie->id_guest); $this->context->cart->mobile_theme = $guest->mobile_theme; } $this->context->cart->add(); if ($this->context->cart->id) { $this->context->cookie->id_cart = (int)$this->context->cart->id; } } // Check customizable fields if (!$product->hasAllRequiredCustomizableFields() && !$this->customization_id) { $this->errors[] = Tools::displayError('Please fill in all of the required fields, and then save your customizations.', !Tools::getValue('ajax')); } if (!$this->errors) { $cart_rules = $this->context->cart->getCartRules(); $available_cart_rules = CartRule::getCustomerCartRules($this->context->language->id, (isset($this->context->customer->id) ? $this->context->customer->id : 0), true, true, true, $this->context->cart, false, true); $update_quantity = $this->context->cart->updateQty($this->qty, $this->id_product, $this->id_product_attribute, $this->customization_id, Tools::getValue('op', 'up'), $this->id_address_delivery); if ($update_quantity < 0) { // If product has attribute, minimal quantity is set with minimal quantity of attribute $minimal_quantity = ($this->id_product_attribute) ? Attribute::getAttributeMinimalQty($this->id_product_attribute) : $product->minimal_quantity; $this->errors[] = sprintf(Tools::displayError('You must add %d minimum quantity', !Tools::getValue('ajax')), $minimal_quantity); } elseif (!$update_quantity) { $this->errors[] = Tools::displayError('You already have the maximum quantity available for this product.', !Tools::getValue('ajax')); } elseif ((int)Tools::getValue('allow_refresh')) { // If the cart rules has changed, we need to refresh the whole cart $cart_rules2 = $this->context->cart->getCartRules(); if (count($cart_rules2) != count($cart_rules)) { $this->ajax_refresh = true; } elseif (count($cart_rules2)) { $rule_list = array(); foreach ($cart_rules2 as $rule) { $rule_list[] = $rule['id_cart_rule']; } foreach ($cart_rules as $rule) { if (!in_array($rule['id_cart_rule'], $rule_list)) { $this->ajax_refresh = true; break; } } } else { $available_cart_rules2 = CartRule::getCustomerCartRules($this->context->language->id, (isset($this->context->customer->id) ? $this->context->customer->id : 0), true, true, true, $this->context->cart, false, true); if (count($available_cart_rules2) != count($available_cart_rules)) { $this->ajax_refresh = true; } elseif (count($available_cart_rules2)) { $rule_list = array(); foreach ($available_cart_rules2 as $rule) { $rule_list[] = $rule['id_cart_rule']; } foreach ($cart_rules2 as $rule) { if (!in_array($rule['id_cart_rule'], $rule_list)) { $this->ajax_refresh = true; break; } } } } } } } $removed = CartRule::autoRemoveFromCart(); CartRule::autoAddToCart(); if (count($removed) && (int)Tools::getValue('allow_refresh')) { $this->ajax_refresh = true; } } 3) Wywalić te ogromne koszyki ze sklepu 4) Sprawdzić w logach apache IP bota wyszukując seokicks i na początku będziecie mieli ich IP. Bot jest na tyle bezczelny, że wchodzi w crawl z tym samym ciastkiem i jego IP to w moim przypadku 95.216.2.43. Wystarczy w htaccess w głównym folderze sklepu dodać w wolnej linii taki kod 5) Do robots.txt dodać regułę Disallow: /*?add= by profilaktycznie odsiać roboty które przestrzegają reguł, ponieważ Prestashop w wersji 1.6 i chyba w 1.7 nie dodaje domyślnie tej reguły do tego pliku. Deny from 95.216.2.43 95.216.11.210 Napisałem do autorów by coś z tymi zrobili. ---------------------------------------------------------------------------------------------------------------------------------------------------------------- EDYCJA: Otrzymałem odpowiedź twórców crawlera i ogólnie byli zdziwieni tym, że do koszyka dodaje się poprzez przekazanie parametru z URL koszyka oraz to, że Prestashop domyślnie do robots.txt nie dodaje Disallow: /*?add= ponieważ ich robot przestrzega reguł. No wszystko byłoby spoko gdyby nie sam fakt, że u mnie robots.txt miał odpowiednie reguły blokujące wszelakie takie akcje więc nie powinno się to wydarzyć. Ponoć w 1.7 nie powinno się to dziać.
  4. 1 point
    Podaję rozwiązanie. Nie było to związane z hookami w panelu administracyjnym, ani samym modułem "powiadomienia poczty". W pliku o nazwie "product-add-to-cart.tpl" w ścieżce katalog_prestashop > themes > nazwa_szablonu > templates > catalog > _partials Był dodany poniższy blok, który był zdublowany i niepotzrebny. Linia około 54-55. Wystarczyło usunąć: {block name='product_additional_info'} {include file='catalog/_partials/product-additional-info.tpl'} {/block}
  5. 1 point
    Salut, Via les frais de manutention peut-être. (Livraisons... Préférences)
  6. 1 point
    Spróbuj coś takiego dodać w css: div#page { background: url(linkkdografiki/bg.png.8592433); } Tylko link do grafiki zmień na ten z swojego serwera
  7. 1 point
    Najprościej będzie po prostu nałożyć od razu grafiki na siebie i to dawać jako tło. Możesz też dołożyć warstwę, która będzie przykrywała element body i jej przypisać to swoje dodatkowe tło-siatkę.
  8. 1 point
    Tak jak napisałem podaj link i wskaż element inaczej nie da się pomóc.
  9. 1 point
    Ale jeśli zastosujesz oba to background-image nadpisze ustawienie background-color i background. Zasadniczo to jeśli chcesz mieć widoczne zdjęcie umieszczone pod tłem to tło musi mieć odpowiednią przezroczystość. Chyba, że chcesz wymieniać obrazki - wtedy albo podmieniasz kod css albo obraz umieszczony w tle. Tylko najpierw wypadałoby precyzyjnie ustalić co chcesz osiągnąć i z czym masz problem
  10. 1 point
    The Internet has been invented to connect networks between them. Then, the Web has been invented to share knowledge over the Internet, not to complain in an insulting way. Some years after, the web 2.0 came, were anyone like you can write content. I am not the manager of the Addons marketplace, I am the manager of the forum. If Paypal or the accountant is requiring more information, I am sorry for you, but this is the fault of nobody on this forum. Next time, please use something else than Paypal, if possible. Anyway. I am glad that you eventually found a solution. Next time, please consider another way to complain: stay polite. You will get more help, quicker, and people will enjoy to help you.
  11. 1 point
    Wbudowany eksport to owszem nie nadaje się do niczego, ale import już jest OK.
  12. 1 point
    Hello, https://addons.prestashop.com/en/contact-us is usually the good place to contact the Addons team about an issue with a module. Strange that you didn't get an answer. Could you please send me a private message on the forum with some details about the transaction and your Addons account or the email associated to your account ?
  13. 1 point
    Moduły dodatkowe są do tego potrzebne.
  14. 1 point
  15. 1 point
    Element background można użyć wielokrotnie lub można skorzystać z background i background-image.
  16. 1 point
    Bonjour, Difficile de vous répondre sans plus d'infos. Quelle version utilisez-vous? Il y a t'il des erreurs dans la page ? Cordialement, AM
  17. 1 point
    Je n'ai pas ce souci sur Notepad++, peut être un souci d'encodage ou de copier/coller de ton côté.
  18. 1 point
    Je suis totalement d'accord avec toi, personne ne devrait utiliser prestashop pour les factures tant que ces problèmes ne sont pas réglés.
  19. 1 point
    Hello everyone, @mausbaus I'm sorry to hear that you had a negative experience on our Addons Marketplace. Concerning the delay (and the fact that we ask an ID scan), we've precised it in the Terms and Conditions for Addons Customers. "PrestaShop reserves the right to freeze the download of an Addon if it suspects that there is a risk of fraudulent payment in order to proceed with the payment verifications" It does, many fraudsters don't respond to this email. It's simply one of the process that helps us to fight against fraud. You chose not to send us this document, so it is unfortunately not possible to validate your purchase. If you encounter other similar issues in the future, I invite you to contact us via Facebook or Twitter. We are more reactive on these channels (and in this case, it might have speed up the process). Antoine
  20. 1 point
    It's works, thank you so much ❤️
  21. 1 point
    TEST only18plus.zip
  22. 1 point
    @Corleone Montana, il te faut préserver/recopier ton COOKIE_IV et COOKIE_KEY entre tes install
  23. 1 point
    I just sent you a message with more information. I hope it helps!
  24. 1 point
    Vous regardez pas les stats prestashop quand même ?
  25. 1 point
    como los ws de prestashop son SOAP mandas todo el esqueleto siempre por detrás mandaras un xml entero para asegurarte cuando mandes el PUT imprime tu xml y veras que madas todo el cuerpo aun que solo pongas $resouces->id; siempre se mandaran los demas campos y actualizaras todo entones en tu funcion PUT procura mandar esos meta datos de nuevo pero si te refieres a datos ajenos a a las tablas de los WS es por que muchos datos se agregan en automático en diferentes tablas a pesar de que tu no los mandes como por ejemplo cuando agregas una nueva categoría tu nomas indicas el rango pero el solo pone los id del rango de la categoría padre
  26. 1 point
  27. 1 point
    I found an other solution in my search. It has been running now over the weekend without giving any issues with colors on the category or manufacturer list. Before we we applied the override it would not show after 1-2 hours with smarty cache active. https://gist.github.com/Casper-O/e7e46f3b708aa03faa2c57fa429f357a
  28. 1 point
    Yeah it's funny and sad at the same time. It's great for the Open source world so that was for the best I think. Do not hesitate to give me your feedback, the module is not perfect but he makes the job I think. For the support, I received some feedback this week (released first on the French forum), and it improved the module very well. Prestashop 1.7, some bug fixes with configuration and unexpected content description like iframe or images. 5 small released in one week. It's funny how real world shops are far from the Prestashop out of box. (not like I didn't expect it) I'm pretty confident for the support, and more people will use it and more I'll be motivated to do it. Not sure about the roadmap if not a lot of people use it by the way. PS: About the PS install, you are the second one to ask me for it, for the moment, I do not wish to host a Prestashop demo but again, if many people ask for it, I will reconsider.
  29. 1 point
    Yes, you can manually upload an image. Make sure to resize it to 40 x 40 pixels to match the size of the other carrier logos. You need to give it the carrier ID and then .jpg. For example, if the carrier ID is 1, then upload img/s/1.jpg
  30. 1 point
    Try to replace line 27 with: <div id="product_comments_block_extra" class="no-print" {if $nbComments != 0}itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating"{/if}>
  31. 1 point
    I got the code from the forum, but sorry could not find url to refer back to the person who gave the code. In .htaccess I insert this code at the bottom and clear cache, it solved logout issue. <IfModule mod_expires.c> ExpiresDefault "access plus 1 days" ExpiresByType text/html "access plus 0 minutes" </IfModule> hope it helps..
  32. 1 point
    Looked in to it myself, and fixing it with a new carrier just did not work. So... Soultion is here: https://github.com/PrestaShop/PrestaShop/pull/574 Adding that code allows the following: * Option to force free shipping to be applied only if price and weight is matched * Set and end range for price and weight * If either end price or end weight is matched, free shipping is not applied And I followed config standard, so setting ranges to 0, disables that range. i.e if price start is 3000 and price end is 0, free shipping is applied if price is over 3000. And to achive my goal: Type: Price and Weight Price start: 4375 (4375 = 3500*25% tax) Price end: 0 Weight start: 0.01 (Lowest weight we have 10g) Weight end: 40
  33. 1 point
    Bonjour, si vous avez une catégorie avec que du texte et après des sous-catégories, si vous voulez supprimer cette phrase aller dans thème/votretheme/category.tpl Attention il n'y aura plus jamais marqué cela sur votre site. Donc vous n'aurez que votre Title mais plus le "il y a 6 produits" Aller à la ligne 7 de ce fichier et supprimer cela : {if $nb_products == 0}{l s='There are no products.'} {else} {if $nb_products == 1}{l s='There is'}{else}{l s='There are'}{/if} {$nb_products} {if $nb_products == 1}{l s='product.'}{else}{l s='products.'}{/if} {/if} Voilà. Bon évidemment pour ce que vous voulez faire le CMS est bien mieux. Mais si cette phrase vous ennui vous savez maintenant la solution. N'oubliez pas de mettre [Résolu]
  34. 0 points
    Thank for that idea - tried it and no change - I have removed all the menu links and the put a custom link in the menu, but once saved and when I go through to the front of the shop, its not there - frustrating to say the least.
  35. 0 points
    Thank your for sharing your progress That looks like the classic module-integration nightmare: you have 3 people that need to talk to each other to make the whole thing work (Paypal, 202ecommerce who makes the module and prestashop who runs the module) and each of them tell you to go talk to the other one I have seen this many times unfortunately, not only for prestashop ...
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More