joomla+virtuemart не корректно работет

Разговоры ни о чём

Модератор: vadim64

Аватара пользователя
Electronik
капитан
Сообщения: 1593
Зарегистрирован: 2008-11-15 17:32:56
Откуда: Минск
Контактная информация:

joomla+virtuemart не корректно работет

Непрочитанное сообщение Electronik » 2010-10-16 20:41:01

Устроился на новую работу, у них есть сайт на joomla, с прикрученным магазином virtuemart, так вот , в шаблон товаров, было добавлено поле "id"(добавлял не я, поэтому не знаю как оно добавлялось) в которое вписывается в ручную id товара, при заказе формируется файл и уходит на почту, этот файл потом загружается в 1С для контроля расходов. Проблема в том что не со всех товаров подхватывается этот id, хотя на всех товарах он проставлен и в базе MySQL он есть, не могу понять причину такого поведения, у всех групп и товаров стоят одинаковые параметры, иногда id не берутся со всей группы, иногда с каких-то определённых товаров из группы X.

Вопрос как отследить из-за чего с этих товаров не берутся id, в базе есть, в приходящем файле нет.
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: joomla+virtuemart не корректно работет

Непрочитанное сообщение ProFTP » 2010-10-20 2:21:47

видимо никто не знает
в /dev/null про CMS там часто беседуют, может кто-то подскажет, перенесу туда...
http://forum.lissyara.su/viewtopic.php? ... 1&start=50
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
Electronik
капитан
Сообщения: 1593
Зарегистрирован: 2008-11-15 17:32:56
Откуда: Минск
Контактная информация:

Re: joomla+virtuemart не корректно работет

Непрочитанное сообщение Electronik » 2010-10-20 10:11:54

Спасибо.
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог

Аватара пользователя
Electronik
капитан
Сообщения: 1593
Зарегистрирован: 2008-11-15 17:32:56
Откуда: Минск
Контактная информация:

Re: joomla+virtuemart не корректно работет

Непрочитанное сообщение Electronik » 2010-10-21 14:52:44

Вот функция получения id, товар разделен, на половинные порции.

Код: Выделить всё

while($dboi->next_record()) 
        {
            $productNumber++;
            $xmlFile['tag']['menu'][$productNumber]['product_name'] = $dboi->f("product_name");
            //$xmlFile['tag']['menu'][$productNumber]['id'] = $dboi->f("product_id");
            
            $q  = "SELECT * FROM #__{vm}_product_price WHERE product_id=".$dboi->f("product_id");
            $db_price->query($q);
            $db_price->next_record();
            $quantity = $dboi->f("product_quantity");
            
            // Check the quantity
            if( floor($quantity) == $quantity ){
                $xmlFile['tag']['menu'][$productNumber]['quantity'] = $quantity;
                $xmlFile['tag']['menu'][$productNumber]['price'] = 
                    $db_price->f("product_price")*$xmlFile['tag']['menu'][$productNumber]['quantity'];
            } if( floor($quantity) + 0.5 == $quantity )
                                {
                //Adding integer part of the quantity
                if($quantity >= 1)
                {

                                        $xmlFile['tag']['menu'][$productNumber]['id'] = $db_price->f("pizza_id");
                    $xmlFile['tag']['menu'][$productNumber]['quantity'] = floor($quantity);
                    $xmlFile['tag']['menu'][$productNumber]['price'] = 
                        $db_price->f("product_price")*floor($xmlFile['tag']['menu'][$productNumber]['quantity']);
                    $xmlFile['tag']['order_summ'] += $xmlFile['tag']['menu'][$productNumber]['price'];
                    $productNumber++;
                } else
                //Adding 0.5 part of the quantity
                $xmlFile['tag']['menu'][$productNumber]['id'] = $db_price->f("pizza_id_half");
                $xmlFile['tag']['menu'][$productNumber]['product_name'] = $dboi->f("product_name");
                $xmlFile['tag']['menu'][$productNumber]['quantity'] = 0.5;
                $xmlFile['tag']['menu'][$productNumber]['price'] = $db_price->f("product_price_half");
            } else {
                $xmlFile['tag']['menu'][$productNumber]['quantity'] = round($quantity);
                $xmlFile['tag']['menu'][$productNumber]['price'] = 
                    $db_price->f("product_price")*$xmlFile['tag']['menu'][$productNumber]['quantity'];
            }
             
я так понимаю что проблема в строке

Код: Выделить всё

if( floor($quantity) + 0.5 == $quantity ) 
потому что при отладке, после неё он всё пропускает и перескакивает сразу на

Код: Выделить всё

$xmlFile['tag']['menu'][$productNumber]['quantity'] = round($quantity); 
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог

Аватара пользователя
Electronik
капитан
Сообщения: 1593
Зарегистрирован: 2008-11-15 17:32:56
Откуда: Минск
Контактная информация:

Re: joomla+virtuemart не корректно работет

Непрочитанное сообщение Electronik » 2010-10-21 15:06:16

И обрабатывает почему-то только половинные порции.
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог

Аватара пользователя
Electronik
капитан
Сообщения: 1593
Зарегистрирован: 2008-11-15 17:32:56
Откуда: Минск
Контактная информация:

Re: joomla+virtuemart не корректно работет

Непрочитанное сообщение Electronik » 2010-10-21 15:47:46

Разобрался.
тут начиналась обработка половинных заказов

Код: Выделить всё

if( floor($quantity) + 0.5 == $quantity )  
так что перед ней нужно было просто вставить фун-цию получения "целого" кода, т.е правильно должно быть так

Код: Выделить всё

 // Check the quantity
            if( floor($quantity) == $quantity ){
                $xmlFile['tag']['menu'][$productNumber]['id'] = $db_price->f("pizza_id");
                $xmlFile['tag']['menu'][$productNumber]['quantity'] = $quantity;
                $xmlFile['tag']['menu'][$productNumber]['price'] = 
                    $db_price->f("product_price")*$xmlFile['tag']['menu'][$productNumber]['quantity'];
 
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог