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

Проверка опции на остаток в Mega Filter PRO 1.2.8.6


PRammer

Recommended Posts

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

 

Ситуация такова. Есть ocStore 1.5.5.1.2 и фильтр Mega Filter PRO 1.2.8.6

 

Фильтр работает нормально, пока не обнаружил существенную проблему. Он не проверяет остаток Опции по наличию, т.е. > 0.

В настройках модуля нет на этот счет никаких намеков и предложений.

 

Решил копнуть руками и удалось мне заставить его подсчитывать корректно и выдавать правдивую информации об товаре опции с 0 остатком

сделал я это в файле mega_filter.php по адресу www/catalog/model/module

вынес $conditionsIn[] = '`pov`.`quantity` > 0'; за пределы условия проверки чего-то там...

private function _getCountsByOptions( array $conditions, array $conditionsIn ) {
		$counts	= array();

		$conditionsOut		= $this->_conditions['out'];
		$columns			= $this->_baseColumns( '`pov`.`option_value_id`', '`pov`.`option_id`', '`p`.`product_id`' );

		if( in_array( $this->route(), self::$_specialRoute ) ) {
			$columns[] = $this->_specialCol();
			$conditions[] = '`special` IS NOT NULL';
		}

		if( ! empty( $this->_settings['in_stock_default_selected'] ) || ( ! empty( $this->_parseParams['stock_status'] ) && in_array( $this->inStockStatus(), $this->_parseParams['stock_status'] ) ) ) {
		}
		$conditionsIn[] = '`pov`.`quantity` > 0';

		$sql = $this->_createSQLByCategories(sprintf( "
			SELECT
				%s
			FROM
				`" . DB_PREFIX . "product` AS `p`
			INNER JOIN
				`" . DB_PREFIX . "product_option_value` AS `pov`
			ON
				`pov`.`product_id` = `p`.`product_id`
			%s
			WHERE
				%s
		", implode( ',', $columns ), $this->_baseJoin(), implode( ' AND ', $this->_baseConditions( $conditionsIn ) ) ));

НО осталась еще проблема, связанная с тем, что он не передает на вывод данные с учетом проверки товара на > 0.

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

 

Последнюю зацепку нашел на в mega_filter.xml по адресу www/vqmod/xml

в строке $sql = MegaFilterCore::newInstance( $this, $sql )->getSQL( __FUNCTION__ );

<file path="catalog/model/catalog/" name="product.php">
		<operation>
			<search position="before"><![CDATA[$query = $this->db->query($sql);]]></search>
			<add><![CDATA[
				if( in_array( __FUNCTION__, array( 'getProducts', 'getTotalProducts', 'getProductSpecials', 'getTotalProductSpecials' ) ) ) {
					if( ! empty( $this->request->get['mfp'] ) || ( NULL != ( $mfSettings = $this->config->get('mega_filter_settings') ) && ! empty( $mfSettings['in_stock_default_selected'] ) ) ) {
						$this->load->model( 'module/mega_filter' );

						$sql = MegaFilterCore::newInstance( $this, $sql )->getSQL( __FUNCTION__ );
					}
				}
			]]></add>
		</operation>

Кто сталкивался с подобной проблемой? Какие мысли на этот счет имеете? Что я могу упустить?

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


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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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