Перейти к содержанию
Форум поддержки пользователей VamShop

вес товара в корзине?


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

как можно вывести вес товара в корзине?

=====================================

 

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

Ссылка на сообщение
Поделиться на другие сайты
Без правки кода никак.
 
Вес корзины можно взять из $_SESSION['cart']->show_weight()
 
Что б выводить вес на странице корзины, т.е. в /templates/шаблон/module/order_details.html
 
Нужно для начала в /includes/modules/order_details_cart.php поменять:
$module_content[$i] = array ('PRODUCTS_NAME' => $products[$i]['name'].$mark_stock, 'PRODUCTS_QTY' => vam_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="2"').vam_draw_hidden_field('products_id[]', $products[$i]['id']).vam_draw_hidden_field('old_qty[]', $products[$i]['quantity']), 'PRODUCTS_MODEL' => $products[$i]['model'],'PRODUCTS_SHIPPING_TIME'=>$products[$i]['shipping_time'], 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), 'PRODUCTS_IMAGE' => $image, 'IMAGE_ALT' => $products[$i]['name'], 'BOX_DELETE' => vam_draw_checkbox_field('cart_delete[]', $products[$i]['id']), 'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products[$i]['id'], $products[$i]['name'])), 'PRODUCTS_PRICE' => $vamPrice->Format($products[$i]['price'] * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$vamPrice->Format($products[$i]['price'], true), 'PRODUCTS_SHORT_DESCRIPTION' => vam_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '');
на:
$module_content[$i] = array ('PRODUCTS_NAME' => $products[$i]['name'].$mark_stock, 'PRODUCTS_WEIGHT' => $products[$i]['weight'], 'PRODUCTS_QTY' => vam_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="2"').vam_draw_hidden_field('products_id[]', $products[$i]['id']).vam_draw_hidden_field('old_qty[]', $products[$i]['quantity']), 'PRODUCTS_MODEL' => $products[$i]['model'],'PRODUCTS_SHIPPING_TIME'=>$products[$i]['shipping_time'], 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), 'PRODUCTS_IMAGE' => $image, 'IMAGE_ALT' => $products[$i]['name'], 'BOX_DELETE' => vam_draw_checkbox_field('cart_delete[]', $products[$i]['id']), 'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products[$i]['id'], $products[$i]['name'])), 'PRODUCTS_PRICE' => $vamPrice->Format($products[$i]['price'] * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$vamPrice->Format($products[$i]['price'], true), 'PRODUCTS_SHORT_DESCRIPTION' => vam_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '');
и затем уже в шаблоне order_details.html использовать метку {$module_data.PRODUCTS_WEIGHT}
 
Примерно так.
Ссылка на сообщение
Поделиться на другие сайты

{$module_data.PRODUCTS_WEIGHT} выводит вес одной позиции товара в order_details.html, а как посчитать общий вес в order_details.html и вывести его там? И вывести эту сумму веса в box_cart.html?

$_SESSION['cart']->show_weight() - как преобразовать эту переменную в формат шаблона для вставки в order_details.html и  box_cart.html.

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

Что б вывести в шаблоне show_weight нужно метку для бокса назначить и уже в шаблон вставлять метку.

 

Само собой без правок php кода никак.

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

 

Дык давайте поправим? :) Мне клиенты вопрос задают, как сделать.. А php править я пока не готов.. :) Почти не готов. ;)  Общую теорию программирования знаю, знаю пару непопулярных языков программирования (так получилось ;)) но изучать синтаксис php пока  нет ни возможности, ни времени. 

Ссылка на сообщение
Поделиться на другие сайты
Добавьте например в /includes/header.php
$vamTemplate->assign('TOTAL_WEIGHT', $_SESSION['cart']->show_weight());
например после:
$vamTemplate->assign('mainpage',HTTP_SERVER . DIR_WS_CATALOG);
В шаблоне /templates/шаблон/boxes/box_cart.html используйте метку {$TOTAL_WEIGHT}
 
P.S. А вообще говоря, знать хотя бы основы html, css, php, mysql очень желательно, иначе Вы вряд ли сможете что-либо исправить в магазине.
Ссылка на сообщение
Поделиться на другие сайты

На PS: Конечно, хорошо... ;)  Вот с этим проблем нет:" знать хотя бы основы html, css"  , а вот с этим: "php, mysql" - почти проблемы.   :(   Но, если знать последнее, то, пожалуй и вопросов не будет..   :rolleyes: А мы на Вас надеемся и уповаем  :rolleyes:  

Спасибо! Попробую разобраться... 

Ссылка на сообщение
Поделиться на другие сайты
  В 11.10.2013 в 17:24, support сказал:

 

В шаблоне /templates/шаблон/boxes/box_cart.html используйте метку {$TOTAL_WEIGHT}
 

После добавления в "/includes/header.php" "$vamTemplate->assign('TOTAL_WEIGHT', $_SESSION['cart']->show_weight());"

В шаблоне "/templates/vamshop/boxes/box_cart.html " метка  {$TOTAL_WEIGHT} отображает "" т.е. "empty"

Веса проставлены..

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

Да, конечно, я проверил... 

На всяк случай попробовал выключить "Ajax корзину" ничего не изменилось. В корзине 2 товара, у обоих указан вес.

Попробовал переключиться в "чистый" "vamshop2" - то же самое...

Вес товара в карточке через {$module_data.PRODUCTS_WEIGHT} по Вашей рекомендации выше - выводится...

 

Версия Vamshop 1.68

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

Значит не так что-то делаете.

 

Добавьте тогда в header.php для начала просто echo $_SESSION['cart']->show_weight(); и посмотрите выведется ли вес.

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

Спасибо! Так вес выводится. В килограммах.

Так же вес выводится если вставлять в любой из файлов шаблона  - shopping_cart.php.html например.

Так же работает, если вставить например в шаблон/module/shopping_cart.html 

 

А вот в vamshop/boxes/box_cart.html - веса не дает, куда бы не вставлять метку. (вставлял сразу после <div class="boxcontent"> ) - вот сюда бы хотелось добавить.

Так же не работает при вставке , например, в шаблон/module/order_details.html, но это не критично, так как работает в шаблон/module/shopping_cart.html .

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

Чудес не бывает..  :rolleyes:

 

Вот здесь, в "modules\shopping_cart.html" работает:

  1. <div class="page">
  2. <div class="pagecontent">
  3.  
  4. {$MODULE_order_details}
  5. <b>Вес товаров в корзине: {$TOTAL_WEIGHT} кг.</b>
  6.  
  7. </div>
  8.  
  9. </div>

а вот здесь - в "boxes\box_cart.html" - не работает (выводит "Вес товаров в корзине: кг.")

  1. {config_load file="$language/lang_$language.conf" section="boxes"}
  2. {config_load file="$language/lang_$language.conf" section="index"}
  3. {if $deny_cart neq 'true'}
  4. <!-- Бокс корзина -->
  5. <div id="divShoppingCart">
  6. <div id="boxCart">
  7. <div class="boxheader">
  8. <p>&nbsp;&raquo;&nbsp;<a href="{$LINK_CART}">{#heading_cart#}</a></p>
  9. </div>
  10. <div class="boxcontent">
  11. <b>Вес товаров в корзине: {$TOTAL_WEIGHT} кг.</b>
  12. {if $empty=='false'}
  13. {foreach name=aussen item=products_data from=$products}
Ссылка на сообщение
Поделиться на другие сайты

Так наверное в /templates/шаблон/source/boxes/shopping_cart.php не добавили метку именно для бокса, поэтому и не работает.

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

Точно.. Не добавил...  :)

Но... после добавления в /templates/шаблон/source/boxes/shopping_cart.php все равно не работает... И даже пробовал сменить $vamTemplate-> на $box-> ... Все равно "Вес товаров в корзине: кг."

  1. $box->caching = 0;
  2. $box->assign('language', $_SESSION['language']);
  3. $box_shopping_cart = $box->fetch(CURRENT_TEMPLATE.'/boxes/box_cart.html');
  4. $vamTemplate->assign('box_CART', $box_shopping_cart);
  5. $vamTemplate->assign('TOTAL_WEIGHT', $_SESSION['cart']->show_weight());
  6. ?>
Ссылка на сообщение
Поделиться на другие сайты

Смотрите как определена метка LINK_CART к примеру.

 

и делайте по аналогии, сраз после LINK_CART свою строку добавляйте.

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

Долго искал аналогию и не находил...  :)

 

Оказалось все очень просто... Кстати, я это уже делал, только вставлял строчку в конец, а не после LINK_CART. Спасибо! Вот так все заработало:

  1. // GV Code End
  2. $box->assign('LINK_CART', vam_href_link(FILENAME_SHOPPING_CART, '', 'SSL'));
  3. $box->assign('TOTAL_WEIGHT',$_SESSION['cart']->show_weight());
  4. $box->assign('LINK_CHECKOUT', vam_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
  5. $box->assign('products', $products_in_cart);
  6.  
  7. $box->caching = 0;
  8. $box->assign('language', $_SESSION['language']);
  9. $box_shopping_cart = $box->fetch(CURRENT_TEMPLATE.'/boxes/box_cart.html');
  10. $vamTemplate->assign('box_CART', $box_shopping_cart);
  11. ?>
Ссылка на сообщение
Поделиться на другие сайты

в следующий раз вставляйте прямо в нужное место шаблона

{php}$_SESSION['cart']->show_weight();{/php}

 

и не парьтесь с поисками остальных файлов.

не совсем правильно по логике. может быть .зато экономия времени приличная.

Ссылка на сообщение
Поделиться на другие сайты
  В 14.10.2013 в 18:42, N_Zinyak сказал:

в следующий раз вставляйте прямо в нужное место шаблона

{php}$_SESSION['cart']->show_weight();{/php}

В боксе не работает...  :(

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

Скажите, пожалуйста, каким образом у значения метки {$module_data.PRODUCTS_WEIGHT} в шаблоне обрезать нули справа? А то получается - вес товара 1.200 кг или 0.030 кг ... Т.е. если вес в килограммах, то что выше килограмма смотрится как в примере "тысяча двести килограмм", :)  учитывая что точка - разделитель тысяч. Если поставить вес в граммах, то получается вес во втором примере "30 тысячных грамма"... Нужно бы убрать нули справа, тогда получится все ок: 1.2 кг. и 0.03 кг. 

 

ЗЫ. Всякие мои дикие конструкции типа: {php}echo floatval('{$module_data.PRODUCTS_WEIGHT}');{/php} приводят либо к ошибкам, либо к "0" :D

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