Ответить Новая тема Новый опрос 
Всего: 2 1 2 >
 СПЕЦИАЛЬНОЕ ОБЯЗАТЕЛЬНОЕ ПОЛЕ К ТОВАРУ
ru9avs
Новичок
Сообщений: 29
Регистрация: 07-03-2015


26-03-2015 22:33
при добавлении в корзину товара, нужно что бы покупатель заполнил специальное обязательное поле к товару. Т.е. оставил комментарий к товару.

Видится это так:
Либо:
На странице товара и при просмотре в каталоге товаров списком добавляется текстовое поле - обязательное для заполнения и при нажатии на "В корзину", информация из этого поля шла в заказ.
Либо:
Уже после нажатия "В корзину" выскакивает всплывающее окно с просьбой оставить комментарий в обязательном для заполнении поле, и при нажатии далее (или сохранить) высвечивается обычное всплывающее окно с информированием о добавлении в корзину.

Возможно ли реализовать это?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


26-03-2015 22:40
Да, это стандартный функционал.
Панель управления > перейти в карточку товара > вкладка "поля" :: добавить одно текстовое поле и нажать сохранить.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ru9avs
Новичок
Сообщений: 29
Регистрация: 07-03-2015


26-03-2015 23:04
Цитата:( Алекс @ 26-03-2015 23:40 Смотреть сообщение )
Да, это стандартный функционал.
Панель управления > перейти в карточку товара > вкладка "поля" :: добавить одно текстовое поле и нажать сохранить.
Спасибо за ответ!

Исследовал уже этот функционал и меня не устроило несколько вещей:
1. Нужно нажимать "Сохранить" перед тем как отправить товар в корзину (после нажатия "сохранить" происходит перезагрузка страницы, и становится возможным добавить в корзину).
2. Данное поле отображается только на странице товара. Хотелось бы что бы оно было или в "быстром просмотре" товара или в списке товаров (product-list.tpl), например под названием товара.

Можно как-то прописать это дополнительное поле в product-list.tpl (не хватает знаний, к сожалению по языку. структура полностью понятна.) или в быстрый просмотр (так и не нашел файл отвечающий за это окно) и избавиться от необходимости нажимать кнопку сохранить.


Сообщение отредактировано ru9avs 27-03-2015 00:08 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


27-03-2015 00:14
Цитата:( ru9avs @ 27-03-2015 00:04 Смотреть сообщение )
1. Нужно нажимать "Сохранить" перед тем как отправить товар в корзину (после нажатия "сохранить" происходит перезагрузка страницы, и становится возможным добавить в корзину).
Выполнить доработку для автомат сохранения данного поля при нажатии на кнопку "добавить в корзину".
Необходимо немного переписать ajax-cart.js (забирать данные из необходимых полей) и в файле /controllers/front/CartController.php до:
Код:
if (!$product->hasAllRequiredCustomizableFields() && !$this->customization_id)

добавить:
Код:
if ($field_ids = $product->getCustomizationFieldIds())
        {
            $authorized_text_fields = array();
            foreach ($field_ids as $field_id)
                if ($field_id['type'] == Product::CUSTOMIZE_TEXTFIELD)
                    $authorized_text_fields[(int)$field_id['id_customization_field']] = 'textField'.(int)$field_id['id_customization_field'];

            $indexes = array_flip($authorized_text_fields);
            foreach ($_POST as $field_name => $value)
                if (in_array($field_name, $authorized_text_fields) && $value != '')
                {
                    if (!Validate::isMessage($value))
                        $this->errors[] = Tools::displayError('Invalid message');
                    else
                        $this->context->cart->addTextFieldToProduct($product->id, $indexes[$field_name], Product::CUSTOMIZE_TEXTFIELD, $value);
                }
                else if (in_array($field_name, $authorized_text_fields) && $value == '')
                    $this->context->cart->deleteCustomizationToProduct((int)$this->product->id, $indexes[$field_name]);
        }


