Ako rýchlejšie nájsť produkt vo vašom sklade eshopu? (WooCommerce PRO tip)
Pridajte si k produktom aj ich umiestnenie v sklade, napr.: [regál]-[polica]-[pozícia]. Ponúkam návod ako si bez ďalších pluginov pridáte do vášho WooCommerce informáciu o pozícií produktu v sklade.
Aj vám sa už stalo, že ste blúdili vo vašom sklade a hľadali ste produkt, ktorý si zákazník objednal? Skoncujte s nekonečným hľadaním. Pridajte si ku každému produktu vo WooCommerce aj konkrétnu pozíciu v sklade.
Mám XY produktov a všetky vyzerajú rovnako. Sú umiestnené v priehľadných krabiciach, na ktorých je napísaný názov produktu. Bohužiaľ to však nestačí, keďže sú produkty veľmi podobné.
Zišiel by sa mi systém typu: [regál]-[polica]-[pozícia]. Napr. 1-A-8 a vedela by som rýchlejšie nájsť správnu krabicu a teda aj produkt.
Potrebujem LEN textové políčko, ktoré budem mať na detaile produktu, v zozname produktov, v objednávke a na faktúre. Nepotrebujem za tým žiadnu extra logiku.
Nenávidím, keď ľudia inštalujú pluginy, aby pridali pár riadkovú funkcionalitu do eshopu. Preto je celé moje riešenie poskladané z PHP kódu vo functions.php. Nie je použitý žiaden plugin.
V prvom kroku vytvoríme niečo, čo sa volá „custom field“.
Začneme tým, že upravíte nejaký produkt. Úplne hore vpravo kliknite na „Možnosti zobrazenia“ a uistite sa, že máte zaškrtnuté „Vlastné polia„.

V nastaveniach pre Vlastné polia kliknite pod „Pridať nové vlastné pole:“ na odkaz „Pridať nové pole“ nad tlačidlom. Nezamotajte sa prosím. Kuknite screenshot. ;)

Do stĺpca Názov zadajte názov tohto políčka. Nepoužívajte diakritiku, veľké písmená, ani medzery. Predstavte si, že je to slug. Ja som si ten môj nazvala „location_in_warehouse“. Do druhého stĺpca si dajte hodnotu. Tá vaša hodnota poľa môže byť pokojne aj „u Jožka v skrini“.

Následne kliknite na tlačidlo „Pridať vlastné pole“.

A vaša hodnota sa uloží. Nezabudnite aktualizovať produkt.
Teraz to začne byť zaujímavé. Ideme v administrácii do Vzhľad – Editor tém.
Hore vpravo vyberte tému, ktorú máte momentálne aktívnu. Ak máte aktívnu child tému, vyberte child tému.
Vpravo pod Súbory témy nájdite a rozkliknite súbor functions.php. Na koniec súboru, pred znakom ?>, pridajte nasledovný kód:
add_filter('manage_edit-product_columns', 'my_columns_into_product_list');function my_columns_into_product_list($defaults) { $defaults['location_in_warehouse'] = 'Kde v prdeli to je?'; return $defaults;}add_action( 'manage_product_posts_custom_column' , 'my_custom_column_into_product_list', 10, 2 );function my_custom_column_into_product_list($column, $post_id ){ switch ( $column ) { case 'location_in_warehouse': echo get_post_meta( $post_id , 'location_in_warehouse' , true ); break; }}Nezabudnite si location_in_warehouse zameniť za to, čo ste si vy zvolili ako názov poľa. Kde v prdeli to je? je zase meno stĺpca. Zmeny uložte a môžete sa ísť pozrieť do zoznamu vašich produktov. Tadááá.

Ostaneme vo functions.php a pridáme kód:
add_action( 'woocommerce_before_order_itemmeta', 'add_admin_order_item_custom_fields', 10, 2 );function add_admin_order_item_custom_fields( $item_id, $item ) { // Targeting line items type only if( $item->get_type() !== 'line_item' ) return;
$product = $item-> get_product(); $value1 = $product->get_meta('location_in_warehouse');
if ( ! empty($value1) ) { echo '<table cellspacing="0" class="display_meta">';
if ( ! empty($value1) ) { echo '<tr><th>' . __("Pozícia v sklade", "woocommerce") . ':</th><td>' . $value1 . '</td></tr>'; }
echo '</table>'; }}Opäť si nezabudnite zmeniť location_in_warehouse za to, čo ste si vy zvolili ako názov poľa. Zmeny uložte. Odteraz budete vidieť vami zadanú pozíciu aj na detaile objednávky.

Postup a kód v tomto kroku platí len pre plugin WooCommerce PDF Invoices, ktorý používam na generovanie faktúr.
V prvom rade som si musela vytvoriť vlastný template pre faktúru. T.j. cez FTP som prekopírovala obsah priečinka plugins/woocommerce-pdf-invoices/includes/templates/invoice/simple do priečinku uploads/woocommerce-pdf-invoices/templates/invoice/simple.
Keďže používam šablónu micro, upravovala som súbor uploads/woocommerce-pdf-invoices/templates/invoice/simple/micro/body.php a to nasledovne:
Hneď na 4. riadku som upravila počet stĺpcov:
$columns_count = 5;Za riadok 58, kde končí kód pre stĺpec SKU, som pridala 2 riadky, ktoré hovoria o mojom novom stĺpci Sklad.
{/* SKU */}<?php if ( $this->template_options['bewpi_show_sku'] ) { ?><?php $columns_count++; ?><th class="align-left"><?php _e( 'SKU', 'woocommerce-pdf-invoices' ); ?></th><?php } ?>{/* Warehouse */}<th class="align-left"><?php _e( 'Sklad', 'woocommerce-pdf-invoices' ); ?></th>{/* Cost */}<th class="align-left"><?php _e( 'Cost', 'woocommerce-pdf-invoices' ); ?></th>A ešte treba do toho stĺpca dať aj hodnotu, takže za hodnotu SKU som pridala môj sklad:
<?php if ( $this->template_options['bewpi_show_sku'] ) { ?> <td><?php echo ( $product && $product->get_sku() ) ? $product->get_sku() : '-'; ?></td><?php } ?><td> <?php if ($product->get_meta('location_in_warehouse')){ echo $product->get_meta('location_in_warehouse'); }?></td>Opäť nezabúdame, že si treba zmeniť location_in_warehouse za to, čo ste si vy zvolili ako názov poľa.
A výsledkom je nový stĺpec na faktúre :)
