@The_Beginer

Не показывает характеристики карточки товара в OpenCart?

Сайт поддерживает 3 языка(русский, английский, грузинский) Возникла проблема вот в чём

В карточке товара, в грузинской версии отсутствует вкладка Характеристики. При этом если я переключаю эту страницу на русский или английский язык, то вкладка "Характеристики" видна (Прикрепил скриншоты)
picture-1.thumb.jpg.262d258105f7e446aff2

picture-2.jpg.10e332a74c1b8b149d82ee7603

picture-3.jpg.2c72a4bf683bcfec845521d228

ЧТО Я ПРЕДПРИНЯЛ...

Решил посмотреть по коду и при переключении на грузинскую версию не обнаружил строки кода для характеристик
<a href="#tab-specification" data-toggle="tab" aria-expanded="true" style="background-color: rgb(255, 255, 255); color: rgb(119, 119, 119); border-color: rgb(119, 119, 119);">Характеристики</a>


lNI0p.png

nYxnT.png

Dxkiq.png

Скажите пожалуйста в какой файл мне нужно зайти и решить проблему view/theme/template/product/product.tpl? или в другой?

И В ЗАВЕРШЕНИИ

-Разработчик шаблона сказал про массивы но не сказал где их искать...
-Все атрибуты и характеристики переведены на 3 языка и в админ.панели всё отображается.
  • Вопрос задан
  • 626 просмотров
Решения вопроса 1
@liza2019
атрибуты выбираются по 2 параметрам $product_id и $this->config->get('config_language_id')
$product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name");

		foreach ($product_attribute_group_query->rows as $product_attribute_group) {
			$product_attribute_data = array();

			$product_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY a.sort_order, ad.name");

если у вас на 2 языках они показываются а на третьем нет, значит неправильно определяется $this->config->get('config_language_id')
попробуйте в контроллере ниже строки
$data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']);
прописать
print_r($data['attribute_groups']); exit;
и поперезагружайте страницу карточки на разных языках. скорее всего на грузинском у вас будет пустой массив.
тогда ищите проблему почему айди языка не соответствует айди языка по атрибутам
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы