Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Как установить ВЕС для всех товаров в категории


Recommended Posts

Добрый день и с прошедшими праздниками всех Форумчан.

 

 

Прошу помочь с такой задачей.

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

К примеру категория "Мужские футболки", вес каждой футболки от 220-300 грамм

Устанавливаю вес в категории 250 грамм и во всех товарах данной категории выводился данный вес.

У меня проблемы с запросами в базу данных, по этому прошу помощи у знатоков в решении моей проблемы

Внес вот такие изменения в контролере admin/controller/catalog/category.php

 

//перед строкой 
if (isset($this->request->post['top'])) {
//добавил
if (isset($this->request->post['weight'])) {
    $this->data['weight'] = $this->request->post['weight'];
} else if (!empty($product_info)) {
    $this->data['weight'] = $product_info['weight'];
} else {
    $this->data['weight'] = '';
}

Далее, в /admin/view/template/catalog/category_form.tpl добавил следующий код:

<!-- перед строкой -->
<tr>
    <td><?php echo $entry_top; ?></td>
<!-- добавил -->
<tr>
    <td><?php echo $entry_weight; ?></td>
    <td><input type="text" name="weight" value="<?php echo $weight; ?>" /></td>
</tr>

Далее, нужно наладить запросы в базу данный в admin/modal/catalog/category.php

Для того чтобы он как-то передавал данные для каждого продукта...

p.s. Заранее, спасибо за ответ друзья!

 

Link to comment
Share on other sites


Создайте в таблице category поле weight и вносите туда все необходимые данные, соотв. и в каталоге, будуте выводить только те данные веса, ключ которого будет category_id, в самой базе добавьте на инсерт и апдейт таблицы запрос  `weight` = '" . (int)$data['weight'] . "',

Link to comment
Share on other sites

Я так понял, что в /admin/model/catalog/category.php требуется добавить:

public function addCategory($data) {
   $this->db->query("INSERT INTO " . DB_PREFIX . "category SET parent_id = '" . (int)$data['parent_id'] . "', `weight` = '" . (int)$data['weight'] . "', `top` = '" . (isset($data['top']) ? (int)$data['top'] : 0) . "', `column` = '" . (int)$data['column'] . "', sort_order = '" . (int)$data['sort_order'] . "', status = '" . (int)$data['status'] . "', date_modified = NOW(), date_added = NOW()");

И по логике думаю нужно добавить в /admin/model/catalog/product.php нужно добавить:

if (isset($data['product_category'])) {
foreach ($data['product_category'] as $category_id) {
       $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_category SET product_id = '" . (int)$product_id . "', category_id = '" . (int)$category_id . "', `weight` = '" . (int)$data['weight'] . "'");
  }	
}

 

Исправьте пожалуйста, если сделал что либо не верно с запросом..

Соответственно в БД category добавил новую таблицу " weight "

Link to comment
Share on other sites


Всё верно, только вот файл /admin/model/catalog/product.php трогать не надо, тут независимая весовая единица для товаров, вам же на категории нужно ?!

Link to comment
Share on other sites

Baco, алгоритм такой

Имеется категория ФУТБОЛКИ

Товар 20 видов футболок, которые находятся в Категории ФУТБОЛКИ

В панели администрации, при выставлении веса в категории ФУТБОЛКИ Weight: " 999 ", у всех товаров, что находятся в этой категории, вес должен меняться на "999"

Проще говоря, мне нужно при выставлении в категории значении веса "999" запрос передавал данные в modal/catalog/product.php

	public function addProduct($data) {
		$this->db->query("INSERT INTO " . DB_PREFIX . "product SET 

 

в таблицу 

weight = '" . (float)$data['weight'] . "', 

 

И там уже этот вес товара автоматом просчитывался при доставке и в корзине при оформлении заказа

------------------------------------------------------------------------------

Идея была изначально сделать в корзине на AJAX изменение веса, но тут могут схитрить покупатели, и по этому, такая идея не подходит..

Для чего это нужно: Многие занимаются продажами гаджетов и т.д. из Китая по предварительному заказу. Вот данная реализация поможет высчитывать примерный вес товара при оформлении заказа тем, кто использует парсер.. Создавая категории с теми товарами, где вес товара приблизительно подходит.

Link to comment
Share on other sites


В таком случае, могу посоветовать batch editor, зачем изобретать велосипед ?

batch editor - не подходит. у меня товары добавляются автоматически в течении определенного времени. для этого мне и требуется  чтобы при каждом добавлении товара в категорию, в этом товаре прописывался вес товара. А в этом модули, что вы предлагаете, очень много лишнего, что мне не нужно и все нужно менять в ручную.

Link to comment
Share on other sites


  • 4 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • 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.