Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Yano4ka

Recommended Posts

Посоветуйте, пожалуйста, как вместо "цена ДОГОВОРНАЯ", которая после добавления в 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

 

Да. Спасибо!

 

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

 

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

 

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

 

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 пропишите свое "по запросу"

 

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

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

 

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

 

 

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

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.