Перейти к содержимому


Модуль вывод веса в корзине


  • Вы не можете ответить в тему
Сообщений в теме: 16

#1 Valentin

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 146 сообщений
Репутация: 6
Начинающий
  • ГородШахты Ростовская область

Отправлено 02 March 2013 - 03:17 AM

Предлагаю Доработку для корзины.
Модуль выводит общий вес товаров в корзине, а также общий вес каждого товара не зависимо один товар или больше одного.Вес пересчитывается если покупатель изменит количество какого либо товара.
Также общий вес выводится на последнем шаге оформления заказа.
Полезно тем у кого доставка по весу и вам не всё равно что ваш клиент будет переплачивать за доставку.
Модуль полностью рабочий тестировался на shopcms 3.1.2 vip.
Воплотил всё в жизнь Papikov за что благадарим его.
Оплатил работу Valentin.
В архиве:
Файлы для замены и инструкция для ручной врезки.
На всякий случай обновил инструкцию в архиве. Хотя у меня такой проблемы нет.

Прикрепленные файлы


Сообщение отредактировал Valentin: 04 March 2013 - 08:52 AM

  • 2
Социально-информационный проект Nvda.ru о бесплатной программе экранного доступа Nvda для незрячих и слабовидящих.
С уважением ко всем Valentin-Kupriyanov.ru

#2 kery

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 134 сообщений
Репутация: 17
Начинающий

Отправлено 02 March 2013 - 08:48 AM

Вес отдельно взятого товара неправильно считает а именно, если количество товара больше 1 то вес рассчитывается неправильно а в квадрате. Ложиш продукт весом в 1 кг. в корзину в количестве 2 шт. выводит вес 4кг. 3 шт. выводит 9 кг. и т.д. хотя общий вес подсчитывает правильно.

Все нормально считает разобрался это у меня старая функция была добавленна


  • 0

#3 Papikov

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 246 сообщений
Репутация: 66
Продвинутый
  • ГородРостов на Дону

Отправлено 04 March 2013 - 08:29 AM

Линк и доступ на фтп в личку, посмотрю, у меня все работает.
  • 1

#4 kery

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 134 сообщений
Репутация: 17
Начинающий

Отправлено 04 March 2013 - 08:46 AM

Линк и доступ на фтп в личку, посмотрю, у меня все работает.

На локалке тестил, но сегодня залью файлы и отпишусь в личку
  • 1

#5 feelman

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 18 сообщений
Репутация: 0
Начинающий

Отправлено 16 May 2013 - 01:57 PM

В админке, при просмотре заказа не отображается информация о весе, подскажите какую переменную надо установить?
  • 0

#6 Valentin

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 146 сообщений
Репутация: 6
Начинающий
  • ГородШахты Ростовская область

Отправлено 17 May 2013 - 12:25 AM

Пробовали эти переменные:
Файлы шаблона правим на свое усмотрение
shopping_cart.tpl.html -
общий вес товара переменная
{$cart_weight}


вес каждого товара
{$cart_content[i].weight}


order4_confirmation_quick.tpl.html и order4_confirmation.tpl.html - общий вес товара переменная
{$orderSum.weight_total}

Когда делал заказ данного модуля, то у меня не стояла задача вывода веса в админке а также шаблонах писем.
  • 2
Социально-информационный проект Nvda.ru о бесплатной программе экранного доступа Nvda для незрячих и слабовидящих.
С уважением ко всем Valentin-Kupriyanov.ru

#7 feelman

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 18 сообщений
Репутация: 0
Начинающий

Отправлено 17 May 2013 - 08:55 AM

Да, пробовал. Эти переменные не выводят вес в админке при просмотре заказа.
  • 0

#8 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 17 May 2013 - 10:29 AM

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

Описанные смарти-переменные не сами по себе появляются, а присваиваются в shopping_cart.php, который в админке не используется и в функциях (см. файлы в архиве), которые не вызываются в админке при получении информации об ордерах. Чтобы эту информацию вытащить в админку надо аналогично функции cartGetCartContent переделать функцию GetOrderContent или (что проще, но даст лишние SQL-запросы) дописать custord_new_orders.php
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#9 feelman

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 18 сообщений
Репутация: 0
Начинающий

Отправлено 17 May 2013 - 11:10 AM

Вы можете доработать вывод общего веса товаров в custord_new_orders ?
  • 0

#10 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 17 May 2013 - 07:28 PM

Вы можете доработать вывод общего веса товаров в custord_new_orders ?

