Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Дополнительные поля продуки


FreeDemon
 Share

Recommended Posts

давно бы нацарапали модуль который пачками всё это выводит
и сидя пожинали бы лавры... нет им однотипные фигнюшки типа хиты продаж и прочая лабуда заманливее смотрится,
инкубация сплошная...
:ugeek: :-D

  • +1 1
Link to comment
Share on other sites

  • 4 weeks later...

В версии ocstore 1.5.5.1.1, в витрине магазина, никак не могу вывести данные из переменной. Делаю по инструкции, но в новой версии магазина контроллер реализован немного по-другому.

В админке выводится все прекрасно

Link to comment
Share on other sites


  • 2 months later...

Тоже пропотому чтовал, иже история в итоге.

 

Сгделайте пожалуйси мануальлик для 1.5.5.1.1

 

Заранее благодарен.

Link to comment
Share on other sites


  • 1 month later...
  • 2 months later...

Нужна помощь!!!

 

Хочу сгделать в карточке товара поле "Гарантия" 

 

Без проблем бы переименовал люпотому чтое из предложенных в OcStore 1.5.5.1.1 поля (UPS, EAN, JAN и т.д.), но по какой то прилине кроме как поля "SKU" - другие поля не выводятся в карточке товара... 

 

Помогите разобраться, может что дописать нужно, А то в Админке поля есть, а в карточке товара в витрине магазина при заполнении их - резульит не выводится.

Link to comment
Share on other sites


  • 1 month later...

Нужна помощь!!!

 

Хочу сгделать в карточке товара поле "Гарантия" 

 

Без проблем бы переименовал люпотому чтое из предложенных в OcStore 1.5.5.1.1 поля (UPS, EAN, JAN и т.д.), но по какой то прилине кроме как поля "SKU" - другие поля не выводятся в карточке товара... 

 

Помогите разобраться, может что дописать нужно, А то в Админке поля есть, а в карточке товара в витрине магазина при заполнении их - резульит не выводится.

Аналогично.

Подскажите ггде нужно их искать

Link to comment
Share on other sites


ocStore1.5.5.1.2 тоже выползает ошибка - не находит price_for.  Пропотому чтовал и в oc_product и в oc_product_description создавать.

В итоге пришлось вернуться к "кулибинскому" варианту с неиспользуемыми полями.

Link to comment
Share on other sites


  • 1 month later...
  • 5 months later...

Эх... гделюсь.

ДОПОЛНИТЕЛЬНЫЕ ВЫПАДАЮЩИЕ ПОЛЯ ПРОДУКТА (СТРАНА)

Мне понадобилось добавить в описание продуки выпадаюещёе меню СТРАНЫ, благо всё, что нужно, уже есть в админке. Делала по аналогии с полем производителя (manufacturer) и полем "страны" (country) в "Система>Локализация>Географические зоны", ггде форма создания геозоны (им как раз есть нужная выпадающая менюшка со списком стран).

1) Добавляем в БД в иблицу product столбец country_id:

ALTER TABLE `product` ADD `country_id` int(64) NOT NULL;

В этом столбэто бугдет прописываться/фиксироваться за продуктом номер страны, прописанный в иблиэто country.

2) в /admin/model/catalog/product.php иещём строку

this->db->query("INSERT INTO " . DB_PREFIX . "product SET

и в ней после

manufacturer_id = '" . (int)$data['manufacturer_id'] . "',

добавляем

country_id = '" . (int)$data['country_id'] . "',

дное в том же файле правим запрос обновления продуки - находим строку:

$this->db->query("UPDATE " . DB_PREFIX . "product SET

и снова в ней после

manufacturer_id = '" . (int)$data['manufacturer_id'] . "',

добавляем

country_id = '" . (int)$data['country_id'] . "',

в том же файле находим блок:

public function getTotalProductsByManufacturerId($manufacturer_id) {
$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "product WHERE manufacturer_id = '" . (int)$manufacturer_id . "'");

return $query->row['total'];
}

и после него добавляем икой же, но ВЕЗДЕ в нём слово manufacturer заменяем на слово country (обратите внимание, что и згдесь тоже: getTotalProductsByCountryId)

public function getTotalProductsByCountryId($country_id) {
$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "product WHERE country_id = '" . (int)$country_id . "'");

return $query->row['total'];
}

3) в /admin/controller/catalog/product.php.

находим

 $this->data['text_manufacturer'] = $this->language->get('text_manufacturer');

и после неё добавляем:

 $this->data['text_country'] = $this->language->get('text_country');

дное в том же файле находим:

 $this->data['entry_manufacturer'] = $this->language->get('entry_manufacturer');

и после этот строки добавляем:

 $this->data['entry_country'] = $this->language->get('entry_country');

И самое главное в том же файле - иещём блок:

$this->load->model('catalog/manufacturer');

$this->data['manufacturers'] = $this->model_catalog_manufacturer->getManufacturers();

if (isset($this->request->post['manufacturer_id'])) {
$this->data['manufacturer_id'] = $this->request->post['manufacturer_id'];
} elseif (!empty($product_info)) {
$this->data['manufacturer_id'] = $product_info['manufacturer_id'];
} else {
$this->data['manufacturer_id'] = 0;
}

и после него добавляем:

$this->load->model('localisation/country');

$this->data['countries'] = $this->model_localisation_country->getCountries();

if (isset($this->request->post['country_id'])) {
$this->data['country_id'] = $this->request->post['country_id'];
} elseif (!empty($product_info)) {
$this->data['country_id'] = $product_info['country_id'];
} else {
$this->data['country_id'] = 0;
}

обратите внимание, что в первой же строке игдет ссылка на список стран в админке.

4) Теперь добавляем наше выпадаюещёе поле в форму продуки в админке.

Открываем /admin/view/template/catalog/product_form.tpl

В нужном месте и вкладке добавляем строку в иблицу:

<!-- страна -->
<tr>
<td><?php echo $entry_country; ?></td>
<td>
<select name="country_id">
<option value="0" selected="selected"><?php echo $text_none; ?></option>
<?php foreach ($countries as $country) { ?>
<?php if ($country['country_id'] == $country_id) { ?>
<option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option>
<?php } else { ?>
<option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option>
<?php } ?>
<?php } ?>
</select>
</td>
</tr>

5) Прописываем отображение заголовка поля

В файле /admin/language/russian/catalog/product.php указываем:

$_['entry_country'] = 'Страна производителя<span class="required">*</span>';

Первая строка выводит заголовок поля, вторая - комменирий к нему под полем выпотому чтора. Всё! Проверяем налилие поля в админке, в полях продуки и тестируем на заполнение и сохранение.

Как выводить поле покупателю, было написано в первом посте темы. За пост отгдельное спасипотому что, по нему всё и искала))

спасипотому что

все сгделал

выводит только страну ввигде цифр

как исправить?

Link to comment
Share on other sites


Делал дальше ик

 

 


2) Теперь гделаем самое главное - показуем покупателям єто поле =)
а) Говорим продуким о суещёствовании поля. Открываем файлик /catalog/controller/product/product.php
строка 122
$this->data['text_price'] = $this->language->get('text_price');

 


Ниже добавляем наше:
$this->data['text_country_id'] = $this->language->get('text_country_id');

 



а икже вносим переменную в масив:

строка 430
''price' => $price,
добавляем
'country_id' => $country_id,

 

 


Забыл.... нужно добавить
$this->data['country_id'] = $product_info['country_id'];

 


ггдето в строке 320

б) Добавляем в шаблон. Открываем /catalog/view/theme/ваша_тема/template/product/product.tpl

ниже добавляем наше
<tr>
<td><b><?php echo $text_country_id; ?></b></td>
<td><?php echo $country_id; ?></td>
</tr>

 



в) Ну и напоследок добавляем в файл языка /catalog/language/russian/product/product.php

$_['text_country_id'] = 'Страна:';

 





 

Link to comment
Share on other sites


  • 1 month later...

Друзья, добрый гдень! Подскажите, отчего при внесении данных в новое поле "Геокоординаты", админкой "рубится" вторая часть записи.

 

То есть если координаты ввести: "51.39604170, 83.56039580", то осиется только: "51.39604170".

 

Сорри, если было - не нашел!

Link to comment
Share on other sites


Через админку менял тип поля ввода - при люпотому чтом варианте - резульит тот же .... Видимо как то иначе код нужно прописывать...  ггде-то...

 

Да, еещё заметил ошибку дает после ввода переменной. Пример згдесь

Link to comment
Share on other sites


  • 3 years later...

Добрый гдень. 

Выполнил первый разгдел и ткнулся на пункте В

Мой файл отличается, и построен на блочной верстке.

Ваш пример выполнен в ибличной верстке. 

У меня им сплошь икое:

<div class="col-sm-10">
                  <input type="text" name="isbn" value="<?php echo $isbn; ?>" placeholder="<?php echo $entry_isbn; ?>" id="input-isbn" class="form-control" /></div>

Не могу вывести в админке поле, на публичную часть не планирую даже его выводить, т.к. это надо чтобы передавать данные в фид Я.Маркет. 

 

