Press "Enter" to skip to content

Dodanie pola tekstowego i pola wgrania pliku do wszystkich produktow na sklepie PrestaShop 1.6.x [Aktualizacja]

Admin 1

Co to za funkcjonalność??

PrestaShop posiada bardzo przydatną wbudowaną funcję. Możemy do każdego produktu z osobna dołączyć dodatkową informacje, która „idzie” potem razem z zamówieniem tego produktu.

Możemy:

  1. Dołączyć plik graficzny do produktu. Np. logo, zdjęcie albo inną grafikę. Pomocna funkcja przy np. produktach z nadrukiem – koszulki, kubki itp. – potem wiadomo co nadrukować klientowi na produkcie.
  2. Dolączyć pole do wpisania tekstu. Czyli np. tekst graweru na biżuterii albo napis na dowolnym produkcie itp.

Oczywiście możemy dodać jedno tylko z tych pól. NIe jest konieczne dodawanie obu na raz.

Te 2 pola są domyślnie nieaktywne. Włącza się je na zakładce „Dostosowanie” w edycji konkretnego produktu:

Można także określic te pola jako obowiązkowe. Poprzez zaznaczenie kratki „Wymagany„.

Gdy wypełnimy te pola – na stronie tego produktu pojawia się moduł wgrywania pliku lub/i dodawania tekstu:

Funkcjonalność jest przyjemna gdy chodzi o 1 produkt. Sprawa się komplikuje, gdy musimy tak zmodyfikować np 6000 produktów na sklepie.. Niestety nie ma możliwości dodania określonego pola do wszystkich produktów na raz.

Z pomocą może przyjść wykonanie poniższych zapytań do bazy danych.

Po pierwsze.

Pozyskaj link do narzędzia PhpMyAdmin na Twoim serwerze i uruchom pole wywoływania komend – SQL.

Po drugie. Ekstremalnie ważne:

Wykonaj kopię bezpieczeństwa sklepu.

Jak zrobić te czynności – opisywaliśmy to np. w tym artykule: https://pskrk.com/masowa-aktualizacja-cen-produktow-w-presta-shop/

Zapytania MySQL.

UWAGA #1
W poniższych zapytaniach użyliśmy domyślnego tzw. prefixu czyli członu przed nazwą tabel. W naszym przypadku: „ps_„. W Twoim sklepie może być użyty inny prefix i należy to uwzględnić.

UWAGA #2
Poniżej prezentujemy jak dodać oba typy pól do wszystkich produktów. Jeśli Tobie zależy na dodaniu tylko np. pola tekstowego należy poniższe zapytania odpowiednio zmodyfikować.

UWAGA #3
Założenie jest takie, że na sklepie nie ma już dodanych pól tekstowych lub do uploadu pliku. Wszystkie juz istniejące pola będą usunięte.

UWAGA #4
Poniższe zapytania polegają na ID języka polskiego = 2, a funkcja multistore jest nieaktywna. Tzn. jest tylko 1 sklep o ID = 1.

Do dzieła. Po kolei wklejamy komendy do pola SQL i wciskamy Uruchom / Go

1. Usuwamy juz istniejace pola:

TRUNCATE ps_customization_field; 
TRUNCATE ps_customization_field_lang;

2. Asekuracyjnie włączamy na sklepie funkcje pól do kastomizacji:

UPDATE `ps_configuration` SET `value` = '1' WHERE `name` = 'PS_CUSTOMIZATION_FEATURE_ACTIVE' ;

3. Wgrywamy do każdego produktu pole uploadu pliku:

INSERT INTO ps_customization_field (id_product,`type`,`required`) select `id_product`,0,0 FROM ps_product;

4. Wgrywamy do każdego produktu pole tekstowe:

INSERT INTO ps_customization_field (id_product,`type`,`required`) select `id_product`,1,0 FROM ps_product;

5. Wypełniamy tłumaczenia obu typów pól dla języka angielskiego (ID = 1), Uwaga – etykieta dla tego języka będzie pusta:

INSERT INTO ps_customization_field_lang (id_customization_field,`id_lang`,`id_shop`,`name`) select `id_customization_field`,1,1,'' FROM ps_customization_field;

6. Wypełniamy tłumaczenia obu typów pól dla języka polskiego (ID = 2), nadajemy tymczasową etykietę test:

INSERT INTO ps_customization_field_lang (id_customization_field,`id_lang`,`id_shop`,`name`) select `id_customization_field`,2,1,'test' FROM ps_customization_field;

7. Aktualizujemy tabele produktów oznaczając, że zawierają one pola kastomizacji:

UPDATE ps_product SET customizable = 1, uploadable_files =1, text_fields =1;
UPDATE ps_product_shop SET customizable = 1, uploadable_files =1, text_fields =1;

8. Poprawiamy etykietę dla pól wgrywania pliku dla języka polskiego:

UPDATE ps_customization_field_lang SET 
`name` = 'Wgraj plik' 
WHERE id_customization_field IN (
SELECT `id_customization_field` FROM `ps_customization_field` 
WHERE `type` = 0 
) AND id_lang = 2;

9. Poprawiamy etykietę dla pól tekstowych dla języka polskiego:

UPDATE ps_customization_field_lang SET 
`name` = 'Dodaj tekst' 
WHERE id_customization_field IN (
SELECT `id_customization_field` FROM `ps_customization_field` 
WHERE `type` = 1 
) AND id_lang = 2;

Gotowe!

Po poprawnym wywołaniu tych komend każdy produkt będzie posiadał pola do kastomizacji 🙂 Niezależnie ile produktów liczy Twój sklep.

Jeśli zależy Ci na tylko 1 typie pola (np. chcesz mieć tylko pole tesktowe) odpowiednio zmodyfikuj w/w komendy albo użyj CSS do ukrycia określonego typu pola.

Powodzenia!

grafika: alphacoders.com

  1. a gdzie zwiększyć ilość znaków dodawanych przez klienta w polu tekstowym np. chcemy sprzedawać publikacje artykułów na blogu przez sklep i klient przy zamówieniu by wklejał trećć jaka ma zostać opublikowana na stronie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Jak dodać popup na sklepie, który będzie widoczny tylko 1…