Перейти к содержанию
Официальный форум поддержки Simpla

Вывод нескольких цен на один товар в корзине


Перейти к решению Решено mishanya,

Рекомендуемые сообщения

Здравствуйте.
Как сделать в корзине вывод двух цен одного товара, показать текущую по которой покупает клиент и самую первую

Изменено пользователем redscotina
Ссылка на сообщение
Поделиться на другие сайты

что такое самая первая цена? вы о старой цене варианта?

 

Есть несколько вариантов цен, мне параллельно, в текущей что выбрал пользователь нужно выводить еще другую цену от другого варианта товара

Ссылка на сообщение
Поделиться на другие сайты

Сначала надо разобраться ТОЧНО в том, что надо: цену от КАКОГО именно другого варианта надо вывести.

Возможно,  Вы хотите выводить в корзине дополнительно цену первого по порядку варианта.

Если так, то готового значения в шаблоне для этого нет. Надо сначала программировать нужное в PHP, и потом уже выводить в шаблоне...

Ссылка на сообщение
Поделиться на другие сайты

Сначала надо разобраться ТОЧНО в том, что надо: цену от КАКОГО именно другого варианта надо вывести.

Возможно,  Вы хотите выводить в корзине дополнительно цену первого по порядку варианта.

Если так, то готового значения в шаблоне для этого нет. Надо сначала программировать нужное в PHP, и потом уже выводить в шаблоне...

Точно цену первого варианта того же товара.

 

Конструкция:

 

{$purchase->product->variant[1]->price|convert}

не работает! ЧЯДНТ?

Изменено пользователем redscotina
Ссылка на сообщение
Поделиться на другие сайты

Точно цену первого варианта того же товара.

 

Конструкция:

 

{$purchase->product->variant[1]->price|convert}

не работает! ЧЯДНТ?

 

для товара в корзине не выбираются все его варианты а только тот что был добавлен в корзину.

вам нужно еще отдельно выбирать для каждого товара варианты, в api/Cart.php

Ссылка на сообщение
Поделиться на другие сайты

То есть насколько я понял:

 

				foreach($items as $variant_id=>$item)
				{	
					$purchase = null;
					if(!empty($products[$item->variant->product_id]))
					{
						$purchase = new stdClass();
						$purchase->product = $products[$item->variant->product_id];						
						$purchase->variant = $item->variant;
						$purchase->amount = $item->amount;
						$cart->purchases[] = $purchase;
						$cart->total_price += $item->variant->price*$item->amount;
						$cart->total_products += $item->amount;
					}
				}


То есть сюда надо добавить код:

$purchase->variant[1] = $item->variant[1];

Что то вроде этого?

Ссылка на сообщение
Поделиться на другие сайты

Нет. 

А добавлять и изменять желательно с пониманием, а не просто тыком...

 

Надо смотреть  в других местах, как  реализован выбор из базы всех вариантов товара (например в ProductView.php или ProductsView.php) и действовать по аналогии... И опять же желательно  хоть с минимальным пониманием...

 

Если не выйдет, ждите, когда кто-то из знатоков напишет решение. Иногда mishanya бесплатно выкладывает решение подобных задач. Если не дождетесь, то пробуйте соблазнить знатоков денежкой...

Ссылка на сообщение
Поделиться на другие сайты
  • Решение

То есть насколько я понял:

 

 

				foreach($items as $variant_id=>$item)
				{	
					$purchase = null;
					if(!empty($products[$item->variant->product_id]))
					{
						$purchase = new stdClass();
						$purchase->product = $products[$item->variant->product_id];						
						$purchase->variant = $item->variant;
						$purchase->amount = $item->amount;
						$cart->purchases[] = $purchase;
						$cart->total_price += $item->variant->price*$item->amount;
						$cart->total_products += $item->amount;
					}
				}

 

То есть сюда надо добавить код:

$purchase->variant[1] = $item->variant[1];

Что то вроде этого?

 

что-то вроде.. НЕТ.

 

добавите перед

foreach($items as $variant_id=>$item)

следующее

$all_variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));
foreach( $all_variants as $vs)
	$products[$vs->product_id]->variants[] = $vs;

тогда будут доступны все варианты в массиве {$purchase->product->variants}

Ссылка на сообщение
Поделиться на другие сайты

что-то вроде.. НЕТ.

 

добавите перед

foreach($items as $variant_id=>$item)

следующее

$all_variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));
foreach( $all_variants as $vs)
	$products[$vs->product_id]->variants[] = $vs;

тогда будут доступны все варианты в массиве {$purchase->product->variants}

 

 

Окей воткнул код в /api/Cart.php

 

Однако конструкция в /design/*/html/cart.tpl

 

 

{$purchase->product->variants->variant[1]->price|convert}

 

Все равно отдает 0

 
ЧЯДНТ?

 

 

 
Ссылка на сообщение
Поделиться на другие сайты

 

Окей воткнул код в /api/Cart.php

 

Однако конструкция в /design/*/html/cart.tpl

 

 

{$purchase->product->variants->variant[1]->price|convert}

 

