Перейти к содержанию
shinarthas

Изменить cart.php и cart.tpl

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

Добрый день форумчане. Подскажите пожалуйста как можно добавить новое поле в массив $products в cart.tpl. 

Это поле находиться в oc_cart столбик option. Пытался добавить его в \system\library\cart.php но после добавление нового поля не видно. выглядит примерно так:

cart.php -> функция getproducts() 

$product_data[] = array(
					'design_file'     => $cart['option'],
					'cart_id'         => $cart['cart_id'],
					'product_id'      => $product_query->row['product_id'],
					'name'            => $product_query->row['name'],
					'model'           => $product_query->row['model'],
					'shipping'        => $product_query->row['shipping'],
					'image'           => $product_query->row['image'],
					'option'          => $option_data,
					'download'        => $download_data,
					'quantity'        => $cart['quantity'],
					'minimum'         => $product_query->row['minimum'],
					'subtract'        => $product_query->row['subtract'],
					'stock'           => $stock,
					'price'           => ($price + $option_price),
					'total'           => ($price + $option_price) * $cart['quantity'],
					'reward'          => $reward * $cart['quantity'],
					'points'          => ($product_query->row['points'] ? ($product_query->row['points'] + $option_points) * $cart['quantity'] : 0),
					'tax_class_id'    => $product_query->row['tax_class_id'],
					'weight'          => ($product_query->row['weight'] + $option_weight) * $cart['quantity'],
					'weight_class_id' => $product_query->row['weight_class_id'],
					'length'          => $product_query->row['length'],
					'width'           => $product_query->row['width'],
					'height'          => $product_query->row['height'],
					'length_class_id' => $product_query->row['length_class_id'],
					'recurring'       => $recurring
				);

тут поле  option я заполняю сам, своими значениями и названием полей. Стоит ли создать отдельный столбик в oc_cart для этого?

 

cart.tpl :

<?php print_r($products[0]); ?>

результат такой:

 

Array ( [cart_id] => 29 [thumb] => http://104.236.136.140/image/cache/catalog/Products/dg-designer-d210cf37146247065412058767810826745-47x47.png [name] => TshirtDanil [model] => TshirtDanil [option] => Array ( ) [recurring] => [quantity] => 3 [stock] => 1 [reward] => [price] => $21.00 [total] => $63.00 [href] => http://104.236.136.140/index.php?route=product/product&product_id=89 )

 

А ожидаю такое:

 

Array ([design_file] => usersdesign-12343434.png [cart_id] => 29 [thumb] => http://104.236.136.140/image/cache/catalog/Products/dg-designer-d210cf37146247065412058767810826745-47x47.png [name] => TshirtDanil [model] => TshirtDanil [option] => Array ( ) [recurring] => [quantity] => 3 [stock] => 1 [reward] => [price] => $21.00 [total] => $63.00 [href] => http://104.236.136.140/index.php?route=product/product&product_id=89 )

 

Вот так выглядит запись в БД:

post-713143-0-29860100-1469540112_thumb.jpg

Заранее спасибо за помощь :oops: .

 

P.S. как ни странно такой вариант работает: 

$product_data[] = array(
					'cart_id'         => $cart['option'],
					'product_id'      => $product_query->row['product_id'],
					'name'            => $product_query->row['name'],
.........................
);

post-713143-0-29860100-1469540112_thumb.jpg

Изменено пользователем shinarthas

Поделиться сообщением


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

catalog\controller\checkout\cart.php line154

$data['products'][] = array(
					'design_file'=>$product['design_file'],
					'cart_id'   => $product['cart_id'],
					'thumb'     => $image,
					'name'      => $product['name'],
					'model'     => $product['model'],
					'option'    => $option_data,
					'recurring' => $recurring,
					'quantity'  => $product['quantity'],
					'stock'     => $product['stock'] ? true : !(!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning')),
					'reward'    => ($product['reward'] ? sprintf($this->language->get('text_points'), $product['reward']) : ''),
					'price'     => $price,
					'total'     => $total,
					'href'      => $this->url->link('product/product', 'product_id=' . $product['product_id'])
				);

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От avk
      Добрый день,
      в логах появилась ошибка PHP Notice:  unserialize() [<a href='function.unserialize'>function.unserialize</a>]: Error at offset 0 of 3 bytes in /system/library/cart.php on line 23
      Перечитал все форумы - ответов не нашел с чем связана.
      Стоит OpenCart Version 2.0.2.0
      Как я думаю, ошибка как то связана с корзиной. Пробовал очистить ошибки и добавить товары в корзину. Новых ошибок не появилось.
      На сайте стоит модуль Simple.
      Кто сталкивался или может знает куда копать, что проверить? Подскажите, пожалуйста! Заранее спасибо.
    • От Semivan
      Задача изменить "х 1" на "1 шт"

       
      Нашел такой код в .../template/common/cart.tpl тема дефолт + плагин simplecheckout
      <td class="text-right">x&nbsp;1</td> Изменил на такой...
      <td class="text-right">1&nbsp;шт</td> Без изменений.
      Кеш сбросил.
       
    • От Kanapatiy
      Здравствуйте! Немного перепутал папки и вставил файл "Cart.php" из папки system/library в папку catalog/controller/checkout и заменил тамошний файл. Как результат - отвалилась корзина. Помогите пожалуйста! Где можно взять файл cart из папки catalog/controller/checkout? (ocStore 1.5.4.1) Буду очень благодарен за помощь ибо сайт не мой, и уж очень мне стремно
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.