vitalik 0 Опубликовано 3 мая, 2011 Жалоба Share Опубликовано 3 мая, 2011 Здравствуйте. Подскажите пожалуйста, возможно ли выводить в корзине (order_details.html) количество товара на складе на данный момент, или кол-во склада атрибутов {$item_data.STOCK} на данный момент (если у товара выбраны атрибуты)? Если я правильно понимаю, нужно в файле order_details.html что-то добавить вот в эти строки, где выводятся сами атрибуты: {foreach key=key_data item=item_data from=$module_data.ATTRIBUTES} <tr> <td>{$item_data.NAME}:</td> <td align="left">{$item_data.VALUE_NAME}</td> </tr> {/foreach} Если не сложно, подскажите пожалуйста, а то не силен я в этом, разбираюсь чисто интуитивно :) У меня некоторые клиенты добавляют товар в корзину, которого в данный момент нет на складе, и время от времени заходят в магазин посмотреть, не появился ли он. Данная опция была бы полезна. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 3 мая, 2011 Жалоба Share Опубликовано 3 мая, 2011 По умолчанию нельзя. Но можно попробовать в /includes/modules/order_details_cart.php поменять: $module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => vam_get_attributes_model(vam_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check);[/code] на: [code] $module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => vam_get_attributes_model(vam_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'NAME' => $products[$i][$option]['products_options_name'], 'STOCK' => vam_get_attributes_stock(vam_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check);function vam_get_attributes_stock($product_id, $attribute_name,$options_name,$language='') { if ($language=='') $language=$_SESSION['languages_id']; $options_value_id_query=vam_db_query("SELECTpa.attributes_stockFROM".TABLE_PRODUCTS_ATTRIBUTES." paInner Join ".TABLE_PRODUCTS_OPTIONS." po ON po.products_options_id = pa.options_idInner Join ".TABLE_PRODUCTS_OPTIONS_VALUES." pov ON pa.options_values_id = pov.products_options_values_idWHEREpo.language_id = '".$language."' ANDpo.products_options_name = '".$options_name."' ANDpov.language_id = '".$language."' ANDpa.products_id = '".$product_id."' AND pov.products_options_values_name = '".$attribute_name."'"); $options_attr_data = vam_db_fetch_array($options_value_id_query); return $options_attr_data['attributes_stock']; } и в шаблоне использовать метку {$item_data.STOCK} Ссылка на сообщение Поделиться на другие сайты
vitalik 0 Опубликовано 3 мая, 2011 Автор Жалоба Share Опубликовано 3 мая, 2011 Что-то не получилось. Как только поменял в order_details_cart.php , сразу в корзине ошибку выдавать стал: Fatal error: Call to undefined function vam_get_attributes_stock() in /var/www/.../htdocs/includes/modules/order_details_cart.php on line 75 Версия у меня 1.62, на всякий случай. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 3 мая, 2011 Жалоба Share Опубликовано 3 мая, 2011 Попробуйте вот этот код: function vam_get_attributes_stock($product_id, $attribute_name,$options_name,$language='') { if ($language=='') $language=$_SESSION['languages_id']; $options_value_id_query=vam_db_query("SELECTpa.attributes_stockFROM".TABLE_PRODUCTS_ATTRIBUTES." paInner Join ".TABLE_PRODUCTS_OPTIONS." po ON po.products_options_id = pa.options_idInner Join ".TABLE_PRODUCTS_OPTIONS_VALUES." pov ON pa.options_values_id = pov.products_options_values_idWHEREpo.language_id = '".$language."' ANDpo.products_options_name = '".$options_name."' ANDpov.language_id = '".$language."' ANDpa.products_id = '".$product_id."' AND pov.products_options_values_name = '".$attribute_name."'"); $options_attr_data = vam_db_fetch_array($options_value_id_query); return $options_attr_data['attributes_stock']; }[/code] сохранить в файл /inc/vam_get_attributes_stock.inc.php Затем в /includes/modules/order_details_cart.php поменять: [code]require_once (DIR_FS_INC.'vam_get_attributes_model.inc.php'); на: require_once (DIR_FS_INC.'vam_get_attributes_model.inc.php');require_once (DIR_FS_INC.'vam_get_attributes_stock.inc.php');[/code] [/code] Ссылка на сообщение Поделиться на другие сайты
vitalik 0 Опубликовано 8 мая, 2011 Автор Жалоба Share Опубликовано 8 мая, 2011 Огромное спасибо, разобрался. Я Ваш код сохранил в файл в таком же виде, как и другие ваши файлы в этой папке, с шапкой VaM Shop. Если кому-то еще такое нужно будет, выкладываю пошаговую инструкцию. Выводим в корзине кол-во склада атрибутов {$item_data.STOCK} на данный момент (если у товара выбраны атрибуты) Инструкция для дефолтного шаблона vamshop (/templates/vamshop) 1. Скачиваем приложенный файл vam_get_attributes_stock.inc.php и закачиваем в папку магазина /inc/ 2. В файле /templates/vamshop/module/order_details.html строку <td align="left">{$item_data.VALUE_NAME}</td> меняем на <td align="left">{$item_data.VALUE_NAME}(На складе {$item_data.STOCK}шт.)</td> Или измените, как хочется, тут всё и так понятно, что и где менять. 3. В файле /htdocs/includes/modules/order_details_cart.php после строки require_once (DIR_FS_INC.'vam_get_attributes_model.inc.php'); добавляем строку require_once (DIR_FS_INC.'vam_get_attributes_stock.inc.php'); строку $module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => vam_get_attributes_model(vam_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'NAME' => $products[$i][$option]['products_options_name'], 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check); меняем на $module_content[$i]['ATTRIBUTES'][] = array ('ID' => $products[$i][$option]['products_attributes_id'], 'MODEL' => vam_get_attributes_model(vam_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'NAME' => $products[$i][$option]['products_options_name'], 'STOCK' => vam_get_attributes_stock(vam_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), 'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check);[/code]vam_get_attributes_stock.inc.php Ссылка на сообщение Поделиться на другие сайты
vitalik 0 Опубликовано 8 мая, 2011 Автор Жалоба Share Опубликовано 8 мая, 2011 Я понимаю, что это уже наглость, но всё же :) Как теперь сделать, чтобы в корзине выводить склад товара, если он НЕ имеет атрибутов? А то у меня теперь в корзине у товаров с атрибутами показывается количество склада атрибутов, а у товаров без атрибутов нет. Я так понимаю, нужна {$PRODUCTS_QUANTITY} - Количество единиц товара на складе. В файле /htdocs/includes/modules/order_details_cart.php есть require_once (DIR_FS_INC.'vam_get_products_stock.inc.php'); это случайно не то, что нужно? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 мая, 2011 Жалоба Share Опубликовано 8 мая, 2011 Нужно править /includes/modules/order_details_cart.php, вот этот код: $module_content[$i] = array ('PRODUCTS_NAME' => $products[$i]['name'].$mark_stock, 'PRODUCTS_QTY' => vam_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="2"').vam_draw_hidden_field('products_id[]', $products[$i]['id']).vam_draw_hidden_field('old_qty[]', $products[$i]['quantity']), 'PRODUCTS_MODEL' => $products[$i]['model'],'PRODUCTS_SHIPPING_TIME'=>$products[$i]['shipping_time'], 'PRODUCTS_TAX' => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES), 'PRODUCTS_IMAGE' => $image, 'IMAGE_ALT' => $products[$i]['name'], 'BOX_DELETE' => vam_draw_checkbox_field('cart_delete[]', $products[$i]['id']), 'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($products[$i]['id'], $products[$i]['name'])), 'PRODUCTS_PRICE' => $vamPrice->Format($products[$i]['price'] * $products[$i]['quantity'], true), 'PRODUCTS_SINGLE_PRICE' =>$vamPrice->Format($products[$i]['price'], true), 'PRODUCTS_SHORT_DESCRIPTION' => vam_get_short_description($products[$i]['id']), 'ATTRIBUTES' => '');[/code]Добавлять PRODUCTS_QUANTITY Ссылка на сообщение Поделиться на другие сайты
vitalik 0 Опубликовано 9 мая, 2011 Автор Жалоба Share Опубликовано 9 мая, 2011 Добавлять PRODUCTS_QUANTITY Добавил перед 'ATTRIBUTES' => '' вот это: 'PRODUCTS_QUANTITY' => vam_get_products_stock(vam_get_prid($products[$i]['id']), $products[$i][$option]['products_options_values_name'],$products[$i][$option]['products_options_name']), Это я делал по аналогии со 'STOCK', пытался уловить принцип путем сравнения :) потом в order_details.html пытался вывести {$PRODUCTS_QUANTITY} Только не смейтесь, но что-то я не так делаю явно :) Как эту PRODUCTS_QUANTITY добавить в эту строку правильно? И в шаблоне я правильно пытаюсь {$PRODUCTS_QUANTITY} выводить? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 мая, 2011 Жалоба Share Опубликовано 9 мая, 2011 Наверное надо так: 'PRODUCTS_QUANTITY' => $products[$i][$option]['attributes_stock'], [/code] Ссылка на сообщение Поделиться на другие сайты
vitalik 0 Опубликовано 9 мая, 2011 Автор Жалоба Share Опубликовано 9 мая, 2011 Добавил, как Вы сказали. Потом в order_details.html пытался вывести {$PRODUCTS_QUANTITY}, ничего не выводит :( Опять я что-то не так делаю? :unsure: Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 мая, 2011 Жалоба Share Опубликовано 10 мая, 2011 Так не совсем правильно. Попробуйте в /templates/vamshop/module/order_details.html поменять: <td valign="top" align="center">{$module_data.PRODUCTS_QTY}</td> [/code] например на: [code] <td valign="top" align="center">{$module_data.PRODUCTS_QTY}.{$module_data.PRODUCTS_QUANTITY}</td> Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения