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


Как добавить вес товара в корзину?


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

#1 temnii

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

  • Пользователи
  • PipPip
  • 20 сообщений
Репутация: 1
Начинающий

Отправлено 30 May 2011 - 10:55 AM

Открываем:
core\tpl\user\default\shopping_cart.tpl.html

После:
{$smarty.const.TABLE_PRODUCT_QUANTITY}


Вставляем:
{$smarty.const.ADMIN_PRODUCT_WEIGHT}

Перед:
{$cart_content[i].cost}

Вставляем:
{$cart_content[i].weight}

А также для вывода общего веса перед:

{$smarty.const.TABLE_TOTAL}

Вставляем:


Общий вес:

{$total_weight}

 



Открываем файл:
core\includes\shopping_cart.php

Перед:
$smarty->assign("cart_content", $resCart["cart_content"] );

Вставляем:
//пересчет веса

$total_weight = 0;

foreach($resCart["cart_content"] as $key => $pr_in_cart)

{

$resCart["cart_content"][$key]["weight"] = (int)$pr_in_cart["quantity"] * $pr_in_cart["weight"];

// общий вес

$total_weight += $resCart["cart_content"][$key]["weight"];

}

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

Открываем файл:
core\functions\cart_functions.php

Меняем функцию:
cartGetCartContent

