PrestaShop dodawania kolumny brutto w widoku admina – produktu. (dla wersji 1.7.5 ta funkcja jest wbudowana)

Dodajemy dodatkową kolumnę z ceną ostateczną obok ceny netto
https://www.prestashop.com/forums/topic/888500-prestashop-1742-ceny-netto-brutto/

Works with: Prestashop 1.7.0-4 (tested up to 1.7.5.5) – W wersji 1.7.5 ta pozycja jest już wdrożona przez autorów PrestaShop. Jeśli więc zrobisz aktualizację to nie musisz robić ego ręcznie. Nie mniej jednak dobrze wiedzieć jak takie rzeczy zrobić samemu. Może się przydać przy innej okazji.


Navigate to:  yousite/src/PrestaShopBundle/Resources/views/Admin/Product/CatalogPage/Lists/products_table.html.twig
Find:

<th scope="col" class="text-center" style="width: 9%"> {{ ps.sortable_column_header("Price (tax excl.)"|trans({}, 'Admin.Catalog.Feature'), 'price', orderBy, sortOrder) }} </th>

Add below:

<th scope="col" class="text-center" style="width: 9%"> {{ ps.sortable_column_header("Final price"|trans({}, 'Admin.Catalog.Feature'), 'price_final', orderBy, sortOrder) }} </th>

Navigate to: 
yoursite/src/PrestaShopBundle/Resources/views/Admin/Product/CatalogPage/Lists/list.html.twig
Find:

<td class="text-center"> <a href="{{ product.url|default('') }}#tab-step2">{{ product.price|default('N/A'|trans({}, 'Admin.Global')) }}</a> </td>

Add below:

<td class="text-center"> <a href="{{ product.url|default('') }}#tab-step2">{{ product.price_final|default('N/A'|trans({}, 'Admin.Global')) }}</a> </td>

źródło:

https://www.prestashop.com/forums/topic/637522-how-to-add-extra-fields-to-back-office-to-display-the%C2%A0%C2%A0prices-tax-excl-and-tax-incl/

Export produktów w PrestaShop 1.7

PrestaShop 1.7 – I bez pluginu się da jak ktoś troszkę techniczny – w zaawansowanych klikamy w bazę danych > dodajemy zapytanie SQL > Piszemy kod SQL

SELECT p.id_product, p.active, pl.name, GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") as categories, p.price, p.id_tax_rules_group, p.wholesale_price, p.reference, p.supplier_reference, p.id_supplier, p.id_manufacturer, p.upc, p.ecotax, p.weight, p.quantity, pl.description_short, pl.description, pl.meta_title, pl.meta_keywords, pl.meta_description, pl.link_rewrite, pl.available_now, pl.available_later, p.available_for_order, p.date_add, p.show_price, p.online_only, p.condition, p.id_shop_default
FROM ps_product p
LEFT JOIN ps_product_lang pl
ON (p.id_product = pl.id_product)
LEFT JOIN ps_category_product cp
ON (p.id_product = cp.id_product)
LEFT JOIN ps_category_lang cl
ON (cp.id_category = cl.id_category)
LEFT JOIN ps_category c
ON (cp.id_category = c.id_category)
LEFT JOIN ps_product_tag pt
ON (p.id_product = pt.id_product)
WHERE pl.id_lang = 1
AND cl.id_lang = 1
AND p.id_shop_default = 1
AND c.id_shop_default = 1
GROUP BY p.id_product

Zapisujemy (lub dowolnie modyfikujemy). Jeśli przy tworzeniu sklepu dodaliśmy przedrostek do bazy to musimy go teraz dodać przed nazwą każdej tabeli.. np „v2_” lub coś innego. Naciskamy chmurkę i pobiera się nam CSV.. do otwierania używamy najlepiej Open Office (bo ten pozwala nam skonfigurować odczyt pliku CSV właśnie) lub Google Docs. Mam nadzieje, że tym trochę technicznym pomogłem.

Zapytanie pisane pod 1.7 i nie testowałem pod 1.6 ale może działa … kto wie

Export i Import produktów w Wooceommerce?

Woocoomerce pozwala na import i export plików CSV. Z jakiegoś niezrozumiałego powodu zamiast przy eksporcie nie ma możliwości zmiany znaku oddzielającego kolumny. DOmyślny podzielnik to przecinek co niestety sprawia problemy przy wczytywaniu pliku takich programach jak excel. Dlaczego tak się dzieje? Kolumny są wydzielna nieprawidłowo, ponieważ przecinki w opisach są również interpretowane jak przejście do nowej kolumny pomimo, tego, że są one umieszczone wewnątrz cudzysłowiu, który powinien być interpretowny jako tekst.