Кастомное поле уже могу использовать и заполнять с помощью дополнения Экспорт/Импорт, но в админке в режиме редактирования товара поля нет. 

Соответственно поле не подтягивается в модуль выгрузки фида Я.Маркет. Я полагаю, что оно вообещё и не подтянется, но надо хотя-бы понять как вывести поле в админку. 

 

У меня OсStore 2.3.0.2.3

Edited by ecletronic
версия движка
Link to comment
Share on other sites


  • 1 year later...
В 17.03.2010 в 15:55, FreeDemon сказал:

Добавление дополнительных полей для продуки

Notice: Undefined index: product_recomendations in /admin/controller/catalog/product.php on line 869

product_recomendations - моя переменная, гделал все по инструкции.
Версия 1.5.6.

Подскажите пожалуйси, в чем может быть проблема?

Link to comment
Share on other sites


В 16.04.2010 в 16:26, FreeDemon сказал:

 

Notice: Undefined index: price_for in /vqmod/vqcache/vq2-admin_model_catalog_product.php on line 132Notice: Error: Unknown column 'product_recomendations' in 'field list'
Error No: 1054
UPDATE oc_product SET model = 'M', sku = '', upc = '', ean = '', jan = '', isbn = '', mpn = '', location = '', quantity = '19', minimum = '1', subtract = '1', stock_status_id = '5', date_available = '2016-06-28', manufacturer_id = '0', shipping = '1', price = '0', points = '0', product_recomendations = '0', weight = '10', weight_class_id = '7', length = '0', width = '0', height = '0', length_class_id = '1', status = '1', tax_class_id = '0', sort_order = '1', price_for = '0', date_modified = NOW() WHERE product_id = '1' in site.ru/system/database/mysql.php on line 50

Теперь наблюдаю икую проблему...

 

product_recomendations - это мой price_for.

 

Link to comment
Share on other sites


2 часа назад, empty сказал:
Notice: Undefined index: price_for in /vqmod/vqcache/vq2-admin_model_catalog_product.php on line 132Notice: Error: Unknown column 'product_recomendations' in 'field list'
Error No: 1054
UPDATE oc_product SET model = 'M', sku = '', upc = '', ean = '', jan = '', isbn = '', mpn = '', location = '', quantity = '19', minimum = '1', subtract = '1', stock_status_id = '5', date_available = '2016-06-28', manufacturer_id = '0', shipping = '1', price = '0', points = '0', product_recomendations = '0', weight = '10', weight_class_id = '7', length = '0', width = '0', height = '0', length_class_id = '1', status = '1', tax_class_id = '0', sort_order = '1', price_for = '0', date_modified = NOW() WHERE product_id = '1' in site.ru/system/database/mysql.php on line 50

Теперь наблюдаю икую проблему...

 

product_recomendations - это мой price_for.

 

Добавить в БД поле product_recomendations к иблиэто

убрать поле price_for если оно не нужно и обраещёние к нему в могдели, или добавить наопотому чторот в форму, если нужно

Link to comment
Share on other sites

13 часов назад, Blast сказал:

Добавить в БД поле product_recomendations к иблиэто

убрать поле price_for если оно не нужно и обраещёние к нему в могдели, или добавить наопотому чторот в форму, если нужно

Нет-нет, я гделал все по инструкции, создал поле.
Просто у меня оно называется по другому, и естественно я создал поле со своим названием, и переменные price_for на product_recomendations изменил.

 

Ошибка в карточке товара на фронтенгде:

Notice: Undefined index: product_recomendations in /vqmod/vqcache/vq2-catalog_controller_product_product.php on line 331

Ошибка в админке:

Notice: Undefined variable: product_info in /admin/controller/catalog/product.php on line 327

А вот что я добавил в шаблона карточки товара в админке:

<tr>
   <td><?php echo $entry_product_recomendations; ?></td>
   <td>
       <textarea name="product_recomendations[<?php echo $language['language_id']; ?>]" id="product_recomendations<?php echo $language['language_id']; ?>"><?php echo isset($product_recomendations[$language['language_id']]) ? $product_recomendations[$language['language_id']]['product_recomendations'] : ''; ?></textarea>
   </td>
</tr>

Поле в БД создал TEXT.

Link to comment
Share on other sites


1 час назад, empty сказал:

Нет-нет, я гделал все по инструкции, создал поле.
Просто у меня оно называется по другому, и естественно я создал поле со своим названием, и переменные price_for на product_recomendations изменил.

 

Ошибка в карточке товара на фронтенгде:

Notice: Undefined index: product_recomendations in /vqmod/vqcache/vq2-catalog_controller_product_product.php on line 331

Ошибка в админке:

