Wizard Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 Денис, будет ли исправлен в последующих версиях баг с Яндекс.Вебмастер -> Товары и цены?Проблема заключается в том что яндекс индексирует товар так:http://demo.simplacms.ru/products/samsung-s5570-galaxy-miniа мы передаем xml так:http://demo.simplacms.ru/products/samsung-s5570-galaxy-mini?variant=12в следствии - яндекс выдает ошибку.проблема решается легко, к примеру:$simpla->db->query("SELECT p.id, v.price...$variant[$p->id] = isset($variant[$p->id]) ? '?variant='.$p->variant_id : '';...<url>".$simpla->config->root_url.'/products/'.$p->url.$variant[$p->id]."</url>.... Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 Не совсем понял суть проблемы?variant=12 передаётся яндекс-маркету, так как у него есть требование, чтобы при переходе человек попадал именно на выбранный вариант Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 в поиске присутствует именно такая ссылкаhttp://demo.simplacms.ru/products/samsung-s5570-galaxy-miniЯндекс.Вебмастер -> Товары и цены ни как не может автоматически привязать к этой ссылке ?variant=12суть проблемы в том что бы передавать ссылки в том виде, в котором они проиндексированы.***так как у него есть требование, чтобы при переходе человек попадал именно на выбранный вариантИменно этого он и требуетhttp://demo.simplacms.ru/products/samsung-s5570-galaxy-mini - это и есть основной вариант, тот на которой пользователь попадает переходя по ссылке как внутри сайта так и на поиске. Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 Если мы на сайте во всех ссылках товара будем указывать ид варианта, тогда проблемы не будет, но по моему проще в xml не выводить параметр ?variant=12 там где вариант стоит по умолчанию - то есть первый. Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 ссылка на поиске именно такая - http://www.zdoroff.com/products/SWB30а мы передаем -http://www.zdoroff.com/products/SWB30?varian=522это две разные страницы, как яндекс может привязать одно к другому?и потому для обладателей симплы подобное не возможно:Для Маркета это катит но не для Товары и цены - это разные вещипросто скорее всего мало кто сталкивался с этой проблемой, так как для выгрузки надо не меньше 30 тиц Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 То есть в yandex.xml просто не указывать variant_id для первых вариантов товара? Надо думать как это сделать Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 я показал как это сделать в первом посту - проверенно, работает! Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 Я непонял как оно работает честно говоря, что за переменная $variant например Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 Попробуйте так http://pastebin.com/S6bkyxWiНо я не уверен что добавление ORDER BY p.id, v.position не замедлит работу Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 без разницы какая там будет переменна - мы просто проверяем есть ли в переменной значение варианта, если нет, тогда это первый вариант данного товара, если есть значит вставляем в ссылку параметр. Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 А, вроде понял. По сути вы проверяете, выводились ли уже варианты этого товара, если нет - то добавлять не нужно?Это не будет работать, к сожалению Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 Потому что не факт что:1) подряд идут варианты одного и того же товара2) первым идет вариант который действительно первый по полю position Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 *** ORDER BY p.id, v.positionэто конечно надо добавить, для актуальной релевантности вариантов, то как они стоят в выводе на сайте, так как нам необходима именно первый вариант Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 Да, я так и сделал по ссылке> Попробуйте так http://pastebin.com/S6bkyxWiУ вас много товаров? Вы можете сравнить скорость старого и нового запроса? Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 *** Это не будет работать, к сожалениюперед тем как создавать тему я проверил))) - работает Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 товаров не много, я не думаю что для яндекса не будет критична разница в скорости загрузки xml в 0,1 сек Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 Попробуйте поменять местави варианты в админке, скорее появится ошибка если не сделать ORDER BY p.id, v.position. В общем мы друг друга поняли Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 > товаров не много, я не думаю что для яндекса не будет критична разница в скорости загрузки xml в 0,1 секКонечно, просто хотел добавить это в след релиз, но как бы оно не начало тормозить в магазинах, где много товаров Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 ошибка, все работает по приведенному коду... Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 ***Конечно, просто хотел добавить это в след релиз, но как бы оно не начало тормозить в магазинах, где много товаровок, я сейчас протестирую Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 Почему не работает? Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 все, все работает - это я проморгал Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 Денвертоваров - 1634вариантов - 5219ДО memory peak usage: 3143416 bytes, page generation time: 2.966 secondsПОСЛЕ memory peak usage: 3326936 bytes, page generation time: 2.16 seconds Цитата Ссылка на сообщение Поделиться на другие сайты
Wizard Опубликовано 13 июля, 2012 Автор Жалоба Поделиться Опубликовано 13 июля, 2012 даже не знаю почему после дополнения кода time меньше. перепроверил два раза. Цитата Ссылка на сообщение Поделиться на другие сайты
pikusov Опубликовано 13 июля, 2012 Жалоба Поделиться Опубликовано 13 июля, 2012 Вы сделали так?$variant[$p->id] = isset($variant[$p->id]) ? '?variant='.$p->variant_id : '';Просто нет смысла хранить этот массив, так что лучше возьмите мой вариант где для этого используется одна переменная вместо массива, будет кушать мешьше памяти.На счет времени - лучше сделайте print этого запроса и посмотрите время через phpmyadmin, чтобы увидеть именно время запроса. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.