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

Счетчик товаров в категориях


Recommended Posts

Доброго времени суток.

Пишу загрузчик товаров из excel.

Всё получается, кроме одной - после загрузки не считает счетчик товаров в категориях. Везде 0.  А товары и категории все появляются. Может кто - то сталкивался c таким?

 

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


каким методом считаешь? если стандартным проверь все ли условия sql запроса соблюдены для попадания товара в количество категории

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

это смотря каким методом вы пытаетесь сделать подсчет, если стандартными методами опенкарт то товары скорее всего у вас товары загружаются с иными настройками которые требует соблюдать опенкарт для подсчета, проверьте привязан ли товар к категории, (пишите ли при експорте в магазин привязку товара к категории в таблице product_to_category)  имеет ли статус включено, есть ли количество и тп, по памяти не скажу. вообще на словах сложно обьяснить вы бы кусок кода какой нибудь сбросили) например - как именно считаете

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

Подсчет должен делать opencart при выводе категорий. Я пишу загрузчик в back end.

 

 
 $this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" .$row[0]. "', sku = '" .$row[0]. "', upc = '', ean = '', jan = '', isbn = '', mpn = '', location = '', quantity = '" .$row[2]. "', minimum = '1', subtract = '0', stock_status_id = '" .$sstatus_id. "', date_available = '0', manufacturer_id = '" .$manufacturer_id. "', shipping = '1', price = '" .$product_price. "', points = '0', weight = '0.00', weight_class_id = '0', length = '0.00', width = '0.00', height = '0.00', length_class_id = '0', status = '1', tax_class_id = '0', sort_order = '100', date_added = NOW()"); $product_id = $this->db->getLastId();
		   $this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '".$product_id."', language_id = '".$language_id."', name = '".$row[1]."', description  = '', tag = '', meta_title = '', meta_h1 = '', meta_description = '', meta_keyword = ''");
		   
		   $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_store SET product_id = '".$product_id."', store_id = '".$store_id."'");
		   $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_category SET product_id = '".$product_id."', category_id = '".$category_id."', main_category = '1'");

А что пишется в таблицу oc_category_path? Подозреваю , что проблема в том что в эту таблицу ничего не пишу

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


добавьте тестовый товар через админку и сравните все столбцы - чем отличается импортированный товар от добавленного

 

stock_status_id = '" .$sstatus_id. "' - не опечатка? переменная правильно написана?

 

ну и еще - пустые поля не обязательно прописывать: upc = '', ean = '', jan = '' - по сути и без них эффект тот же будет

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

$sstatus_id. "' - не опечатка! 
Тестовый товар не получилось добавить , так как в админке не выводятся категории куда добавить товар. 

 

Решение в том, что таблицу  oc_category_path тоже надо заполнять.

Как заполнять нашел сдесь: http://stackoverflow.com/questions/15162193/opencart-how-to-accurately-populate-oc-category-path

 

После того как заполнил таблицу  oc_category_path по этой рекомендации счетчик товаров начал работать и все категории появились в админке.

 

Всем спасибо за внимание и ответы

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


Данный запрос - полный fail. Данные не экранируются, что ведет к проблемам с безопасностью.

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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