Rozwiązanie

Problem został zgłoszony na GitHub już jakiś czas temu. W efekcie powstał filter, który pozwala na zmodyfikowanie znaku oddzielającego kolumny:

Zgłoszenie braku: https://github.com/woocommerce/woocommerce/issues/24579

Rozwiązanie: https://github.com/woocommerce/woocommerce/pull/24759

Przykład użycia: https://gist.github.com/rafsuntaskin/8225bc350a968817734abd4b889542a6

<?php 

add_filter( 'woocommerce_product_export_delimiter', function ( $delimiter ) {
// set your custom delimiter
$delimiter = ';';

return $delimiter;
});

Powyższy kod należy dodać do pliku functions.php w child theme.
Następnie proponujmy używać OpenOffice do edycji wyeksportowanych pól.
Przy imporcie możemy już wybrać w jaki sposób chcemy oddzielić kolumny więc podajemy średnik i wszystko pięknie się importuje! 🙂

PRZYDATNE: Okazuje się, że problem importowani pliku nie występuje w Google Docs. Więc jeśli nie chcesz na siłę zmieniać delimitera to możesz skorzystać z rozwiązań jakie daje nam Google.

Learn WP Development

Czyli najlepsze zasoby do nauki WP theme / plugin / woocommerce development:

Udemy:
https://www.udemy.com/course/wordpress-development-create-wordpress-themes-and-plugins/
https://www.udemy.com/course/wordpress-plugin-course/
https://www.udemy.com/course/wordpress-plugin-development-using-boilerplate/
https://www.udemy.com/course/wp-plugin-development/
https://www.udemy.com/course/creating-plugins-to-extend-wordpress/
https://www.udemy.com/course/woocommerce-wordpress-theme-development/

YT:
plugin:
https://www.youtube.com/watch?v=0l7JTie_6jM&list=PLriKzYyLb28kR_CPMz8uierDWC2y3znI2


custom post ajax filter:
https://www.youtube.com/watch?v=mtz8MdQXhno&list=PLSeCxQ7f7r87ayYuHVdomXZ3d6YbI5mwo
https://www.youtube.com/watch?v=lz-daH9ZajU&list=PLSeCxQ7f7r87qbYmqXmOAcvoshw1e6ewQ&index=1
https://www.youtube.com/watch?v=X1Jtm6ZBiqg

ajax with API
https://www.youtube.com/watch?v=OwBBxwmG49w
https://www.youtube.com/watch?v=jAvxN3NX5A8

Filtrowanie produktów nie działa? Divi / Elementor / Beaver Builder

Jeśli twoja stronie nie pokazuje filtrów po tym jak wyedytowałeś ją z jakimkolwiek theme builderem to dlatego, że to normalne. Zwyczajnie te dwa byty nie są ze sobą integrowalne. Spokojnie istnieje proste i darmowe rozwiązanie twoich problemów. Wystarczy, że zainstalujesz darmowy plugin WooCommerce Product Filter i twoje filtry będą wyglądały lepiej niż wcześniej.

Więcej informacji możesz zaczerpnąć tutaj:
https://www.elegantthemes.com/blog/divi-resources/how-to-create-filtered-sidebars-for-your-divi-woocommerce-pages

Zwracając uwagę na oceny pluginu mogli byśmy założyć, że jest z nim coś nie tak. Jedyny problem jaki my znaleźliśmy to, to, że nie jest idioto odporny, co również zgłosiliśmy producentowi. Złe oceny i komentarze o niedziałającym produkcie to właśnie efekt nie dostosowania pluginu dla tych co instalują i oczekują działania od ręki bez jakiekolwiek konfiguracji.

Polecamy również doinstalowanie pluginu color swatch

Oraz dodatkowo galerię zdjęć dla wariacji produktowych

Otrzymywaniem emaila z PrestaShop po złożeniu zamówienia przez klienta

Wbrew pozorom ta niewinna funkcjonalność nie jest tak zwyczajnie dostępna w instalacji naszego kochanego sklepu. Jak możemy poczytać nie jedna osoba miała z tym problem. Można jednak dojść do wniosku, że jest to wykonalne. Trzeba pobrać moduł i za jego pomocą dodać tak banalną funkcjonalność. Poczytajmy na forum jak wygląda batalia o dodanie tej funkcjonalności trwająca od 2017 roku.

