Страница 1 из 1
joomla+virtuemart не корректно работет
Добавлено: 2010-10-16 20:41:01
Electronik
Устроился на новую работу, у них есть сайт на joomla, с прикрученным магазином virtuemart, так вот , в шаблон товаров, было добавлено поле "id"(добавлял не я, поэтому не знаю как оно добавлялось) в которое вписывается в ручную id товара, при заказе формируется файл и уходит на почту, этот файл потом загружается в 1С для контроля расходов. Проблема в том что не со всех товаров подхватывается этот id, хотя на всех товарах он проставлен и в базе MySQL он есть, не могу понять причину такого поведения, у всех групп и товаров стоят одинаковые параметры, иногда id не берутся со всей группы, иногда с каких-то определённых товаров из группы X.
Вопрос как отследить из-за чего с этих товаров не берутся id, в базе есть, в приходящем файле нет.
Re: joomla+virtuemart не корректно работет
Добавлено: 2010-10-20 2:21:47
ProFTP
видимо никто не знает
в /dev/null про CMS там часто беседуют, может кто-то подскажет, перенесу туда...
http://forum.lissyara.su/viewtopic.php? ... 1&start=50
Re: joomla+virtuemart не корректно работет
Добавлено: 2010-10-20 10:11:54
Electronik
Спасибо.
Re: joomla+virtuemart не корректно работет
Добавлено: 2010-10-21 14:52:44
Electronik
Вот функция получения 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'];
}
я так понимаю что проблема в строке
потому что при отладке, после неё он всё пропускает и перескакивает сразу на
Код: Выделить всё
$xmlFile['tag']['menu'][$productNumber]['quantity'] = round($quantity);
Re: joomla+virtuemart не корректно работет
Добавлено: 2010-10-21 15:06:16
Electronik
И обрабатывает почему-то только половинные порции.
Re: joomla+virtuemart не корректно работет
Добавлено: 2010-10-21 15:47:46
Electronik
Разобрался.
тут начиналась обработка половинных заказов
так что перед ней нужно было просто вставить фун-цию получения "целого" кода, т.е правильно должно быть так
Код: Выделить всё
// 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'];