trainracing Опубликовано 27 мая, 2015 Жалоба Поделиться Опубликовано 27 мая, 2015 Всем привет. Ни для кого не секрет что все любят скидки,и любой покупатель если увидит значек скидки, подумает "О! скидка! надо зайти!" Да вы и сами представьте, 15 обьявлений с простой ценой и из них одно со скидкой. Куда вы зайдете? вот! Приступим:в файле /yandex.php после v.price, добавим: v.compare_price, далее ищем: $price = round($simpla->money->convert($p->price, $main_currency->id, false),2); и ниже добавляем: if ($p->compare_price > 1) { $compare_price = round($simpla->money->convert($p->compare_price, $main_currency->id, false),2); } else { $compare_price = ''; } Дальше ищем: <price>$price</price> и ниже вставляем: <oldprice>$compare_price</oldprice> Примеры:товар - http://clim-shop.ru/products/ochistitel-vozduha-mitsubishi-ma-e83h-r1фид - http://clim-shop.ru/yandex.xml Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 27 мая, 2015 Жалоба Поделиться Опубликовано 27 мая, 2015 Будет выводить такое: <oldprice></oldprice> Надо бы предусмотреть, чтоб этого не было... Цитата Ссылка на сообщение Поделиться на другие сайты
trainracing Опубликовано 27 мая, 2015 Автор Жалоба Поделиться Опубликовано 27 мая, 2015 (изменено) Будет выводить такое:<oldprice></oldprice>Надо бы предусмотреть, чтоб этого не было...Будет выводить такое : <oldprice/> Если есть идея - подкинь или дополни часть кода, буду признателен. Хотя ты наверно убежал делать платный вариант на основе моего дополнения) Яндексу главное чтоб между <oldprice> не было значения "0" Изменено 27 мая, 2015 пользователем trainracing Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 27 мая, 2015 Жалоба Поделиться Опубликовано 27 мая, 2015 (изменено) print "<price>".$price."</price>"; if( is_float($compare_price) ) print "<oldprice>".$compare_price."</oldprice>"; print " <currencyId>".$currency_code."</currencyId> <categoryId>".$p->category_id."</categoryId> "; Изменено 27 мая, 2015 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
trainracing Опубликовано 27 мая, 2015 Автор Жалоба Поделиться Опубликовано 27 мая, 2015 print "<price>".$price."</price>"; if( is_float($compare_price) ) print "<oldprice>".$compare_price."</oldprice>"; print " <currencyId>".$currency_code."</currencyId> <categoryId>".$p->category_id."</categoryId> "; Ваш код неработоспособен. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 27 мая, 2015 Жалоба Поделиться Опубликовано 27 мая, 2015 У меня этот код работает прекрасно... Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 27 мая, 2015 Жалоба Поделиться Опубликовано 27 мая, 2015 Есть еще недостаток в #1.Если $p->compare_price имеет значение <1, то старая цена не будет выводиться.А товары стоимостью менее 1$ все же бывают... Цитата Ссылка на сообщение Поделиться на другие сайты
trainracing Опубликовано 27 мая, 2015 Автор Жалоба Поделиться Опубликовано 27 мая, 2015 Есть еще недостаток в #1.Если $p->compare_price имеет значение <1, то старая цена не будет выводиться.А товары стоимостью менее 1$ все же бывают...А у меня рубли + ввод цен в разных валютах = на выходе цены в рублях, и вряд ли у кого то будет меньше 1 рубля что то стоить, у большинства в дефолте рублевая валюта. А код не работает. мб из за модуля мультивалют, выгрузки, статуса под заказ Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 27 мая, 2015 Жалоба Поделиться Опубликовано 27 мая, 2015 А у меня рубли + ввод цен в разных валютах = на выходе цены в рублях, и вряд ли у кого то будет меньше 1 рубля что то стоить, у большинства в дефолте рублевая валюта.Вот и надо писать с самого начала ТОЛКОМ: ребята, мол, хоть я и пишу в разделе ГОТОВЫЕ РЕШЕНИЯ, но решение не готовое, а просто такое, которое работает на МОЕМ сайте. А что будет на других, неизвестно. Например, если у Вас цены меньше 1 единицы основной валюты, то будет работает неверно. А исправить этот пустячок мне недосуг, сами уж постарайтесь... А код не работает. мб из за модуля мультивалют, выгрузки, статуса под заказ Крутенько! Писать готовые решения я мастер, а на своем сайте в пустяковом вопросе разобраться не могу... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 27 мая, 2015 Жалоба Поделиться Опубликовано 27 мая, 2015 Да не обращайте Вы внимания на корса, он у нас чуть двинутый на голову. Решение вполне рабочее, а если кому то что то не нравится, то пусть мозгами пошевелит да сделает так как ему нужно. Цитата Ссылка на сообщение Поделиться на другие сайты
Решение trainracing Опубликовано 28 мая, 2015 Автор Решение Жалоба Поделиться Опубликовано 28 мая, 2015 (изменено) Итоговая версия с учетом всех замечаний. - При значении меньше 1 ед старые цены выводятся- При отсутствии старой цены выводится только <price> в файле /yandex.php после v.price, добавим: v.compare_price, далее ищем: $price = round($simpla->money->convert($p->price, $main_currency->id, false),2); и ниже добавляем: if ($p->compare_price > 0) { $compare_price = round($simpla->money->convert($p->compare_price, $main_currency->id, false),2); } else { $compare_price = ''; } Дальше ищем: print "<price>".$price."</price> <currencyId>".$currency_code."</currencyId> <categoryId>".$p->category_id."</categoryId> "; и меняем на: print "<price>".$price."</price>"; if( is_float($compare_price) ) print "<oldprice>".$compare_price."</oldprice>"; print " <currencyId>".$currency_code."</currencyId> <categoryId>".$p->category_id."</categoryId> "; готово. Изменено 28 мая, 2015 пользователем trainracing Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 28 мая, 2015 Жалоба Поделиться Опубликовано 28 мая, 2015 Очень хорошо! Цитата Ссылка на сообщение Поделиться на другие сайты
Deni Опубликовано 28 мая, 2015 Жалоба Поделиться Опубликовано 28 мая, 2015 круто спасибо Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 20 июня, 2015 Жалоба Поделиться Опубликовано 20 июня, 2015 Да не обращайте Вы внимания на корса, он у нас чуть двинутый на голову.Решение вполне рабочее, а если кому то что то не нравится, то пусть мозгами пошевелит да сделает так как ему нужно.И тем не менее с его подачи недочет был найден.... А вообще согласен — любое новое и годное решение должно попадать, ну или тогда тег писать "полуфабрикат"... чтобы люди были готовы к тому, чтобы "потанцевать" или случайно положить сайт. Цитата Ссылка на сообщение Поделиться на другие сайты
kislotnik Опубликовано 20 июня, 2015 Жалоба Поделиться Опубликовано 20 июня, 2015 Да не обращайте Вы внимания на корса, он у нас чуть двинутый на голову.Решение вполне рабочее, а если кому то что то не нравится, то пусть мозгами пошевелит да сделает так как ему нужно.Да уж дружище.все дурачки все двинутые один ты "гений"! Цитата Ссылка на сообщение Поделиться на другие сайты
LUN Опубликовано 1 июля, 2015 Жалоба Поделиться Опубликовано 1 июля, 2015 Народ, кому не жалко, скиньте готовый yandex.php Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 1 июля, 2015 Жалоба Поделиться Опубликовано 1 июля, 2015 (изменено) Народ, кому не жалко, скиньте готовый yandex.phphttps://yadi.sk/d/7YiRicWYhbsGU Но есть нюансы! Валюту я убрал... то есть вверху где вывод валют — я в ручную рубли задал, и в <currencyId>RUR</currencyId>вместо RUR надо из стандартного yandex.php вставить... перемнную------------------ если не планируешь в др валюте — то тебе все подойдет ой и 121 строка не нужна тебе с размером Изменено 1 июля, 2015 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
Jabber Опубликовано 10 июля, 2015 Жалоба Поделиться Опубликовано 10 июля, 2015 Сделал, работает. Огромное спасибо! По одному из товаров Яндекс выдал ошибку - скидка не может быть менее 5% и более 95% - реально получалась 4% - в этом случае товар был опубликован по старой цене, без скидки. В общем этот момент нужно учитывать, так как в админке это делается заполнением старой цены а не назначением скидки в процентах. Цитата Ссылка на сообщение Поделиться на другие сайты
AMax Опубликовано 11 июля, 2015 Жалоба Поделиться Опубликовано 11 июля, 2015 Спасибо, так же внедрил себе. Все работает отлично! Цитата Ссылка на сообщение Поделиться на другие сайты
Andrey Terkin Опубликовано 22 июля, 2015 Жалоба Поделиться Опубликовано 22 июля, 2015 (изменено) del Изменено 22 июля, 2015 пользователем Andrey Terkin Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 22 июля, 2015 Жалоба Поделиться Опубликовано 22 июля, 2015 Нужно исправить ошибкуЭту строку $compare_price = round($simpla->money->convert($p->compare_price, $main_currency->id, false),2); Написать так $compare_price = round($main->money->convert($p->compare_price, $main_currency->id, false),2); Зачем? Чтоб хорошее решение стало нерабочим? Цитата Ссылка на сообщение Поделиться на другие сайты
Andrey Terkin Опубликовано 22 июля, 2015 Жалоба Поделиться Опубликовано 22 июля, 2015 Зачем? Чтоб хорошее решение стало нерабочим? Да действительно, поспешил с выводами, просто только что правил этот файл на сайте, а там вместо $simpla -> $mainНемного подзапутался Цитата Ссылка на сообщение Поделиться на другие сайты
cernos Опубликовано 9 января, 2016 Жалоба Поделиться Опубликовано 9 января, 2016 (изменено) Сделал немного по своему, суть таже:1. находим в запросе: SELECT v.price, меняем на: SELECT v.price,v.compare_price, 2. Находим: $price = round($simpla->money->convert($p->price, $main_currency->id, false),2); Ниже вставляем: $compare_price = '';$compare_tag = '';if ($p->compare_price > 0) { $compare_price = round($simpla->money->convert($p->compare_price, $main_currency->id, false),2); $compare_tag = "\n<oldprice>".$compare_price."</oldprice>"; }3. Находим: print " <price>$price</price> <currencyId>".$currency_code."</currencyId> <categoryId>".$p->category_id."</categoryId> "; Заменяем на: print " <price>$price</price>".$compare_tag." <currencyId>".$currency_code."</currencyId> <categoryId>".$p->category_id."</categoryId> "; Вроде бы все : ) Изменено 10 января, 2016 пользователем cernos Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 10 января, 2016 Жалоба Поделиться Опубликовано 10 января, 2016 Сделал немного по своему, суть таже:1. находим в запросе: SELECT v.price,меняем на: SELECT v.price,v.compare_price,2. Находим:$price = round($simpla->money->convert($p->price, $main_currency->id, false),2);Ниже вставляем:if ($p->compare_price > 0) { $compare_price = round($simpla->money->convert($p->compare_price, $main_currency->id, false),2); $compare_tag = "\n<old_price>".$compare_price."</old_price>"; }3. Находим:print " <price>$price</price> <currencyId>".$currency_code."</currencyId> <categoryId>".$p->category_id."</categoryId> ";Заменяем на:print " <price>$price</price>".$compare_tag." <currencyId>".$currency_code."</currencyId> <categoryId>".$p->category_id."</categoryId> ";Вроде бы все : ) 1. непонятно, зачем подправлять хорошее рабочее решение,2. если уж поправлять, то не сажать новые ошибки,3. подобные ошибки можно делать новичку, а не программисту со стажем,4. имеющуюся ошибка, если суть упростить, как раз годится для ЕГЭ по информатике в серию "Программист, видимо, в спешке написал программу с ошибкой"...5. применяя такое решение, владелец магазина сильно рискует тем, что5.1 Яндекс Маркет можно иногда файл принять, иногда зафиксировать ошибку. Если делается автоматически, то админ о второй ситуации может и не узнать...5.2 Магазин в Яндекс Маркет после срабатывания такого решения может выглядеть неадекватно с точки зрения новых и старых цен... Сделал немного по своему, суть тажеСуть совсем не та же... Цитата Ссылка на сообщение Поделиться на другие сайты
cernos Опубликовано 10 января, 2016 Жалоба Поделиться Опубликовано 10 января, 2016 (изменено) 1. непонятно, зачем подправлять хорошее рабочее решение,2. если уж поправлять, то не сажать новые ошибки,3. подобные ошибки можно делать новичку, а не программисту со стажем,4. имеющуюся ошибка, если суть упростить, как раз годится для ЕГЭ по информатике в серию "Программист, видимо, в спешке написал программу с ошибкой"...5. применяя такое решение, владелец магазина сильно рискует тем, что5.1 Яндекс Маркет можно иногда файл принять, иногда зафиксировать ошибку. Если делается автоматически, то админ о второй ситуации может и не узнать...5.2 Магазин в Яндекс Маркет после срабатывания такого решения может выглядеть неадекватно с точки зрения новых и старых цен... Суть совсем не та же...Kors, ты словно БАБКА у подъезда. Ты напиши ошибку, которая допущена...----Да, была опечатка с "oldprice" так тяжело было сразу написать? У топик стартера есть лишние условия IF и ELSE, которые по сути не нужны. Сделал по своему выложил свой вариант, не нравится? используй вариант топикстартера. Изменено 10 января, 2016 пользователем cernos Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.