Drupal Commerce: программный вывод кнопки "Добавить в корзину"
Вопрос такой, мне нужно вывести программно кнопку "Add to cart" в шаблоне Views. Делаю по примеру http://drupal.org/node/1232470#comment-4801356 и по документации http://api.drupalcommerce.org/api/Drupal%20Commerce/sites!all!modules!commerce!modules!cart!commerce_cart.module/function/commerce_cart_add_to_cart_form/DC
вот так:
<?php // build the line items for shopping cart $line_item = commerce_line_item_new($view['product']->type, $order_id = 0); $line_item->data['context']['product_ids'] = array($view['product']->product_id); $line_item->quantity = 1; // need to create config for quantity $qty = 1; $form_id = commerce_cart_add_to_cart_form_id(array($view['product']->product_id), $qty); $addtocart_form = drupal_get_form($form_id, $line_item); // we alter the submit form to use our special theme function // need to move this to configuration $addtocart_form['submit']['#theme'][] = 'vtcommerce_button_small'; $variables['cart'] = render($addtocart_form); ?>
так вот сама кнопка нормально выводится, а вот виджет с добавлением количества товаров нет, хотя $line_item->quantity = 1; и $qty = 1; .
Вопрос: почему?
Если вы выводите через Views тогда можно выводить поле кнопки если выводите полями или если через тизеры выводите, тогда можно в шаблоне задать вывод кнопки, предварительно вывод тизера через отображение полей тоже нужно настроить. Если нужно использовать ни тизер, ни полную ноду, тогда добавляйте вариант отображения ноды в отображение полей и выводите через этот вариант.
Я вывожу данные о товаре через поля. Делаю шаблон для "Вывод в стиле строк: ". Когда я не задаю свой шаблон tpl.php для Views то у меня выводится и кнопка "Добавить в корзину" и виджет с количеством товара, но мне нужно темизировать особым образом, поэтому я и создал шаблон, но виджета нету. В настройках самого поля "(Product) Commerce Product: Add to Cart form (Add to Cart form)" напротив "Display a textfield quantity widget on the add to cart form. " галочка естественно стоит, да и вроде как от этого не должно зависеть я думаю, а должно завесеть от свойсвтва quantity в массиве $line_item, ведь кнопка же все таки с помощью функции создается, но на всякий случай я и в настройках поля нужную опцию отметил, но все равно не работает.
А если поставить unformatted list, переопредилить шаблон для вывода row, где уже обработанные поля выводятся, то там все нормально выводится?
Вам нужно темизировать все отображение товара или только выбор в корзину?
Темизировать нужно именно вывод в каталоге, мне нужно сделать как тут http://ponomareva.sale-monster.ru например. Т.е. чтобы была кнопка "В корзину" и "Купить" рядом с ней. Поменял стиль представления на "неформартированный список", название файла для row предлагаемое Drupal'ом осталось таким же. Ничего не изменилось. Увы...
А кнопки "купить" и "в корзину" одинаково работают?
Забыл отписать))Там есть поле quantity просто оно там hidden.
Попробуйте через hook_form_alter() переписать значение с hidden на textfield.
Да это то уже не проблема)Но спасибо что ответили)
Луди помогите пожалуйста, та же проблема, только вывод этой кнопки с количесвом нужно вывести в ноде товара. сейчас только одна кнопка.