/ Плагины / Экспорт товаров YML

Экспорт товаров YML

27.01.2019

670

Самый адекватный и стабильный плагин для формирования файла YML — Market Exporter (1000 установок). Но приходится довольствоваться настройками по-умолчанию, т.к. при сохранении настроек происходит ошибка. Плагин выгружает только товары в наличии, что продиктовано условиями ЯндексМаркета, но это можно изменить.

Выгружаем все файлы, даже которых нет в наличии

Данные решения относятся к версии плагина 1.0.5. Не уверен что в более поздней версии это не изменено. Пользуюсь данной версией, т.к. на некоторых проектах она работает более стабильно.

Изменяем в файле плагина market-exporter/admin/class-market-exporter-wc.php

'value' => 'instock', на 'value' => array( 'instock','outofstock' ), 

Товары со статусом на Маркете «Под заказ»

За этот статус отвечает параметр available, который принимает значения true или false (под заказ).

Делаем вышеупомянутое изменение и также изменяем эту строку в выводе Support for backorders.

Товарам которые должны быть под заказ — делаем статус наличия — Нет в наличие. Статус backorder — будет делать их в наличие.

Выборка категорий

В последней версии плагина появилась возможность выгружать выборочные категории. Для этого во вкладке Настройки в поле Включать следующие категории нужно выбрать необходимые категории. Важный момент: если мы хотим загрузить всю категорию с подкатегориями, то нужно включать каждую подкатегорию в выборку. Если этого не сделать товары из всех подкатегорий выгрузятся, но информации о их категории не будет и Яндекс Маркет посчитает это ошибкой.

Параметр sales_notes для каждого товара

У Market Exporter есть общий параметр sales_notes (заполняется в настройках), но можно настроить и динамически для каждого товара. Нужно создать поле с названием me_sales_notes и заполнять его там где требуется. У товаров с незаполненным me_sales_notes будет подставляться общий sales_notes.

Готовое поле:

add_action( 'woocommerce_product_options_general_product_data', 'woo_add_sales_notes_fields' );
function woo_add_sales_notes_fields() {
	global $woocommerce, $post;
	echo '<div class="options_group">'; 
	woocommerce_wp_text_input( // Add Text field in woocommerce 
		array( 
			'id' => 'me_sales_notes', 
			'label' => __( 'Инфа для Яндекс Маркет', 'woocommerce' ), 
			'placeholder' => 'sales_notes', 
			'desc_tip' => 'true', 
			'description' => __( 'Введите текст', 'woocommerce' ) 
		) 
	); 
	echo '</div>';
}

add_action( 'woocommerce_process_product_meta', 'woo_add_sales_notes_fields_save' );
function woo_add_sales_notes_fields_save( $post_id ){
	$woocommerce_text_field = $_POST['me_sales_notes']; // Text Field
	if( !empty( $woocommerce_text_field ) )
	update_post_meta( $post_id, 'me_sales_notes', esc_attr( $woocommerce_text_field ) );
}

Если плагин Market Exporter не обновляет фид по расписанию — это может быть связано с блокировкой редактирования php-файлов админки

YML for Yandex Market

Недавно обнаружил этот плагин (1000 установок), и просто просмотрев настройки хочу сказать что плагин достойный. Есть все необходимые функции по генерации YML фида. Плагин активно поддерживается.

Vendor из произвольной таксономии

По умолчанию параметр vendor должен браться из назначенного атрибута. Изменим это на термин произвольной таксономии. Например, если на сайте установлен плагин Perfect WooCommerce Brands.

Необходимо изменить в файле market-exporter/includes/class-generator.php (строка 467)

// Vendor.
if ( isset( $this->settings['offer']['vendor'] ) && 'disabled' !== $this->settings['offer']['vendor'] ) {
	$vendor = $product->get_attribute( 'pa_' . $this->settings['offer']['vendor'] );
	if ( $vendor ) {
		$yml .= $this->add_child( 'vendor', wp_strip_all_tags( $vendor ) );
	}
}

на

// Vendor (из таксономии pwb-brand)
if ( isset( $this->settings['offer']['vendor'] ) && 'disabled' !== $this->settings['offer']['vendor'] ) {
	$vendor = wp_get_object_terms($product->get_id(), 'pwb-brand');
	$vendor_first = reset($vendor);
	
	if ( $vendor_first ) {
		$yml .= $this->add_child( 'vendor', $vendor_first->name );
	}
}

pwb-brand — произвольная таксономия

$vendor_first = reset($vendor); — чтобы получить первый элемент

При обновлении плагина Market Exporter, данное изменение сотрется.

Поделится информацией с друзьями

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Экспорт товаров YML
Присвоение меток чекбоксами
Рекомендации для васПрисвоение меток чекбоксамиOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.