Автор Тема: Вывод закупочной цены в админке  (Прочитано 1086 раз)

28 Февраль 2015, 13:54:10
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте, уважаемые форумчане.
Столкнулся с потребностью выводить на странице заказа в админке закупочную цену каждого товара вместе с ценой его продажи в магазине. Путем проб и ошибок нашел место, куда писать код (AdminOrders.php) и из модуля Stockstats выцепил кусок кода вывода закупочной цены в админке:
<td>'.Tools::displayPrice($product['wholesale_price'], $currency).'</td>Просто копировать-вставить ничего не дало - в нужном месте выводится цена, но она всегда равна $0.00.
На этом мои познания закончились и я пока в тупике. Шуршание по нашим и зарубежным форумам результата не дало.
Помогите правильно прописать код. Буду благодарен любой помощи.
28 Февраль 2015, 14:35:41
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
28 Февраль 2015, 14:50:32
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
28 Февраль 2015, 15:21:49
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
В этом файле AdminOrders.php используются переменные класса Orders.php. Там нет переменной wholesale_price. Прежде чем использовать переменную, ее нужно определить.
$products = $this->getProducts();
foreach ($products as $product)
{
//вот тут добавлять $product['wholesale_price'] в шаблон или к объекту Order
}
28 Февраль 2015, 15:49:54
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В этом файле AdminOrders.php используются переменные класса Orders.php. Там нет переменной wholesale_price. Прежде чем использовать переменную, ее нужно определить.
$products = $this->getProducts();
foreach ($products as $product)
{
//вот тут добавлять $product['wholesale_price'] в шаблон или к объекту Order
}
Если я правильно понял, мне нужно определить переменную wholesale_price, чтобы она начала корректно считаться и отображаться после правки AdminOrders.php. Ее нужно определить в классе Orders.php (нашел только клас OrdeR.php). Дальше ничего не понял. Извините.
28 Февраль 2015, 16:02:43
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Данные на странице заказа в админке беруться из таблицы ps_order_detail, а в ней нет данных о закупочной цене. Поэтому нужно сначала их получить из таблицы ps_product.

/* Products List */
....
foreach ($products as $k => $product)
{

         $productProduct= new Product($product['product_id'];
.....
<td align="center">'.$productProduct->wholesale_price.'</td>
02 Март 2015, 19:16:31
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Данные на странице заказа в админке беруться из таблицы ps_order_detail, а в ней нет данных о закупочной цене. Поэтому нужно сначала их получить из таблицы ps_product.

/* Products List */
....
foreach ($products as $k => $product)
{

         $productProduct= new Product($product['product_id'];
.....
<td align="center">'.$productProduct->wholesale_price.'</td>

Править нужно файл AdminOrders.php?
Пытаюсь прописать строчку
$productProduct= new Product($product['product_id'];и лезут ошибки, или unexpected ";", или unexpected T_VARIABLE.
Перепробовал массу вариаций.
02 Март 2015, 20:01:43
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Ошибка в коде, забыли точку с запятой поставить или запятая вместо точки или ...
31 Август 2018, 14:08:50
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени суток.
PS 1.6.1.19
Подскажите как выводить в админке, в списке товаров (каталог\товары) вместо базовой цены закупочную цену?
На данный момент выводится базовая цена и итоговая цена и они равны.
Заранее спасибо.
31 Август 2018, 19:41:26
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
В файле /controllers/admin/AdminProductsController.php меняют $this->_list[$i]['price']
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
01 Сентябрь 2018, 09:18:44
Ответ #10
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В файле /controllers/admin/AdminProductsController.php меняют $this->_list[$i]['price']
Меняют ['price'] на ['wholesale_price']
и у меня в этом файле касающееся этого кода вот такая строка:
$this->_list[$i]['price'] = Tools::convertPrice($this->_list[$i]['price'], $this->context->currency, true, $this->context);
мне нужно изменить на
$this->_list[$i]['wholesale_price'] = Tools::convertPrice($this->_list[$i]['price'], $this->context->currency, true, $this->context);
я все правильно понял?
(по моему что то не правильно...)
Спасибо!
01 Сентябрь 2018, 10:25:14
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Меняют ['price'] на ['wholesale_price']
Правильно.
01 Сентябрь 2018, 10:55:21
Ответ #12
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Меняют ['price'] на ['wholesale_price']
Правильно.
Было
$this->_list[$i]['price'] = Tools::convertPrice($this->_list[$i]['price'], $this->context->currency, true, $this->context);
                $this->_list[$i]['price_tmp'] = Product::getPriceStatic($this->_list[$i]['id_product'], true, null,
                    (int)Configuration::get('PS_PRICE_DISPLAY_PRECISION'), null, false, true, 1, true, null, null, null, $nothing, true, true,
                    $context);
сделал
$this->_list[$i]['wholesale_price'] = Tools::convertPrice($this->_list[$i]['wholesale_price'], $this->context->currency, true, $this->context);
                $this->_list[$i]['price_tmp'] = Product::getPriceStatic($this->_list[$i]['id_product'], true, null,
                    (int)Configuration::get('PS_PRICE_DISPLAY_PRECISION'), null, false, true, 1, true, null, null, null, $nothing, true, true,
                    $context);
Как отображалась Базовая цена, так и отображается...
Что сделано не правильно?
Может у меня просто цены не правильно занесены?
(Изначально во всех товарах установлена оптовая цена и розничная цена, для проверки отображения в списке товаров так же добавил еще и значение цены за единицу, равную оптовой цене) Ничего не изменилось...
01 Ноябрь 2018, 19:18:16
Ответ #13
  • Фрилансер
  • *
  • Сообщений: 112
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Может кто-нибудь подскажет как поправить?
01 Ноябрь 2018, 19:58:11
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
По моему, $this->fields_list['price'] менять нужно.