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

ПРи копировании товара сбрасывается главная категория


Absalem

Recommended Posts

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

Где поправить?

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


за копирование отвечает функция copyProduct в файле admin\model\catalog\product.php

 

проверил на ocStore 1.5.5.1.2 - копирует нормально, с сохранением всех категорий, код такой:

    public function copyProduct($product_id) {
        $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
        
        if ($query->num_rows) {
            $data = array();
            
            $data = $query->row;
            
            $data['sku'] = '';
            $data['upc'] = '';
            $data['viewed'] = '0';
            $data['keyword'] = '';
            $data['status'] = '0';
                        
            $data = array_merge($data, array('product_attribute' => $this->getProductAttributes($product_id)));
            $data = array_merge($data, array('product_description' => $this->getProductDescriptions($product_id)));            
            $data = array_merge($data, array('product_discount' => $this->getProductDiscounts($product_id)));
            $data = array_merge($data, array('product_filter' => $this->getProductFilters($product_id)));
            $data = array_merge($data, array('product_image' => $this->getProductImages($product_id)));        
            $data = array_merge($data, array('product_option' => $this->getProductOptions($product_id)));
            $data = array_merge($data, array('product_related' => $this->getProductRelated($product_id)));
            $data = array_merge($data, array('product_reward' => $this->getProductRewards($product_id)));
            $data = array_merge($data, array('product_special' => $this->getProductSpecials($product_id)));
            $data = array_merge($data, array('product_category' => $this->getProductCategories($product_id)));
            $data = array_merge($data, array('product_download' => $this->getProductDownloads($product_id)));
            $data = array_merge($data, array('product_layout' => $this->getProductLayouts($product_id)));
            $data = array_merge($data, array('product_store' => $this->getProductStores($product_id)));
            
            $this->addProduct($data);
        }
    }

 

не в курсе - что у вас за версия и сборка, попробуйте заменить код, если отличается (только копию своего файла перед заменой сделайте)

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

Посмотрите в

\admin\model\catalog\product.php

Вам нужно в

public function copyProduct($product_id) 

 

наличие строки 

$data = array_merge($data, array('product_category' => $this->getProductCategories($product_id)));

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

  • 10 months later...

Тот же вопрос мучает. 

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

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


  • 4 weeks later...

У меня та же история, подозреваю, что из  за этого, но не уверен???

    <file name="admin/model/catalog/product.php">
        <operation error="log"><!-- Fix to load product images by sort order -->
            <search position="replace"><![CDATA[$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_image WHERE product_id = '" . (int)$product_id . "'");]]></search>
            <add><![CDATA[
        if (!$this->config->get('custom_image_titles_status')) {
            $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_image WHERE product_id = '" . (int)$product_id . "' ORDER BY sort_order ASC");
        } else {
            $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_image WHERE product_id = '" . (int)$product_id . "'");
        }
                ]]></add>
        </operation>
    </file>

Если да то пожалуйста подскажите как исправить.

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


  • 4 months later...

Решение

 

/admin/model/catalog/product.php

 

после

$data = array_merge($data, array('product_category' => $this->getProductCategories($product_id)));

добавляем

$data = array_merge($data, array('main_category_id' => $this->getProductMainCategoryId($product_id)));

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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