На эту:
function cartGetCartContent()
{
$cart_content = array();
$total_price = 0;
$freight_cost = 0;
if (isset($_SESSION["log"])) //get cart content from the database
{
$q = db_query("select itemID, Quantity FROM ".SHOPPING_CARTS_TABLE.
" WHERE customerID=".(int)regGetIdByLogin($_SESSION["log"]));
while ($cart_item = db_fetch_row($q))
{

// get variants
$variants=GetConfigurationByItemId( $cart_item["itemID"] );

// shopping cart item
$q_shopping_cart_item = db_query("select productID from ".
SHOPPING_CART_ITEMS_TABLE." where ".
" itemID=".(int)$cart_item["itemID"]);
$shopping_cart_item = db_fetch_row( $q_shopping_cart_item );

//////////////////////////

$q_products = db_query("select name, Price, productID, min_order_amount, shipping_freight, free_shipping, product_code, weight FROM ".
PRODUCTS_TABLE." WHERE productID=".(int)$shopping_cart_item["productID"]);

//////////////////////////////

if ( $product = db_fetch_row($q_products) )
{
$costUC = GetPriceProductWithOption( $variants,
$shopping_cart_item["productID"] );
$tmp =
array(
"productID" => $product["productID"],
"id" => $cart_item["itemID"],
"name" => $product["name"],
"quantity" => $cart_item["Quantity"],
"free_shipping" => $product["free_shipping"],
"costUC" => $costUC,
"cost" => show_price($cart_item["Quantity"]*
GetPriceProductWithOption($variants,
$shopping_cart_item["productID"])),
"product_code" => $product["product_code"],

//////////////////////////

"weight" => $product["weight"]);
$freight_cost += $cart_item["Quantity"]*$product["shipping_freight"];
$strOptions=GetStrOptions(
GetConfigurationByItemId( $tmp["id"] ));
if ( trim($strOptions) != "" )
$tmp["name"].=" (".$strOptions.")";
if ( $product["min_order_amount"] > $cart_item["Quantity"] )
$tmp["min_order_amount"] = $product["min_order_amount"];
$cart_content[] = $tmp;
$total_price += $cart_item["Quantity"]*
GetPriceProductWithOption($variants,
$shopping_cart_item["productID"]);
}
}
}
else //unauthorized user - get cart from session var
{
$total_price = 0; //total cart value
$cart_content = array();

//shopping cart items count
if ( isset($_SESSION["gids"]) )
for ($j=0; $j {
if ($_SESSION["gids"][$j])
{
$session_items[]=
CodeItemInClient($_SESSION["configurations"][$j],
$_SESSION["gids"][$j])

////////////////
$q = db_query("select name, Price, shipping_freight, free_shipping, product_code, weight FROM ".
PRODUCTS_TABLE." WHERE productID=".(int)$_SESSION["gids"][$j]);
//////////////////////////

if ($r = db_fetch_row($q))
{
$costUC = GetPriceProductWithOption(
$_SESSION["configurations"][$j],
$_SESSION["gids"][$j])/* * $_SESSION["counts"][$j]*/;
$id = $_SESSION["gids"][$j];
if (count($_SESSION["configurations"][$j]) > 0)
{
for ($tmp1=0;$tmp1 }
$tmp = array(
"productID" => $_SESSION["gids"][$j],
"id" => $id, //$_SESSION["gids"][$j],
"name" => $r[0],
"quantity" => $_SESSION["counts"][$j],
"free_shipping" => $r["free_shipping"],
"costUC" => $costUC,
"cost" => show_price($costUC * $_SESSION["counts"][$j]),
"product_code" => $r["product_code"],
"weight" => $product["weight"]);
$strOptions=GetStrOptions( $_SESSION["configurations"][$j] );
if ( trim($strOptions) != "" )
$tmp["name"].=" (".$strOptions.")";
$q_product = db_query( "select min_order_amount, shipping_freight from ".PRODUCTS_TABLE.
" where productID=".
(int)$_SESSION["gids"][$j] );
$product = db_fetch_row( $q_product );
if ( $product["min_order_amount"] > $_SESSION["counts"][$j] )
$tmp["min_order_amount"] = $product["min_order_amount"];
$freight_cost += $_SESSION["counts"][$j]*$product["shipping_freight"];
$cart_content[] = $tmp;
$total_price += GetPriceProductWithOption(
$_SESSION["configurations"][$j],
$_SESSION["gids"][$j] )*$_SESSION["counts"][$j];
}
}
}
}
return array(
"cart_content" => $cart_content,
"total_price" => $total_price,
"freight_cost" => $freight_cost );
}

ГОТОВО!!!
  • 0

#2 vsupport

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

  • Администраторы
  • 758 сообщений
Репутация: 31
Ассистент

Отправлено 30 May 2011 - 08:48 PM

У Вас работает это?
  • 0

#3 fleyg

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений
Репутация: 0
Начинающий

Отправлено 27 September 2011 - 10:39 AM

Ругается
Parse error: syntax error, unexpected T_VARIABLE in /home/braun-mall/data/www/braun-mall.ru/core/functions/cart_functions.php on line 356
  • 0

#4 kery

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

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

Отправлено 02 December 2011 - 09:32 PM

Не работает, есть рабочий вариант, поделитесь!
  • 0

#5 Alextt1989

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений
Репутация: 0
Начинающий

Отправлено 06 December 2011 - 01:12 PM

У меня тоже не работает:((
  • 0

#6 Valentin

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

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

Отправлено 12 January 2013 - 06:48 AM

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

#7 Valentin

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

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

Отправлено 14 January 2013 - 08:51 AM

Подскажите, где заканчивается функция cartGetCartContent
В файле core\functions\cart_functions.php.

В инструкции сказано:
Открываем файл:
core\functions\cart_functions.php

Меняем функцию:
cartGetCartContent
На эту:
И дальше идёт большой блок самой функции.
Я так понял что в указанном файле необходимо заменить аналогичный блок который начинается с
cartGetCartContent
Но вот где эта функция заканчивается не могу понять, какой строкой?
(функция полностью в первом посте)
  • 0
Социально-информационный проект Nvda.ru о бесплатной программе экранного доступа Nvda для незрячих и слабовидящих.
С уважением ко всем Valentin-Kupriyanov.ru

#8 badisoft

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

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

Отправлено 14 January 2013 - 12:38 PM

Подскажите, где заканчивается функция cartGetCartContent

Тело функции заключено в фигурные скобки.
Но можно куда проще - она заканчивается там, где начинается следующая функция (function .....).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#9 Valentin

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

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

Отправлено 16 January 2013 - 11:35 AM

Мои испытание не увенчались успехом,
проделал все правки по инструкции, заменил функцию cartGetCartContent
от строки 276
и по 408
до function cartCheckMinOrderAmount()
В итоге получил пустой экран.
Попутно выяснил, что ошибка в самой функции, а возможно и в некоректной замене, так как вернув на место оригинал cart_functions.php
страница отобразилась нормально.
Хотя возможно и ошибаюсь.
Но где-то есть несовместимость это наверняка.

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