https://www.prestashop.com/forums/topic/602813-where-to-set-admin-email-address-for-new-order-notifications/

No i właśnie tak wygląda praca przy PrestaShop 🙂 Wiecznie coś trzeba kombinować. Chociaż naszym skromnym zdaniem tak banalne funkcjonalności powinny być dostępne po podstawowej instalacji bez konieczności jakichkolwiek modernizacji systemu.

Tymczasem musimy pobrać wtyczkę z github, zainstalować i odpowiednio skonfigurować

github link: https://github.com/PrestaShop/ps_emailalerts

Jeśli jesteś developerem to sam możesz dopisać sobie taką funkcjonalność korzystając z wbudowanej funkcji email w PrestaShop (jeśli nim jesteś to już o tym wiesz i ten wpis jest ci mało pomocny).

https://devdocs.prestashop.com/1.7/development/mail/

Usuwanie produktów demo z PrestaShop 1.7

Dlaczego to jest problem?

Jeśli ze względów estetycznych zdecydowaliśmy się usunąć zamówienia demo z naszej bazy to musimy również usunąć inne dane które są przypisane do tych zamówień. Jeśli tego nie zrobisz to twoje pierwsze zamówienia będą zawierać nieoczekiwane niespodzianki.

Może to być dość dziwne ale instalacja PrestaShop dodaje do naszego systemu dane demo, które mogą nam sprawić potem sporo problemów. Jakich? O tym przekonamy się za chwilę. Ważne jest aby po czystej instalacji sklepu takie dane usunąć w pełni a nie tylko częściowo. Można to zrobić ręcznie grzebiąc w bazie danych lub przy pomocy darmowego pluginu:

https://mypresta.eu/modules/administration-tools/delete-orders-free.html
Możemy też pobrać inny plugin z githuba:

https://github.com/PrestaShop/pscleaner

Dla zainteresowanych można również poczytać jak inni radzili sobie z tym problemem na forum PrestaShop:

https://www.prestashop.com/forums/topic/615380-how-to-delete-sample-data-ps-17x/

Okazuję się, że w system PrestaShop trzeba włożyć dużo pracy, żeby działał dokładnie tak jak powinien i z pewnością nie jest to rozwiązanie dla osób szukających idealnych rozwiązań.

Ps. Czasami nie chcemy, aby nasz sklep wystawiał FV za nas. Aby wyłączyć automatyczne wystanie dokumentów księgowych należy przejść do zakładki zamówienia potem faktury i tam na dole wyłączyć taką opcję. Problem jednak nie znika bo pozycje dalej występują w zamówieniu wysłanym do klienta.


Co się stanie jeśli nie usuniecie demo data ?

Tak właśnie może zaskoczyć ciebie i twojego klienta system PrestaShop. W kwestii wyjaśnienia – dwa pierwsze produkty nie były zamówione a mimo wszystko zostały dodane do zamówienia. Zwróćmy tez uwagę, że zostały poniekąd dodane ale tak naprawdę nie stały podliczone… PrestaShop potrafi zaskakiwać.

Jak usunąć demo data ręcznie?

Po primo ultimo … robimy całościowy backup naszej strony z naciskiem na backup naszej bazy danych.
Dopiero potem możemy przystąpić do jakichkolwiek prac na stronie / bazie.

Wyksportuj bazę wyedytuj dane – odzukaj

INSERT INTO v1_ps_order_detail

Albo możesz też otworzyć bazę np w Sublime Text i wyszukać zakładając że mamy włączoną opcja wyrażeń regularnych

demo_[1-9]

Potem zaznaczamy całe rekordy i usuwamy.

Musimy teraz zaimportować wyedytowaną bazę na nasz serwer.
Jeśli przy exporcie nie zaznaczyliśmy dodaj DROP / CREAT statement to będziemy musieli najpierw usunąć tabele z naszej bazy a potem zaimportować plik w przeciwnym razie baza MySQL pokaże nam błąd że taka czy inna tabel już istnieje a my staramy się ją zduplikować.

Jak uniknąć problemu?

Podczas instalacji PrestaShop możemy nie wybierać tworzenia produktów i danych demo. Jeśli więc będziesz instalował PrestaShop po raz kolejny zwyczajnie nie importuj tych danych a oszczędzisz sobie sporo problemów przy ich usuwaniu.