Новости Joomla

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

0 Пользователей и 1 Гость просматривают эту тему.
  • 690 Ответов
  • 172748 Просмотров
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
как вывести типы товаров в Яндекс маркет?
Помогите оч надо :(
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Satool

  • Захожу иногда
  • 139
  • 2 / 0
как вывести типы товаров в Яндекс маркет?
Помогите оч надо :(

Вот где храниться тип товара - jos_vm_product_type
*

wounderer

  • Захожу иногда
  • 80
  • 3 / 0
Рабочая версия выгрузки для Яндекс-маркет в аттаче
В конфиге естественно внести свои данные, запускать из админки, предварительно вывести ссылку на xml/index.php


[вложение удалено Администратором]
*

pcom

  • Новичок
  • 6
  • 0 / 0
2 wounderer
Спасибо!
У меня очень глупый, как запустить скрипт из админки ?
*

wounderer

  • Захожу иногда
  • 80
  • 3 / 0
во первых немного обманул, и файл XML генерить через index_old.php

Запустить из админки - достаточно ссылку вставить в VirtueMart себе для примера..

А вообще там немного спецификация устаревшая оказалась, как сейчас поглядел. shops.dtd нужно обновить
*

victoribr

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Попробовал последнюю версию файла, все заработало, но что-то товары дублируются, причем во втором дубле идет цена отличная от первой. Проверил данные, вторая цена правильно указана, а первая ниже, не пойму от куда она берется. Я уже устанавливал похожий скрипт, там была проблема таже, выводился товар в единичном варианте, но цена то была правильной, то была немного ниже. От куда она вылазит, не могу понять!! Помогите, может кто поможет. Вот код последней версии, где дублируется товар:
Код
<?php
$domen_url = $_SERVER['HTTP_HOST'];
$url_poisk = "http://".$domen_url."/administrator/index.php";
if (strstr($_SERVER['HTTP_REFERER'], $url_poisk) == false )
  {
    echo "У Вас нет доступа. Выполните это действие через админку сайта!";
    die;
  }


include "../configuration.php";
include "config.php";

$handle = fopen("xml.xml", "w+");
$date=date("Y-m-d H:i");

$text = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>
<!DOCTYPE yml_catalog SYSTEM \"shops.dtd\">
<yml_catalog date=\"$date\">
<shop>
<name>Дорвин Екатеринбург</name>
<company>Дорвин</company>
<url>http://dorvin.ru</url>
<currencies>
<currency id=\"RUR\" />
</currencies>";
 
 
$text .= "<categories>";

$mysql_query_category = mysql_query("SELECT category_id, category_name FROM jos_vm_category" );
while($array_query_category = mysql_fetch_array($mysql_query_category))   
    {
  $category_id = $array_query_category['category_id'];
  $category_name = htmlspecialchars( $array_query_category['category_name'] );
  $text .= "<category id='$category_id'>$category_name</category>";
  $category_id_massiv[] = $array_query_category['category_id'];
  }
$text .= "</categories>";
   
  $text .= "<offers>";
  foreach ($category_id_massiv AS $category_id)
    {
      $mysql_query_product = mysql_query("SELECT
      jos_vm_product_category_xref.product_id,       
      jos_vm_product.product_id,
      product_name,
      product_s_desc,
  product_in_stock,
      product_thumb_image,
      product_s_desc
      FROM jos_vm_product, jos_vm_product_category_xref
      WHERE jos_vm_product_category_xref.product_id=jos_vm_product.product_id
      AND product_publish='Y'
        AND
      jos_vm_product_category_xref.category_id='$category_id' " );
     
      while ($array_query_product = mysql_fetch_array($mysql_query_product))
        {         
         $product_id   = $array_query_product['product_id'];
         $product_name = htmlspecialchars($array_query_product['product_name']);
         $picture      = $array_query_product['product_thumb_image'];
         $description  = htmlspecialchars($array_query_product['product_s_desc']);
           
          $mysql_query_price = mysql_query ("SELECT product_price FROM jos_vm_product_price
           WHERE product_id='$product_id'");
          while ($array_query_price = mysql_fetch_array($mysql_query_price))
          {
 
          $product_in_stock  = htmlspecialchars($array_query_product['product_in_stock']);
  if($product_in_stock == 0) { $aviable = 'false'; }
  else { $aviable = 'true'; }
         $text .= "<offer id='".$product_id."' available='".$aviable."'>";   
    $url_f = htmlspecialchars("http://$domen_url/index.php?page=shop.product_details&option=com_virtuemart&flypage=shop.flypage&product_id=$product_id&category_id=$category_id");
   
         $text.="<url>".$url_f."</url>\n";               
         $text .= "<price>". ceil ($array_query_price['product_price'])."</price>\n";           
         $text .= "<currencyId>RUR</currencyId>\n";
         $text .= "<categoryId>$category_id</categoryId>\n";
         $text .= "<picture>http://".$domen_url."/components/com_virtuemart/shop_image/product/$picture</picture>\n";
         $text .= "<store>true</store>\n"; 
         $text .= "<pickup>true</pickup>\n"; 
         $text .= "<name>$product_name</name>\n"; 
         $text .= "<description>$description</description>\n";
         $text .= "<manufacturer_warranty>true</manufacturer_warranty>\n";
         $text .= "</offer>\n";
$xmltext .= "\n";
         }
           
        }
       
    }
 
 
  $text.="</offers></shop></yml_catalog>";
   
  $fwrite_pro = fwrite ($handle, $text);
  fclose ($handle);
 
  if ($fwrite_pro)
  echo "YAndex.Market файл успешно создан";
  else echo "Произошла ошибка, попробуйте обновить данную страницу";

?>

ВОт кусочек кода XML:
Код
<offer id='33' available='true'><url>http://dorvin.ru/index.php?page=shop.product_details&amp;option=com_virtuemart&amp;flypage=shop.flypage&amp;product_id=33&amp;category_id=7</url>
<price>13100</price>
<currencyId>RUR</currencyId>
<categoryId>7</categoryId>
<picture>http://dorvin.ru/components/com_virtuemart/shop_image/product/resized/_________________4b69824201ee9_200x200.jpg</picture>
<store>true</store>
<pickup>true</pickup>
<name>Стальная дверь Форпост SM 01/2</name>
<description>Двухстворчатая стальная дверь. Порошковое покрытие, возможна установка на улицу, цвет медный антик, толщина 67мм, 1 замок.</description>
<manufacturer_warranty>true</manufacturer_warranty>
</offer>
<offer id='33' available='true'><url>http://dorvin.ru/index.php?page=shop.product_details&amp;option=com_virtuemart&amp;flypage=shop.flypage&amp;product_id=33&amp;category_id=7</url>
<price>13300</price>
<currencyId>RUR</currencyId>
<categoryId>7</categoryId>
<picture>http://dorvin.ru/components/com_virtuemart/shop_image/product/resized/_________________4b69824201ee9_200x200.jpg</picture>
<store>true</store>
<pickup>true</pickup>
<name>Стальная дверь Форпост SM 01/2</name>
<description>Двухстворчатая стальная дверь. Порошковое покрытие, возможна установка на улицу, цвет медный антик, толщина 67мм, 1 замок.</description>
<manufacturer_warranty>true</manufacturer_warranty>
</offer>
*

victoribr

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Нашел причину, просто в таблице с ценами почему-то было по две строки на товар, удалил дубли и все стало нормально
У меня возникла другая проблема, как добавить производителя в данном скрипте, все перепробовал, не могу понять как сделать запрос в базу данных.
http://dorvin.ru/yamarket/03.05.2011.rar
*

johnl

  • Новичок
  • 3
  • 0 / 0
Привет всем перечитал все 21 страницы перепробовал все варианты везде при загрузке на Яндекс выходили ошибки. на последнюю
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: An exception occurred! Type:UTFDataFormatException, Message:invalid byte 2 (а) of a 2-byte sequence. (строка 1, столбец 1)
до этого
Определена кодировка: windows-1251 (строка 0, столбец 0)
Дата из файла: 2011-05-08 20:46 (строка 3, столбец 127)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Expected entity name for reference (строка 3567, столбец 16)
хотя страница с номенклатурой генерируется хотел попробовать обработку для 1с которая была выложена но ссылка на нее устарела и скачать ее не получилось помогите кто может
вот код
<?php
//***********************************************************
//
// Версия коннектора к Yandex.Market от 18.04.2009
// автор доработок Саид Дашук (dashuk@ngs.ru)
//
// Доработки:
// 1. Подключение к настройкам Joomla (теперь не надо прописывать реквизиты доступа к БД,
//         а достаточно указать конфигурационный файл 'configuration.php')
// 2. Добавлены комментарии для новичков
// 3. ВЫБОРКА ВСЕХ ТОВАРОВ ПРОИСХОДИТ ОДНИМ ЗАПРОСОМ!
// 4. Добавлен шаблон для описания товара (тег <description>)
// 5. Rурсы валют, приравнены к курсу ЦБРФ
// 6. Добавленны теги "доставка" и "производитель" (просто мне они нужны, а Вы решайте сами)
// а также: форматирование для удобства кода и вывода и еще что то по мелочам.
//
// Проверялось на Joomla! 1.5.9 Production/Stable / VirtueMart 1.1.2 stable
//
//***********************************************************


// Пропишите относительный путь к 'configuration.php' (он находится в корне Joomla)
// Например: include '../configuration.php';
include 'configuration.php';
$cfg = new JConfig();

//NAME - Короткое название магазина (название, которое выводится в списке найденных на Яндекс.Маркете товаров.
//Не должно содержать более 20 символов). Нельзя использовать слова, не имеющие отношения к
//наименованию магазина ("лучший", "дешевый"), указывать номер телефона и т.п. Название магазина,
//должно совпадать с фактическим названием магазина, которое публикуется на сайте. При несоблюдении
//данного требования наименование может быть изменено Яндексом самостоятельно без уведомления Клиента.
$cfg_name = $cfg->fromname;

//Полное наименование компании, владеющей магазином. Не публикуется, используется для внутренней идентификации.
$cfg_company = $cfg->sitename;

//URL-адрес главной страницы магазина
$cfg_url = 'komppom.ru';

// Шаблон для описания товара
// Вместо {product_name} - будет вставлено наименование товара
// Вместо {product_desc} - будет вставлено краткое описание
// ПРИМЕР:
// $description_template = '{product_name} от производителя';
$description_template = '{product_desc}';

// Ставка за клик (в центах)
$bid = '11';


$hostname             = $cfg->host;
$username             = $cfg->user;
$password             = $cfg->password;
$dbName             = $cfg->db;
$category             = $cfg->dbprefix."vm_category";
$category_xref          = $cfg->dbprefix."vm_category_xref";
$userstable          = $cfg->dbprefix."vm_product";
$pricetable          = $cfg->dbprefix."vm_product_price";
$product_category_xref    = $cfg->dbprefix."vm_product_category_xref";

mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die(mysql_error());

// Исправтье, если у вас другая кодировка в БД
mysql_query('set names cp1251');

echo"<?xml version='1.0' encoding='windows-1251'?>\n";
echo"<!DOCTYPE yml_catalog SYSTEM \"shops.dtd\">\n";
echo"<yml_catalog date=\"";
echo date('Y-m-d H:i');
echo"\">\n";
echo"<shop>\n";
echo"<name>Компьютерная помощь</name>\n";
echo"<company>ИП Стрельцов О. А.</company>\n";
echo"<url>$cfg_url</url>\n";

// курсы валют, приравнены к курсу ЦБРФ
echo"<currencies>\n";
echo"<currency  id=\"RUR\" rate=\"1\"/>\n";
echo"<currency  id=\"USD\" rate=\"CBRF\"/>\n";
echo"<currency  id=\"EUR\" rate=\"CBRF\"/>\n";
echo"</currencies>\n";

// Секция категорий
echo"<categories>\n";
$query_cat = "SELECT * FROM $category_xref";
$res_cat = mysql_query($query_cat) or die(mysql_error());
$rw=1;
while ($row_cat=mysql_fetch_array($res_cat)) {
   $cat_parent_id=$row_cat['category_parent_id'];
   $cat_child_id=$row_cat['category_child_id'];
   $query2 = "SELECT category_name FROM $category WHERE category_id=".$row_cat['category_child_id'];
   $res_cat1 = mysql_query($query2) or die(mysql_error());
   $name_cat=mysql_fetch_array($res_cat1);
   $cat_name=$name_cat['category_name'];
   if ($cat_parent_id==0) {
      echo"<category id=\"".$cat_child_id."\">".$cat_name."</category>\n";
   }
   else {
      echo"<category id=\"".$cat_child_id."\" parentId=\"".$cat_parent_id."\">".$cat_name."</category>\n";
   }
   $rw++;
}
echo"</categories>\n";

// Секция описания товаров
echo"<offers>\n";

$tb_product             = $cfg->dbprefix."vm_product";
$tb_manufacturer         = $cfg->dbprefix."vm_manufacturer";
$tb_product_mf_xref       = $cfg->dbprefix."vm_product_mf_xref";
$tb_category            = $cfg->dbprefix."vm_category";
$tb_product_category_xref   = $cfg->dbprefix."vm_product_category_xref";
$tb_price               = $cfg->dbprefix."vm_product_price";

$query = "
SELECT
   $tb_product.product_id,
   $tb_product.product_name,
   $tb_manufacturer.mf_name,
   $tb_manufacturer.manufacturer_id,
   $tb_category.category_name,
   $tb_category.category_id,
   $tb_product_category_xref.category_id,
   $tb_price.product_price,
   $tb_product.product_sku,
   $tb_product.product_in_stock,
   $tb_product.product_unit,
   $tb_product.product_full_image,
   $tb_product.product_s_desc,
   $tb_product.product_weight
FROM
   ($tb_product_category_xref
RIGHT JOIN ($tb_price
RIGHT JOIN (($tb_product_mf_xref
RIGHT JOIN $tb_product
ON $tb_product_mf_xref.product_id = $tb_product.product_id)
LEFT JOIN $tb_manufacturer
ON $tb_product_mf_xref.manufacturer_id = $tb_manufacturer.manufacturer_id)
ON $tb_price.product_id = $tb_product.product_id)
ON $tb_product_category_xref.product_id = $tb_product.product_id)
LEFT JOIN $tb_category
ON $tb_product_category_xref.category_id = $tb_category.category_id
WHERE $tb_product.product_publish='Y'
";

$row = d2a($query);
$product_log = Array();
for($i=0;$i<count($row);$i++) {
   if (!in_array($row[$i]['product_id'],$product_log) AND ($row[$i]['product_price'])) {
      $product_log[] = $row[$i]['product_id'];

$url="http://$cfg_url/index.php?page=shop.product_details&amp;flypage=shop.flypage&amp;option=com_virtuemart&amp;product_id=".$row[$i]['product_id'];
//$url="http://$cfg_url/client?page=shop.product_details&flypage=flypage-ask.tpl&product_id=".$row[$i]['product_id']."&category_id=".$row[$i]['category_id']."&manufacturer_id=".$row[$i]['manufacturer_id'];


      $product_full_image = "http://$cfg_url/components/com_virtuemart/shop_image/product/".$row[$i]['product_full_image'];
      $tags = Array ('{product_name}','{product_desc}');
      $repl = Array ($row[$i]['product_name'],$row[$i]['product_s_desc']);
      $product_price = substr($row[$i]['product_price'], 0, -3);
      $product_cat_id=$row[$i]['category_id'];
      echo"\n<offer id=\"".$row[$i]['product_id']."\" available=\"true\" bid=\"$bid\">\n";
      echo"<url>".$url."</url>\n";
      echo"<price>$product_price</price>\n";
      // Валюта в которой указаны Ваши цены
      echo"<currencyId>RUR</currencyId>\n";
      echo"<categoryId>".$product_cat_id."</categoryId>\n";
      echo"<picture>".$product_full_image ."</picture>\n";
      // Возможность доставки
      echo"<delivery>true</delivery> \n";
      echo"<name>".strip_tags($row[$i]['product_name'])."\"</name>\n";
      echo"<description>".strip_tags(str_replace($tags,$repl,$description_template))."</description>\n";
      echo"</offer>\n";
   }
}

echo"</offers>\n";
echo"</shop>\n";
echo"</yml_catalog>\n";

function d2a($query){
    $result = mysql_query($query) or die("Query failed : " . mysql_error());
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {$res[] = $line;}
    mysql_free_result($result);
    return $res;
}

?>
*

johnl

  • Новичок
  • 3
  • 0 / 0
Проошлую ошибку исправил теперь другая
Определена кодировка: windows-1251 (строка 0, столбец 0)
Дата из файла: 2011-05-09 00:30 (строка 3, столбец 127)
Ошибка: Invalid delivery value: The delivery must be false for offline only shop (строка 10115, столбец 10)
Ошибка: Предложение отклонено: http://komppom.ru/index.php?page=shop.product_details&flypage=shop.flypage&option=com_virtuemart&product_id=5705 (строка 158, столбец 9)
Ошибка: Invalid delivery value: The delivery must be false for offline only shop (строка 10115, столбец 10)
и так на каждую строку в файле где есть тег </offer>
Помогите
*

victoribr

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Скачай лучше этот вариант http://dorvin.ru/yamarket/03.05.2011.rar, там немного под себя доработай. Единственный минус, нет производителя, мне так никто и не хочет написать, как его добавить:(. А так очень хороший скрипт, Яндекс его принял с первого раза.
*

indigo

  • Захожу иногда
  • 71
  • 1 / 0
Этот скрипт работает для 1.1.7? и киньте ссылку откуда качать, пожалуйста.
*

dsd10

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Ошибка: Не указано название предложения (строка 36, столбец 9)
Ошибка: Предложение отклонено: http://******
------и так на каждой позиции--------
как с этим бороться?
*

victoribr

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Вы про какую версию
*

a_pesikov

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Копался, копался а версию с выводом цены с учетом скидок не нашел :(  Есть в природе такая?
*

jwb

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Пробовал вот этот скрипт http://dorvin.ru/yamarket/03.05.2011.rar, при этом создается файл в котором только название и сайт магазина, никакого описания товара нет. Как с этим бороться?
*

Master of Magic

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
Так же столкнулся с проблемой дублей, решение удаление группы покупателей (у меня почему то было две группы по умолчанию) и затем удаление товаров для этой "второй" группы.
Для тех у кого не работает или что-то глючит выкладываю свой скрипт. VM 1.1.7 Stable. Лично мне нужна была еще проверка наличия на складе, по этому добавил проверку product_in_stock, если товаров на складе 0 они не публикуются. Так же там есть поле вывода производителя.
Код
$row[$i]['mf_name']

dsd10
У вас скорей всего ошибка с типами описания, делайте теги именно так как написано:
http://help.yandex.ru/webmaster/?id=1111247
Цитировать
Упрощенное описание

Это базовый, наиболее простой тип описания. Другие типы описаний, специфичные для различных категорий товаров, приведены в разделе «Дополнительные типы описаний».
В упрощенном описании можно использовать только теги:

Цитировать
<offer id="12346" available="true">
    <url></url>
    <price></price>
    <currencyId></currencyId>
    <categoryId></categoryId>
    <picture></picture>
    <delivery></delivery>
    <local_delivery_cost></local_delivery_cost>
    <name></name>
    <vendor></vendor>
    <vendorCode></vendorCode>
    <description></description>
    <country_of_origin></country_of_origin>
</offer>
Все! Ни какие другие нельзя! Еще выяснил, что так же важен порядок тегов, то есть как они написаны в примере так и должны идти друг за другом.

ЗЫ еще нарыл, почему то в Яндекс помощи не нашел:
available="false" - товарное предложение на заказ.

Второй вариант во вложении с проверкой если на складе товар не равен нулю, то выводит:
<offer id="12346" available="true">
Если равен нулю:
<offer id="12346" available="false">
Оба скрипта проходят проверку в маркете.



[вложение удалено Администратором]
« Последнее редактирование: 03.06.2011, 22:50:04 от Master of Magic »
*

chipsed

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
ЗЫ еще нарыл, почему то в Яндекс помощи не нашел:
available="false" - товарное предложение на заказ.

Второй вариант во вложении с проверкой если на складе товар не равен нулю, то выводит:
<offer id="12346" available="true">
Если равен нулю:
<offer id="12346" available="false">
Оба скрипта проходят проверку в маркете.
А как сделать так что бы товар при скрытии или количестве 0 не подгружался в YML и не уходил на прилавок Яндекс маркета ?
А то уже 1 ошибку заработали...
Цитировать
В ходе проверок службы контроля качества, проводимых в отношении вашего магазина byphone24.ru, мы обнаружили следующую ошибку: 
Товар: Samsung GT-I9000 Galaxy S White" 
URL товара: http://byphone24.ru/index.php?page=shop.product_details&flypage=shop.flypage&option=com_virtuemart&product_id=60
Тип ошибки: 2174190 нет статуса "под заказ"
Выручайте пожалуйста  !
*

Master of Magic

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
Цитировать
А как сделать так что бы товар при скрытии или количестве 0 не подгружался в YML и не уходил на прилавок Яндекс маркета ?
А то уже 1 ошибку заработали...
Вообще-то, если товар не опубликован, то он в yml не выгружается.
Что-бы в зависимости от наличия товара на складе в карточке товара писалось - есть в наличии, под заказ в flypage я прописал:
Код
<?php if ($product_in_stock < 1 ) { ?> 
<?php echo $VM_LANG->_('PHPSHOP_ORDER_LIST_STATUS')?>: &nbsp;&nbsp;<?php echo $VM_LANG->_('PHPSHOP_NOSTOCK')?><br />
<?php } else { ?>
<?php echo $VM_LANG->_('PHPSHOP_ORDER_LIST_STATUS')?>: &nbsp;&nbsp;<?php echo $VM_LANG->_('PHPSHOP_YESSTOCK')?><br />
<?php } ?>
В файл /administrator/components/com_virtuemart/languages/common/russian.php добавил:
Код
	'PHPSHOP_YESSTOCK' => 'есть в наличии',
'PHPSHOP_NOSTOCK' => 'под заказ',
« Последнее редактирование: 07.06.2011, 23:59:38 от Master of Magic »
*

chipsed

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Вообще-то, если товар не опубликован, то он в yml не выгружается.
Что-бы в зависимости от наличия товара на складе в карточке товара писалось - есть в наличии, под заказ в flypage я прописал:
Код
<?php if ($product_in_stock < 1 ) { ?> 
<?php echo $VM_LANG->_('PHPSHOP_ORDER_LIST_STATUS')?>: &nbsp;&nbsp;<?php echo $VM_LANG->_('PHPSHOP_NOSTOCK')?><br />
<?php } else { ?>
<?php echo $VM_LANG->_('PHPSHOP_ORDER_LIST_STATUS')?>: &nbsp;&nbsp;<?php echo $VM_LANG->_('PHPSHOP_YESSTOCK')?><br />
<?php } ?>
В файл /administrator/components/com_virtuemart/languages/common/russian.php добавил:
Код
	'PHPSHOP_YESSTOCK' => 'есть в наличии',
'PHPSHOP_NOSTOCK' => 'под заказ',
Спасибо за отклик, а можно еще указать строку или где после чего вставлять код ?
*

Master of Magic

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
Так у вас же на сайте уже есть:
Цитировать
Доступен
Этого товара сейчас нет в наличии.
Код надо добавить в flypage.tpl
components/com_virtuemart/themes/default/templates/product_details
Вставляйте наверно после цены. Хотя вам виднее.
*

chipsed

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Так у вас же на сайте уже есть:Код надо добавить в flypage.tpl
components/com_virtuemart/themes/default/templates/product_details
Вставляйте наверно после цены. Хотя вам виднее.
Спасибо ! попробую .
*

chipsed

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Так же столкнулся с проблемой дублей, решение удаление группы покупателей (у меня почему то было две группы по умолчанию) и затем удаление товаров для этой "второй" группы.
Для тех у кого не работает или что-то глючит выкладываю свой скрипт. VM 1.1.7 Stable. Лично мне нужна была еще проверка наличия на складе, по этому добавил проверку product_in_stock, если товаров на складе 0 они не публикуются. Так же там есть поле вывода производителя.
Код
$row[$i]['mf_name']

dsd10
У вас скорей всего ошибка с типами описания, делайте теги именно так как написано:
http://help.yandex.ru/webmaster/?id=1111247В упрощенном описании можно использовать только теги:
Все! Ни какие другие нельзя! Еще выяснил, что так же важен порядок тегов, то есть как они написаны в примере так и должны идти друг за другом.

ЗЫ еще нарыл, почему то в Яндекс помощи не нашел:
available="false" - товарное предложение на заказ.

Второй вариант во вложении с проверкой если на складе товар не равен нулю, то выводит:
<offer id="12346" available="true">
Если равен нулю:
<offer id="12346" available="false">
Оба скрипта проходят проверку в маркете.


А эти скрипты понимают количество или отсутствие товара в магазине ? В смысле если товара нет или он скрыт, он выгружается на яндекс  ?
*

Master of Magic

  • Осваиваюсь на форуме
  • 39
  • 2 / 0
Цитировать
В смысле если товара нет или он скрыт, он выгружается на Яндекс  ?
Если скрыт - это не опубликован? Если не опубликован то - нет, не выгружается
Если товара на складе 0, в Яндекс передается информация - "под заказ"
« Последнее редактирование: 08.06.2011, 23:09:15 от Master of Magic »
*

chipsed

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Если скрыт - это не опубликован? Если не опубликован то - нет, не выгружается
Если товара на складе 0, в Яндекс передается информация - "под заказ"
Ясно, проверим )
Спасибо за помощь !
« Последнее редактирование: 09.06.2011, 12:46:29 от chipsed »
*

chipsed

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Вчера ночью все выставил, 8 товаров скрыл что бы они по новому прайсу не выгружались и поставил их 0 на складе, а они сегодня утром выгрузились на Яндекс, причем в яндексе они с картинками, а по нажатию на ссылку отмененного товара выдают ошибку 404...
Уже 3 варианта выгрузки перепробовал, со всеми одинакого..(
Может я что неправельно делаю.
З.ы. Еще  не в тему, но если можете подсказать был бы признателен... Картинки создаются с большим регистром по названию товара, а яндекс не кушает большой регистр, как бы это исправить ? ВМ версия 1.1.8
« Последнее редактирование: 09.06.2011, 13:09:57 от chipsed »
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
Для тех, у кого крякозябры:
Код
include '../configuration.php';
//Вставить эту строку вначале
header('Content-Type: text/html; charset=utf8');
//конец вставки
$cfg = new JConfig();

потом ниже исправить utf-8 на utf8:
Код
echo"<?xml version=\"1.0\" encoding=\"utf8\"?>\n";
*

sasha8888

  • Осваиваюсь на форуме
  • 46
  • 4 / 0
Я модифицировал этот экспорт - http://joomlaforum.ru/index.php/topic,168913.new.html
*

Benefactor

  • Захожу иногда
  • 154
  • 2 / 2
Ребят, последние описанные методы на 1.1.7 работают? И есть ли аналогичные чудо-скрипт для других ресурсов типа Яндекс.Маркет?
*

chipsed

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Ребят, последние описанные методы на 1.1.7 работают? И есть ли аналогичные чудо-скрипт для других ресурсов типа Яндекс.Маркет?
Работает и на версиях выше 1.1.7

Цитировать
apsveicdraugu
не поленитесь, почитайте тему, хотя бы немного сначала и немного с конца, а там может и середина заинтересует )
*

WooSuuP

  • Захожу иногда
  • 235
  • 11 / 1
  • Ословед Интерсвязи
Ребят, последние описанные методы на 1.1.7 работают? И есть ли аналогичные чудо-скрипт для других ресурсов типа Яндекс.Маркет?
Могу дать рабочий скрипт настроенный именно под вас. У меня работает на 1.1.3 и даже после обновления. Монуал по работе так же сообщу! настроен на русскую валюту и конверт в доллар, евро по курсу ЦБ РФ. По всем вопросам писать в асю 469-019-95четыре. Отвечу сразу!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

1C УТ 8.x &lt;-&gt; VirtueMart по протоколу CommerceML

Автор Centoff

Ответов: 1315
Просмотров: 214998
Последний ответ 27.10.2020, 15:32:10
от Leo1986
Импорт из CSV товаров с типами и свойствами из

Автор Gruz

Ответов: 499
Просмотров: 150983
Последний ответ 23.02.2017, 15:15:42
от orchanin
Как импортировать файл XML в Joomla VirtueMart?

Автор Кот Смюлан

Ответов: 2
Просмотров: 5182
Последний ответ 14.07.2016, 18:40:24
от Berzerker
импорт товаров в YML Яндекс маркет

Автор zmeyx

Ответов: 5
Просмотров: 11477
Последний ответ 14.07.2016, 18:34:28
от Berzerker
Скрипт экспорта товаров в Яндекс маркет (yml)

Автор gaalferov

Ответов: 12
Просмотров: 11793
Последний ответ 08.06.2016, 14:02:27
от DimaXP