Data pro generování tagů je možné přidat nebo upravit stávající pomocí připraveného filtru:

apply_filters( 'wpify_woo_xml_feed_heureka_item_data', $data, $product, $parent_product );

Pomocí tohoto filtru můžete přidat jakýkoliv další tag feedu pomocí snippetu. Jaké tagy Heuréka podporuje naleznete ve Specifikaci XML souboru Heuréky. Nebo upravit stávající tagy.

Zde je několik příkladů:

Propisovat do <DESCRIPTION> krátký popis produktu namísto dlouhého

/**
 * @param $data
 * @param \WC_Product $product
 * @param $parent_product
 *
 * @return array
 */
function custom_xml_feed_heureka_item_data( $data, $product, $parent_product ): array
{

  if ($product->get_short_description()) {
    $data['DESCRIPTION'] = array( '_cdata' => $product->get_short_description() );
  } else if ($parent_product->get_short_description()) {
        $data['DESCRIPTION'] = array( '_cdata' => $parent_product->get_short_description() );
  }

  return $data;
}

add_filter( 'wpify_woo_xml_feed_heureka_item_data', 'custom_xml_feed_heureka_item_data', 10, 3 );

Přidání tagu <MANUFACTURER> z vlastnosti produktu

/**
 * @param $data
 * @param \WC_Product $product
 *
 * @return array
 */
function custom_xml_feed_heureka_item_data( $data, $product ): array
{
    $vyrobce = $product->get_attribute( 'vyrobce' ); // identifikátor vlastnosti upravte tak jak ji máte na vašem eshopu 

    if ( $vyrobce ) {
        $data['MANUFACTURER'] = array( '_cdata' => $vyrobce );
    }

    return $data;
}

add_filter( 'wpify_woo_xml_feed_heureka_item_data', 'custom_xml_feed_heureka_item_data', 10, 2 );

Doprava zdarma pro produkty od určité ceny

V tomto konkrétním případě je nastaveno, že u produktů s vyšší cenou než 1500 bude dopravní metoda Zásilkovna za 0 a v případě dobírky bude cena dopravy 30.

/**
 * @param $data
 * @param \WC_Product $product
 *
 * @return array
 */
function custom_xml_feed_heureka_item_data( $data, $product ): array
{
    if ( $product->get_price() > 1500 ) { // Je-li cena produktu vyšší než daná hodnota
        foreach ( $data as $key => $item ) {
            if (strpos($key, '__custom:DELIVERY') !== false && $item['DELIVERY_ID'] === 'ZASILKOVNA') { 
                $data[$key]['DELIVERY_PRICE'] = 0;
                $data[$key]['DELIVERY_PRICE_COD'] = 30;
            }
        }
    }
    return $data;
}

add_filter( 'wpify_woo_xml_feed_heureka_item_data', 'custom_xml_feed_heureka_item_data', 10, 2 );

Pokud chcete nastavit dopravu pro jinou dopravní metodu upravte identifikátor ZASILKOVNA na požadovanou metodu. Identifikátor dopravy naleznete v nastavení doprav pro XML feed (WooCommerce > Nastavení > Wpify Woo > XML Feed Heureka)

Přidání tagu <IMGURL_ALTERNATIVE> s obrázky z galerie

Tento snippet vytvoří pro každý obrázek z galerie produktu vlastní nový tag <IMGURL_ALTERNATIVE>.

/**
 * @param             $data
 * @param \WC_Product $product
 *
 * @return array
 */
function custom_xml_feed_heureka_item_data( $data, $product ): array {
	$attachment_ids = $product->get_gallery_image_ids();

	if ( $attachment_ids ) {
		foreach ( $attachment_ids as $attachment_id ) {
			$data[ '__custom:IMGURL_ALTERNATIVE:' . rand() ] = array( '_cdata' => wp_get_attachment_url( $attachment_id ) );
		}
	}

	return $data;
}

add_filter( 'wpify_woo_xml_feed_heureka_item_data', 'custom_xml_feed_heureka_item_data', 10, 2 );