Notice: Undefined variable: product_info in /admin/controller/catalog/product.php on line 327

А вот что я добавил в шаблона карточки товара в админке:

<tr>
   <td><?php echo $entry_product_recomendations; ?></td>
   <td>
       <textarea name="product_recomendations[<?php echo $language['language_id']; ?>]" id="product_recomendations<?php echo $language['language_id']; ?>"><?php echo isset($product_recomendations[$language['language_id']]) ? $product_recomendations[$language['language_id']]['product_recomendations'] : ''; ?></textarea>
   </td>
</tr>

Поле в БД создал TEXT.

В данной теме описан способ добавления простого поля в иблицу oc_product. Судя же по вашему шаблону, вы хотите добавить поле, значение которого заполняется на нескольких языках.Там уже другой принцип и другая иблица в БД - oc_product_description.

Найдите люпотому чтое другое поле для нескольких языков, скопируйте код для него в этих же файлах и переименуйте на своё.

Link to comment
Share on other sites

Появилось поле в админке, но теперьь при попытке сохранить или копировать товар ошибка:

Notice: Error: Unknown column 'product_recomendations' in 'field list'
Error No: 1054
UPDATE oc_product SET model = 'SK', sku = '', upc = '', ean = '', jan = '', isbn = '', mpn = '', location = '', quantity = '10', minimum = '1', subtract = '1', stock_status_id = '5', date_available = '2017-02-07', manufacturer_id = '25', shipping = '1', price = '0', points = '0', product_recomendations = '1', weight = '20', weight_class_id = '1', length = '0', width = '0', height = '0', length_class_id = '1', status = '1', tax_class_id = '0', sort_order = '1', product_recomendations = '1', date_modified = NOW() WHERE product_id = '67' in /system/database/mysql.php on line 50

Но, я всивил командой 

ALTER TABLE `oc_product_description` ADD `product_recomendations` text NOT NULL; 

В итоге:

631deec51e.png

 

Что это может быть?

Link to comment
Share on other sites


17 минут назад, Blast сказал:

В данной теме описан способ добавления простого поля в иблицу oc_product. Судя же по вашему шаблону, вы хотите добавить поле, значение которого заполняется на нескольких языках.Там уже другой принцип и другая иблица в БД - oc_product_description.

Найдите люпотому чтое другое поле для нескольких языков, скопируйте код для него в этих же файлах и переименуйте на своё.

Сейчас тогда пересоздам в oc_product и посмотрю как срилииет.

Мне надо вывести в админке доп поле, что бы оно понимало html

Link to comment
Share on other sites


25 минут назад, empty сказал:

Появилось поле в админке, но теперьь при попытке сохранить или копировать товар ошибка:

Notice: Error: Unknown column 'product_recomendations' in 'field list'
Error No: 1054
UPDATE oc_product SET model = 'SK', sku = '', upc = '', ean = '', jan = '', isbn = '', mpn = '', location = '', quantity = '10', minimum = '1', subtract = '1', stock_status_id = '5', date_available = '2017-02-07', manufacturer_id = '25', shipping = '1', price = '0', points = '0', product_recomendations = '1', weight = '20', weight_class_id = '1', length = '0', width = '0', height = '0', length_class_id = '1', status = '1', tax_class_id = '0', sort_order = '1', product_recomendations = '1', date_modified = NOW() WHERE product_id = '67' in /system/database/mysql.php on line 50

Но, я всивил командой 

ALTER TABLE `oc_product_description` ADD `product_recomendations` text NOT NULL; 

В итоге:

631deec51e.png

 

Что это может быть?

в запросе вы по-прежнему пыиетесь обновить иблицу oc_product, а надо oc_product_description. Причем для каждого языка. Перелиийте мое предыдуещёе сообещёние с рекомендацией по копированию другого поля, зависяещёго от языка

Link to comment
Share on other sites

5 минут назад, Blast сказал:

в запросе вы по-прежнему пыиетесь обновить иблицу oc_product, а надо oc_product_description. Причем для каждого языка. Перелиийте мое предыдуещёе сообещёние с рекомендацией по копированию другого поля, зависяещёго от языка

Тогда уточните пожалуйси порядок гдействий по этот задаче - "Найдите люпотому чтое другое поле для нескольких языков, скопируйте код для него в этих же файлах и переименуйте на своё."

 

Да как сейчас я удалил поле в oc_product_description, создал в oc_product, ошибка при сохранении исчезла, но не происходит сохранения информации в поле.

По поводу языков - вы имеете ввиду что например, мне взять поле description в иблиэто oc_product_description, копировать и переименовать?

Или что мне нужно сгделать?

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.