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

[Решено?..] цена "договорная"

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

Посоветуйте, пожалуйста, как вместо "цена ДОГОВОРНАЯ", которая после добавления в currency.php:

 

if ($format && (float)$value == 0) {
return 'Цена ДОГОВОРНАЯ';
 }
 
 
появилась и в пустой корзине, и в доставке "самовывоз", вернуть им изначальное значение 0,00 руб., при этом что бы изменения не коснулись продукции?
 
Спасибо.

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


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

С корзиной почти решила: изменила файл в контролере cart.php

 

if ($this->currency->format($total) == 0) {
            $totalzero = '0.00 руб.';
            } else {
            $totalzero = $this->currency->format($total);
            }
 

$this->data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $totalzero );
 
 
работать работает, но если добавить товар с договорной ценой, то сначала показывает "цена договорная", а потом снова обнуляет, если на корзине стрелочку вниз нажать. Не критично, конечно, но была бы признательна, если подскажете, как подправить.
 
 
для доставки "самовывоз" вопрос по-прежнему актуальный.
Изменено пользователем AlexFisher
code

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


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

"стрелочка вниз на корзине" - это в шапке которая?

Тогда вам в модуль корзины и в common.js

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


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

"стрелочка вниз на корзине" - это в шапке которая?

Тогда вам в модуль корзины и в common.js

 

Да. Спасибо!

 

Доставку тоже нашла, где исправить.

 

Но тут другой вопрос в связи с изменениями вылез:

 

Если положить в корзину товар с ценой "по запросу" (*изменила с "договорной"), то выпадает такая ошибка:

 

Warning: Invalid argument supplied for foreach() in /*/**/*.*/docs/catalog/model/total/paymentmethoddiscounts.php on line 20

 

а в 20й строке блок начинается:

foreach($discounts as $discount){

if ($discount['paymentmethod']==$this->session->data['payment_method']['code']) {
$this->load->language('total/paymentmethoddiscounts');

$number=0;

if($discount['znak']){
if($discount['mode']) $number = -$total*$discount['number']/100; // -%
else  $number = -$discount['number']; // -ed
}else{
if($discount['mode']) $number =  $total*$discount['number']/100; // +%
else  $number =  $discount['number']; // +ed 
}

$total_data[] = array( 
'code'       => 'paymentmethoddiscounts',
'title'      => ($discount['znak']?$this->language->get('text_skidka'):$this->language->get('text_nacenka')).sprintf($this->language->get('text_paymentmethoddiscounts'), $payment_method),
'text'       => $this->currency->format($number),
'value'      => $number,
'sort_order' => $this->config->get('paymentmethoddiscounts_sort_order')
);
//print_r($total_data);
if ($discount['tax_class_id']) {
$tax_rates = $this->tax->getRates($number, $discount['tax_class_id']);

foreach ($tax_rates as $tax_rate) {
if (!isset($taxes[$tax_rate['tax_rate_id']])) {
$taxes[$tax_rate['tax_rate_id']] = $tax_rate['amount'];
} else {
$taxes[$tax_rate['tax_rate_id']] += $tax_rate['amount'];
}
}
}

$total += $number;
}

}

Можете ли помочь поправить ошибку?

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


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

$discounts - не массив.

В качестве решения по имеющейся информации могу предложить такой костыль:

В catalog/model/total/paymentmethoddiscounts.php перед 

foreach($discounts as $discount){

добавьте следующее:

if ((!isset($discounts)) || (!is_array($discounts))) {
    $discounts = array();
}

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


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

 

$discounts - не массив.

В качестве решения по имеющейся информации могу предложить такой костыль:

В catalog/model/total/paymentmethoddiscounts.php перед 

foreach($discounts as $discount){

добавьте следующее:

if ((!isset($discounts)) || (!is_array($discounts))) {
    $discounts = array();
}

 

 

СПАСИБО ОГРОМНОЕ!!! ПОМОГЛО!

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


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

"стрелочка вниз на корзине" - это в шапке которая?

Тогда вам в модуль корзины и в common.js

 

не смогла разобраться :(

 

Я так думаю, что в cart.php условие нужно как-то сформулировать, где если цена и количество = 0, то тогда  $totalzero = '0.00 руб.'

 

 if ($this->currency->format($total) == 0) {

            $totalzero = '0.00 руб.';

            } else {

            $totalzero = $this->currency->format($total);

            }

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


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

Это типа мы не ищем легких путей?

Предлагаю теперь еще все баги этого кривого пути исправлять налету, в response.php

 

 

p.s. верните все как было, и просто в catalog/controller/catalog/product.php или даже в catalog/view/catalog/product.tpl пропишите свое "по запросу"

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


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

Это типа мы не ищем легких путей?

Предлагаю теперь еще все баги этого кривого пути исправлять налету, в response.php

 

 

p.s. верните все как было, и просто в catalog/controller/catalog/product.php или даже в catalog/view/catalog/product.tpl пропишите свое "по запросу"

 

Пробовала править продукт, но тогда в корзину добавляется товар со стоимостью 0 руб., на который можно выписать счет, а это не гуд. 

Сейчас все функционирует так как хотела. В счете и в корзине появляется цена по запросу. В каталоге тоже. 

 

Единственный баг это только со стрелочкой в корзине, которая в шапке. В принципе ни на что это не влияет, кроме как на мой душевный комфорт, что не все идеально смотрится, как хотелось бы. В аллегории, это как пыль на очень высоком шкафу... видеть видишь, а достать и вытереть не можешь :)

 

 

з.ы.: не судите строго, "копаю", как могу :) 

для семьи делаю магазинчик сама просто потому, что заказать на стартапе не имею возможности, а программирование это не мой "конёк".

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


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

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

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

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

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

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

Войти

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

Войти

  • Последние посетители   0 пользователей онлайн

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

×

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

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