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

Дублирование категорий при добавлении и редактировании товара.


Recommended Posts

При добавлении/редактировании товара, категории в поле категории с автозаполнением в оригинальной версии Openkart , категории автоматически дублируются. Если дубляжи не убирать, то при каждом обновлении их становится в два раза больше: 2,4,8,16 и т.д. Соответственно это вызывает ошибку базы данных, когда ключ категории дублируется. В базу пишется первая категория, следующие дубли не проходят. Если убрать в таблице ключи из полей, то пишется всё, но это уже вызывает цепную реакцию ошибок. На фото один дубль, чтобы избегать ошибок, приходится её удалять вручную. Это баг самой опенкарт, все новые установки ведут себя так.  Почему так происходит?  

Снимок экрана (25).png

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


27 минут назад, elfon сказал:

Это баг самой опенкарт, все новые установки ведут себя так.  Почему так происходит?  

Никогда такого не замечал. В любых версиях OpenCart.

Установите себе OCstore, там другой вид, через checkbox для этих категорий

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

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

почему так происходит.

Посмотрите контроллер, как там формируется массив категорий.

И посмотрите tpl.

Тогда сможете понять

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

Похоже, что причина - установленный языковой пакет https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=16735&filter_category_id=2&page=3. До его установки работает стабильно.

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


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

Похоже, что причина - установленный языковой пакет https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=16735&filter_category_id=2&page=3. До его установки работает стабильно.

Странно очень.

Как языковый пакет может дублировать категории?

Вот эта часть кода формирует массив:

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

if (isset($this->request->post['product_category'])) {
	$categories = $this->request->post['product_category'];
} elseif (isset($this->request->get['product_id'])) {
	$categories = $this->model_catalog_product->getProductCategories($this->request->get['product_id']);
} else {
	$categories = array();
}

$data['product_categories'] = array();

foreach ($categories as $category_id) {
	$category_info = $this->model_catalog_category->getCategory($category_id);

	if ($category_info) {
		$data['product_categories'][] = array(
			'category_id' => $category_info['category_id'],
			'name'        => ($category_info['path']) ? $category_info['path'] . ' > ' . $category_info['name'] : $category_info['name']
		);
	}
}

Вот эта делает отображение:

<div class="form-group">
<label class="col-sm-2 control-label" for="input-category"><span data-toggle="tooltip" title="<?php echo $help_category; ?>"><?php echo $entry_category; ?></span></label>
<div class="col-sm-10">
  <input type="text" name="category" value="" placeholder="<?php echo $entry_category; ?>" id="input-category" class="form-control" />
  <div id="product-category" class="well well-sm" style="height: 150px; overflow: auto;">
    <?php foreach ($product_categories as $product_category) { ?>
    <div id="product-category<?php echo $product_category['category_id']; ?>"><i class="fa fa-minus-circle"></i> <?php echo $product_category['name']; ?>
      <input type="hidden" name="product_category[]" value="<?php echo $product_category['category_id']; ?>" />
    </div>
    <?php } ?>
  </div>
</div>
</div>

Языковые переменные - это в 80% просто текст.

например в выводе в TPL - это $help_category, $entry_category

 

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

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

  • 5 months later...

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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