Все равно отдает 0

 
ЧЯДНТ?

 

потому что нет такой переменной $purchase->product->variants->variant. есть массив вариантов $purchase->product->variants, и нужно обращаться к нему.

 

и нумерация элементов в массиве в данном случае начинается с 0 а не с 1. элемента с первым номером может и не быть если у товара только один вариант

Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

потому что нет такой переменной $purchase->product->variants->variant. есть массив вариантов $purchase->product->variants, и нужно обращаться к нему.

Поясните пожалуйста, как правильно извлечь цену первого варианта в шаблон?

Ссылка на сообщение
Поделиться на другие сайты

Поясните пожалуйста, как правильно извлечь цену первого варианта в шаблон?

 

нууу

{$purchase->product->variants[0]->price|convert}
Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

 

нууу

{$purchase->product->variants[0]->price|convert}

Спасибо большое, не догадался что [0] являеться первым значением, писал [1], надо записать себе на будущее

 

Покорнейше благодарю, проблема решена

Ссылка на сообщение
Поделиться на другие сайты

Решение, которое представил здесь mishanya, выглядит простым, легким и аккуратным.

На самом же деле оно содержит принципиально важную технологическую ошибку.

Автор об этом, видимо, не только не знает, но и знать не хочет. Ибо подобная принципиальная ошибка у него была

http://forum.simplacms.ru/topic/11391-%D0%BA%D0%B0%D0%BA-%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D0%B2%D1%8F%D0%B7%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B-%D0%B2-%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B5/

А на намек в той теме он не среагировал.

 

Забавно, что и прочие спецы не замечают такого...

Ссылка на сообщение
Поделиться на другие сайты

Решение, которое представил здесь mishanya, выглядит простым, легким и аккуратным.

На самом же деле оно содержит принципиально важную технологическую ошибку.

Автор об этом, видимо, не только не знает, но и знать не хочет. Ибо подобная принципиальная ошибка у него была

http://forum.simplacms.ru/topic/11391-%D0%BA%D0%B0%D0%BA-%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D0%B2%D1%8F%D0%B7%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B-%D0%B2-%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B5/

А на намек в той теме он не среагировал.

 

Забавно, что и прочие спецы не замечают такого...

 

я намеками не работаю, у меня к сожалению нет столько свободного времени чтобы искать по намекам ошибку. я ее не вижу. но если вы укажите что за ошибка я ее исправлю.

Ссылка на сообщение
Поделиться на другие сайты

я намеками не работаю, у меня к сожалению нет столько свободного времени чтобы искать по намекам ошибку. я ее не вижу. но если вы укажите что за ошибка я ее исправлю.

 

Вот и я о том же - Вы как увидите задачу, которую вроде бы знаете как решать, сразу кидаетесь код писать. Времени не хватает - пишете скорей-скорей. Задуматься о чем-то более серьезном, кроме комбинаций циклов и условных операторов, Вам недосуг. В результате - формально работает, но качество неважнецкое.

 

Времени на выкладывание дефектных решений хватает, стало быть...

 

В таком силе можно работать с отдельным заказчиком - когда Ваша нерациональность будет на одном сайте в единственном числе - не сильно заметно.

А Вы-то пишете на форуме публично - тут такая небрежность выглядит по меньшей мере странной. А выкладывать на форуме на публику надо бы с большей ответственностью...

 

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

 

Дам еще намек.

В указанной выше теме про связанные в корзине у Вас та же принципиальная ошибка. В той теме стоял вопрос о выводе связанных на странице корзины. Этот функционал можно видеть в более ранних версиях (по крайней мере 2.2.4), но в закомментированном виде. Попробуйте сравнить свой подход к решению задачи и подход автора Simpla. На первый взгляд разницы почти нет. А если чуть задуматься, то все становится иначе...

 

Ссылка на сообщение
Поделиться на другие сайты

Вот и я о том же - Вы как увидите задачу, которую вроде бы знаете как решать, сразу кидаетесь код писать. Времени не хватает - пишете скорей-скорей. Задуматься о чем-то более серьезном, кроме комбинаций циклов и условных операторов, Вам недосуг. В результате - формально работает, но качество неважнецкое.

 

Времени на выкладывание дефектных решений хватает, стало быть...

 

В таком силе можно работать с отдельным заказчиком - когда Ваша нерациональность будет на одном сайте в единственном числе - не сильно заметно.

А Вы-то пишете на форуме публично - тут такая небрежность выглядит по меньшей мере странной. А выкладывать на форуме на публику надо бы с большей ответственностью...

 

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

 

Дам еще намек.

В указанной выше теме про связанные в корзине у Вас та же принципиальная ошибка. В той теме стоял вопрос о выводе связанных на странице корзины. Этот функционал можно видеть в более ранних версиях (по крайней мере 2.2.4), но в закомментированном виде. Попробуйте сравнить свой подход к решению задачи и подход автора Simpla. На первый взгляд разницы почти нет. А если чуть задуматься, то все становится иначе...

 

Изменено пользователем torry
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...