Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


FreeDemon

Recommended Posts

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

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

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

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

Надіслати
Поділитися на інших сайтах


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

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

 

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

 

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

 

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

Надіслати
Поділитися на інших сайтах


  • 1 month later...

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

 

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

 

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

 

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

Аналогично.

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

post-683394-0-43843500-1401588985_thumb.jpg

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах


  • 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>';

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

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

спасибо

все сделал

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

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

Надіслати
Поділитися на інших сайтах


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

 

 


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'] = 'Страна:';

 





 

Надіслати
Поділитися на інших сайтах


  • 1 month later...

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

 

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

 

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

Надіслати
Поділитися на інших сайтах


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

 

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

Надіслати
Поділитися на інших сайтах


  • 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

Змінено користувачем ecletronic
версия движка
Надіслати
Поділитися на інших сайтах


  • 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.

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

Надіслати
Поділитися на інших сайтах


В 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.

 

Надіслати
Поділитися на інших сайтах


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 если оно не нужно и обращение к нему в модели, или добавить наоборот в форму, если нужно

Надіслати
Поділитися на інших сайтах

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.

Надіслати
Поділитися на інших сайтах


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.

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

Надіслати
Поділитися на інших сайтах

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

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

 

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

Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Надіслати
Поділитися на інших сайтах


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. Причем для каждого языка. Перечитайте мое предыдущее сообщение с рекомендацией по копированию другого поля, зависящего от языка

Надіслати
Поділитися на інших сайтах

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

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

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

 

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

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

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.