Katalog produktów WordPress – kilka rozwiązań

Web Design Blog

Kategoria:
Programowanie

Data publikacji:
19 listopada 2019

Autor:
Paweł Mansfeld

Katalog produktów WordPress – kilka rozwiązań

Katalog produktów to zaraz po blogu jedna z najczęstszych funkcjonalności jaką można znaleźć na stronach internetowych. Klienci często określają to jako „sklep bez możliwości zakupu i zapłaty”. Po co tworzymy katalog produktów?

Katalogi produktów są przydatnym rozwiązaniem w przypadku sklepów stacjonarnych lub sprzedaży produktów, których sprzedaż online byłaby z jakichś powodów problematyczna. Możliwość zaprezentowania asortymentu na stronie może ściągać ruch, zapytania i zamówienia i faktycznie od sklepu internetowego takie katalogi różnią się tylko tym, że nie ma przycisków „dodaj do koszyka” i zapłać:

Elastyczność WordPressa oraz zaawansowane funkcje samego mechanizmu postów pozwala nam wykonać taki katalog na wiele sposobów. W tym artykule pokażę jak w prosty sposób można podejść do tworzenia i programowania katalogu produktów w systemie WordPress.

Metoda 1: Posty lub kategoria postów (łatwa)

Jedną z najprostszych metod na stworzenie katalogu produktów w WordPressie jest zaprzęgnięcie do tego zwykłego mechanizmu postów. Dzięki kategorii i możliwości ich zagnieżdżania możemy tworzyć katalog i w dowolny sposób go organizować. Z filozoficznego punktu widzenia produkty są zwykłymi postami tylko pisanymi w inny sposób.

Takie posty można wykluczyć z postów, następnie dodać do menu link do nadrzędnej kategorii z wszystkimi produktami i wszystko mamy gotowe.

Dla zaawansowanych:

Jeżeli chcemy wtedy stworzyć osobną podstronę, która wygląda całkiem inaczej od listy „zwykłych” postów wystarczy stworzyć osobny szablon strony:

/*
Template Name: Katalog produktów
*/

Pętlę z produktami można wybrać za pomocą nadrzędnej kategorii, załóżmy, że ma numer porządkowy 32:

<?php
global $post;
$args = array('posts_per_page'=>64, 'category'=> 32);
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>

//Kod miniaturki produktu

<?php endforeach;
wp_reset_postdata();?>

Jeżeli chcemy odróżnić wygląd poszczególnych produktów od pozostałych postów należy stworzyć osobny szablon postu:

/*
*Template Name: Pojedynczy produkt
*Template Post Type: post
*/

Czytaj więcej w artykule: tworzenie szablonów WordPress.

Takie produkty mogą mieć własne ceny, atrybuty i inne cechy, które można wykorzystać do zwiększenia komfortu zarządzania takim katalogiem lub zwiększenia możliwości organizowania i ich sortowania.

Jeżeli na stronie nie będzie innych rodzajów postów np. bloga, można wtedy zrezygnować z nadrzędnej kategorii a napis „Wpisy” zmienić w panelu administratora na „Produkty” za pomocą następującej linii w functions.php:

 function custom_labels() {
global $menu;
global $submenu;
$menu[5][0] = 'Katalog ELMAL';
$submenu['edit.php'][5][0] = 'Produkty';
$submenu['edit.php'][10][0] = 'Dodaj produkt';
$submenu['edit.php'][15][0] = 'Kategorie';
echo '';
}
add_action( 'admin_menu', ' custom_labels ' );

Zaletą tej techniki jest prostota. Praktycznie każdy może dodawać produkty tak jak zwykłe wpisy a w produktach można używać tagów kategorii i pól niestandardowych.

Wadą tej techniki jest to, że produkty będą „wymieszane” z postami innego typu. Zarządzanie blogiem i produktami może być po jakimś czasie mało wygodne. Zarówno przy blogu i jak i katalogu produktów, trzeba uważać i pilnować kategorii aby strona miała „ręce i nogi”. Im bardziej chcemy oddzielić produkty od zwykłych postów, tym więcej pracy

Metoda 2: Oddzielny typ postu (zalecana)

Twórcy WordPressa przewidzieli, że oprócz artykułów blogowych, programistom i właścicielom stron WordPress przyda się inny rodzaj postów niebędących zarówno postami jak i poszczególnymi podstronami. Dzięki mechanizmowi Post Type można stworzyć własny typ postu i może to być typ „Produkty”.