Цитата:( ru9avs @ 27-03-2015 00:04 Смотреть сообщение )
2. Данное поле отображается только на странице товара. Хотелось бы что бы оно было или в "быстром просмотре" товара или в списке товаров (product-list.tpl), например под названием товара.

Добавить отображение полей в файл product-list.tpl:
Код:
{if $product.customizable}
<div class="customizableProductsText">
    <h5 class="product-heading-h5">{l s='Text'}</h5>
    <ul id="text_fields">
    {foreach from=$product.customizationFields item='field' name='customizationFields'}
        {if $field.type == 1}
            <li class="customizationUploadLine{if $field.required} required{/if}">
                <label for ="textField{$customizationField}">
                    {assign var='key' value='textFields_'|cat:$product.id_product|cat:'_'|cat:$field.id_customization_field}
                    {if !empty($field.name)}
                        {$field.name}
                    {/if}
                    {if $field.required}<sup>*</sup>{/if}
                </label>
                <textarea name="textField{$field.id_customization_field}" class="form-control customization_block_input" id="textField{$customizationField}" rows="3" cols="20">{strip}
                    {if isset($textFields.$key)}
                        {$textFields.$key|stripslashes}
                    {/if}
                {/strip}</textarea>
            </li>
            {counter}
        {/if}
    {/foreach}
    </ul>
</div>
{/if}


и в файле /controllers/front/CategoryController.php
после:
Код:
$this->assignProductList();

добавить:
Код:
foreach ($this->cat_products as &$product)
        {
            if ($product['customizable'])
            {
                $p = new Product($product['id_product'], true, $this->context->language->id, $this->context->shop->id);
                $product['customizationFields'] = $p->getCustomizationFields($this->context->language->id);
            }        
        }
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ru9avs
Новичок
Сообщений: 29
Регистрация: 07-03-2015


27-03-2015 00:18
Цитата:( Алекс @ 27-03-2015 01:14 Смотреть сообщение )
Выполнить доработку для автомат сохранения данного поля при нажатии на кнопку "добавить в корзину".
Необходимо немного переписать ajax-cart.js (забирать данные из необходимых полей) и в файле /controllers/front/CartController.php
Спасибо огромное!!! Буду пробовать!!! :jump:


Сообщение отредактировано ru9avs 27-03-2015 01:19 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ru9avs
Новичок
Сообщений: 29
Регистрация: 07-03-2015


27-03-2015 00:35
Цитата:( Алекс @ 27-03-2015 01:14 Смотреть сообщение )
Необходимо немного переписать ajax-cart.js (забирать данные из необходимых полей)

Какой нужно переписать, тот что в папке темы (\themes\default-bootstrap\js\modules\blockcart), или тот что просто в модулях (\modules\blockcart) ?

_____

Да и собственно, что переписывать я не знаю, к сожалению.


Сообщение отредактировано ru9avs 27-03-2015 01:37 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ru9avs
Новичок
Сообщений: 29
Регистрация: 07-03-2015


27-03-2015 01:28
Кто сможет помочь с ajax-cart.js?


Сообщение отредактировано ru9avs 27-03-2015 02:28 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
zapalm


Профессионал
Сообщений: 350
Откуда: Владивосток
Регистрация: 01-08-2009


27-03-2015 06:49
Цитата:
Какой нужно переписать, тот что в папке темы (\themes\default-bootstrap\js\modules\blockcart), или тот что просто в модулях (\modules\blockcart) ?

тот, что в директории с темой.
файлы из директорий с модулями трогать нельзя - нужно их переопределять.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ru9avs
Новичок
Сообщений: 29
Регистрация: 07-03-2015


27-03-2015 12:22
не знаю совсем как править этот ajax-cart.js (забирать данные из необходимых полей). Не справлюсь.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ru9avs
Новичок
Сообщений: 29
Регистрация: 07-03-2015


28-03-2015 10:51
Кто поможет с ajax-cart.js?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 2 1 2 >