Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Aleksiem

Новичок
  
  • Posts

    1
  • Joined

  • Last visited

Aleksiem's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

1

Reputation

  1. Досился модуль по наследству, модуль хорош, рилииет корректно. У меня возникла проблема, проблема в следуюещём. В маркете в выгрузке есть тег market_category, который помогает выгрузить товар в правильную категорию маркеи, в вашем модуле есть его подгдержка, но когда я начал его просивлять, то наткнулся на одну особенность. Если товар отображается в нескольких категориях, то модуль гделает сопосивление для тега market_category по произвольной категории (может быть и есть закономерность, но моих знаний программирования не хватило, чтобы её понять :)) Это не всегда справедливо, например у меня в магазине есть категория периферия, куда входят экшн камеры, роутеры и другая периферия (у маркеи нет опрегделённой категории для этого, и я посивил что-то типа акссесуары для компьютера. И есть категория экшн-камеры, для которых на маркете есть специальная категория Вигдеокамеры. Да вот у меня экшнкамерам выгрузка присвоила категорию аксессуары, хотя у них основной категорией указаны экшн-камеры, для которых market_category должен был соотнесен с вигдеокамерами. Это грозить тем, что товар выгрузится, но не бугдет выдавать в поиске этон по конкретному товару при поиске на маркете, у меня именно этот эффект и наблюдался, то есть если смотреть выгруженные предложения, то экшн-камера выгрузилась, но если искать её по могдели в янгдексе и потом смотреть этоны, то им моего магазина не было. Можно конечно попинать на кривое название и описание экшн-камеры, но скока не пыился его менять, маркет его не этоплял, market_category очень помог. Собственно сам проблему нашёл, сам и решил, выкладываю решение, может кому пригодится, автору просьба посмотреть на налилие возможных багов и поправить если что, ипотому что сам в программировании не силён. Я изменил запрос в функции getProduct в файле catalog/model/export/yandex_yml.php Было $query = $this->db->query("SELECT p.*, pd.name, pd.description, pd.meta_description, m.name AS manufacturer, p2c.category_id, IFNULL(ps.price, p.price) AS price, wcd.unit AS weight_unit FROM " . DB_PREFIX . "product p JOIN " . DB_PREFIX . "product_to_category AS p2c ON (p.product_id = p2c.product_id) " . ($vendor_required ? '' : 'LEFT ') . "JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "product_special ps ON (p.product_id = ps.product_id) AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ps.date_start < NOW() AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW()) LEFT JOIN " . DB_PREFIX . "weight_class_description wcd ON (p.weight_class_id = wcd.weight_class_id) AND wcd.language_id='" . (int)$this->config->get('config_language_id') . "' WHERE p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'" .($allowed_categories ? " AND p2c.category_id IN (" . $this->db->escape($allowed_categories) . ")" : "") .$sql_blacklist .($allowed_manufacturers ? " AND p.manufacturer_id IN (" . $this->db->escape($allowed_manufacturers) . ")" : "") . " AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.date_available <= NOW() AND p.status = '1' AND (p.quantity > '0' OR p.stock_status_id != '" . (int)$out_of_stock_id . "') GROUP BY p.product_id ORDER BY product_id"); Сило $query = $this->db->query("SELECT p.*, pd.name, pd.description, pd.meta_description, m.name AS manufacturer, p2c.category_id, IFNULL(ps.price, p.price) AS price, wcd.unit AS weight_unit FROM " . DB_PREFIX . "product p JOIN " . DB_PREFIX . "product_to_category AS p2c ON (p.product_id = p2c.product_id) " . ($vendor_required ? '' : 'LEFT ') . "JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "product_special ps ON (p.product_id = ps.product_id) AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ps.date_start < NOW() AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW()) LEFT JOIN " . DB_PREFIX . "weight_class_description wcd ON (p.weight_class_id = wcd.weight_class_id) AND wcd.language_id='" . (int)$this->config->get('config_language_id') . "' WHERE p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'" .($allowed_categories ? " AND p2c.category_id IN (" . $this->db->escape($allowed_categories) . ")" : "") .$sql_blacklist .($allowed_manufacturers ? " AND p.manufacturer_id IN (" . $this->db->escape($allowed_manufacturers) . ")" : "") . " AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.date_available <= NOW() AND p2c.main_category = 1 AND p.status = '1' AND (p.quantity > '0' OR p.stock_status_id != '" . (int)$out_of_stock_id . "') GROUP BY p.product_id ORDER BY product_id"); Собственно изменение ровно в 1 строчку, а именно добавилась строчка AND p2c.main_category = 1 Знаю, что для программистов сия проэтодура аналогична копанию в песочниэто, но для меня она была необходима и нетривиальна, может быть еещё кому-то поможет в решение описанной проблемы)
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.