function create_catalog() {
 register_post_type('Produkty',
array(
   'labels' => array(
    'name' => ('Produkty'),    'singular_name' => ('Produkt')
   ),
   'public' => true,
   'has_archive' => false,
   'rewrite' => array('slug' => 'produkty'),
  ) ); }
add_action('init', 'create_catalog');

O tym, że jest to idealne rozwiązanie dla katalogu produktów możemy przeczytać w samej dokumentacji WordPressa. Takie rozwiązanie na poziomie samej logiki tego CMSa porządkuje obiekty wpisów i produktów dając nam jednocześnie kontrolę nad dodawaniem do UI takiego katalogu:

  • własnych lub wbudowanych taksonomii (takich jak tagów czy kategorii),
  • obrazka wyróżniającego,
  • dodatkowych cech (które realizujemy za pomocą pól niestandardowych lub wtyczek).

Dodatkowo, produkty są wyświetlane w osobnej pozycji w menu co wygląda profesjonalnie i pozwala na wygodniejsze aktualizacje katalogu. Bez jakichkolwiek zakłóceń można prowadzić bloga i tworzyć poszczególne podstrony.

Zaletą tego rozwiązania jest przede wszystkim elastyczność. Kontrola nad UI poszczególnego produktu i możliwość wprowadzania własnych udoskonaleń i opcji dodatkowych. Jako, że mechanizm postów własnych typów został stworzony właśnie do takich przypadków, witryna będzie działała szybko i nie będziemy musieli dokonywać dodatkowych optymalizacji.

Wadą tej techniki jest to, że w przypadku kiedy zdecydujemy się na uruchomienie sprzedaży online, nie będziemy mogli w prosty sposób przenieść katalogu produktów do WooCommerce a tworzenie własnego systemu sklepowego może wymagać sporo dodatkowej pracy. Mechanizm Post Type nie udostępnia nam skorzystania w prosty sposób z natywnej funkcji pól niestandardowych. Musimy skorzystać wówczas z ACF lub sami je oprogramować.

Metoda 3: WooCommerce (planowane włączenie sklepu)

Niektórzy wpadają na pomysł wykorzystania wtyczki WooCommerce. Tak jak wspomniałem, katalog nie ma dawać możliwości zakupu ani płatności. W przypadku WooCommerce sama funkcjonalność katalogu produktów to ok. 10% kodu, pozostałe 90% kodu odpowiada za funkcje typowo sklepowe. Dlatego zastosowanie wtyczki WooCommerce do stworzenia samego katalogu produktów nie jest optymalne z kilku powodów.

  • tworzenie własnych szablonów zintegrowanych z WooCommerce jest nieco trudniejsze,
  • Za katalogiem produktów w WooCommerce, kryje się sporego rozmiaru logika, która niepotrzebnie będzie komplikować dostosowanie katalogu do własnych potrzeb,
  • WooCommerce dodaje do front-endu WordPressa własne style CSS i JS, które będą spowalniać stronę lub będziemy musieli zajmować się ich usuwaniem bądź optymalizacją,
  • WooCommerce będzie wymagał konfiguracji i aktualizacji wtyczki, możliwości których i tak nie będziemy wykorzystywać.

Technika ta ma jedną zaletę – w przypadku kiedy zdecydujemy się na sprzedaż online wystarczy włączyć sprzedaż za pomocą jednego kliknięcia.

Lista wad tego rozwiązania w porównaniu do dwóch poprzednich technik zdaje się nie mieć końca (w przypadku kiedy wiemy, że sprzedaż nigdy nie będzie nam potrzebna).

Podsumowanie

Katalog produktów WordPress można zrealizować na wiele sposobów. Początkujący użytkownicy WordPressa mogą wykorzystać pierwszą metodę, która nie wymaga rozwiązywania poważnych problemów ani nie jest trudna do zastosowania. Zaawansowani twórcy stron WordPress będą się skłaniać do drugiej metody. Metoda da daje komfort personelowi odpowiedzialnemu za aktualizację treści a funkcjonalność katalogu można w prosty (dla programistów) sposób dostosowywać do własnych potrzeb. Tylko w przypadku kiedy planujemy w niedalekiej przyszłości uruchomić sprzedaż online – do rozważenia pozostaje trzecia metoda – z wykorzystaniem wtyczki WooCommerce.

Źródła

https://codex.wordpress.org/Function_Reference/register_post_type

Katalog produktów WordPress – kilka rozwiązań Katalog produktów WordPress – kilka rozwiązań 4.6 na 5 na podstawie 5 ocen Katalog produktów WordPress – kilka rozwiązań