Могу. Но не буду :).
Зачем же я буду делать просто и не совсем правильно, когда могу сделать чуть сложнее, но правильно?
Но до середины следующей недели мое рабочее место сложено по коробочкам в силу переезда конторы, а в домашнее время на домашнем компе я и уже имеющиеся заказы не успеваю к обещанным срокам. Да и в цене мы наверняка традиционно не сойдемся :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#11 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 18 May 2013 - 06:37 PM

Зачем же я буду делать просто и не совсем правильно, когда могу сделать чуть сложнее, но правильно?

В файле order_functions.php

1. в функции ordGetOrders

1.1 перед строкой


$content[] = $orderContentItem;


вставляем


# BEGIN weight-in-adminko
$total_weight += $product['weight']*$orderContentItem["Quantity"];
# END weight-in-adminko


1.2 перед строкой


$res[] = $row;


вставляем


# BEGIN weight-in-adminko
$row['total_weight'] = $total_weight;
# END weight-in-adminko


Это даст в общем списке заказов элемент массива {$orders[i].total_weight} c общим весом заказа

2. в функции ordGetOrderContent

2.1 перед строкой


$data[] = $row;


вставляем


# BEGIN weight-in-adminko
$row['weight'] = $product['weight']*$row['Quantity'];
$total_weight += $row['weight'];
# END weight-in-adminko


2.2 перед строкой


return $data;


вставляем


# BEGIN weight-in-adminko
$smarty->assign( "total_weight", $total_weight );
# END weight-in-adminko


Это даст в просмотре отдельного заказа элемент массива {$orderContent[i].weight} и общий вес заказа {$total_weight}


PS. Написано без проверки, так что ошибки возможны.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#12 feelman

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 18 сообщений
Репутация: 0
Начинающий

Отправлено 20 May 2013 - 12:08 PM

badisoft,после внесения данных изменений при просмотре заказа появилась ошибка 500 (страница не открывается).
  • 0

#13 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 20 May 2013 - 12:43 PM

Позже гляну.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#14 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 20 May 2013 - 06:39 PM

Позже гляну.


Вместо

$smarty->assign( "total_weight", $total_weight );


Надо прописать


$_SESSION['total_weight'] = $total_weight;


а в custord_new_orders.php перед


$smarty->assign( "order_detailed", 1 );


вставить


# BEGIN weight-in-adminko
$smarty->assign( "total_weight", $_SESSION['total_weight']);
# END weight-in-adminko


Решение наколенное, т.к. мне лень разбираться, почему в момент вызова функции ordGetOrderContent еще не создан объект $smarty.
  • 3
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#15 feelman

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 18 сообщений
Репутация: 0
Начинающий

Отправлено 21 May 2013 - 09:06 AM

badisoft, данное решение работает, спасибо!
  • 0

#16 Арти

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 54 сообщений
Репутация: 1
Начинающий

Отправлено 24 August 2013 - 12:35 PM

Позже гляну.

Вместо
 $smarty->assign( "total_weight", $total_weight ); 
Надо прописать
 $_SESSION['total_weight'] = $total_weight; 
а в custord_new_orders.php перед
 $smarty->assign( "order_detailed", 1 ); 
вставить
 # BEGIN weight-in-adminko $smarty->assign( "total_weight", $_SESSION['total_weight']); # END weight-in-adminko 
Решение наколенное, т.к. мне лень разбираться, почему в момент вызова функции ordGetOrderContent еще не создан объект $smarty.


Подскажите пож ) а в custord_new_orders.tpl.html как правельно написать строчку вывода веса ) просто я не очень есче разбираюсь :)
  • 0

#17 Арти

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 54 сообщений
Репутация: 1
Начинающий

Отправлено 26 August 2013 - 04:29 PM

Раз не кто не ответит попробую сам :)
Открываем файл custord_new_orders.tpl.html

1 .находим там строчку <td align="center">{$smarty.const.ADMIN_ON3}</td>

и перед ней ставим <td align="center">Вес</td>

1.2 находим <td align="right" class="toph3">{$orderContent[i].PriceToShow}</td>

после него ставим <td class="padt" align="right" valign="middle">{$orderContent[i].weight}</td>

1.3 потом находим строчку <td align="right" class="toph3"><b>{$order.order_amountToShow}</b></td>
</tr>

и после нее вставляем
<tr>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right"><b>Общий вес товара : </b></td>
<td align="right" class="toph3">:{$total_weight}</td>
</tr>

Вот вроде все ) :) Дописывал на сайте с установленным редактором заказа !
  • 0