Объединение товаров

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

n4sm
n4sm
Репутация: 5
Сообщения: 15
Зарегистрирован: 27.02.2019
С нами: 5 лет 1 месяц

Сообщение #1 n4sm » 27.02.2019, 08:44

Очень хочется иметь возможность в админке выделять товары и обьединять товары в в один с вариантами (без объединений свойств, описаний и картинок. просто несколько пустых товаров слепить в один пустой с вариантами товаров.)
Может, кто уже сталкивался с подобным?

ЗЫ: в симпле была похожая штука вот тут
но прикрутить ее на okay cms с тремя языками у меня не получилось

Всем добра!

n4sm
n4sm
Репутация: 5
Сообщения: 15
Зарегистрирован: 27.02.2019
С нами: 5 лет 1 месяц

Сообщение #2 n4sm » 28.02.2019, 11:33

Есть кто умный?
Если нет, кто может быть умным за деньги?

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #3 korshunov » 28.02.2019, 11:56

Обращайтесь в личку или по контактам.

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #4 makki » 28.02.2019, 14:49

n4sm писал(а):Очень хочется иметь возможность в админке выделять товары и обьединять товары в в один с вариантами (без объединений свойств, описаний и картинок. просто несколько пустых товаров слепить в один пустой с вариантами товаров.)

1) Файл backend/design/html/products.tpl
после строки

Код: Выделить всё

<option value="duplicate">{$btr->products_create_dublicate|escape}</option>

добавьте

Код: Выделить всё

<option value="combine">Объединить варианты</option>

2) Файл backend/core/ProductsAdmin.php
После

Код: Выделить всё

case 'duplicate': {
                        /*Сделать копию товара*/
                        foreach($ids as $id) {
                            $this->products->duplicate_product(intval($id));
                        }
                        break;
                    }

Добавьте

Код: Выделить всё

case 'combine': {
                        $product_id = $ids[0];
                        $all_variants = $this->variants->get_variants(array('product_id'=>$ids));
                        $products_ids_to_delete = array();
                        foreach ($all_variants as $variant) {
                            if ($variant->product_id!=$product_id) {
                                $this->variants->update_variant($variant->id, array('product_id'=>$product_id));
                                $products_ids_to_delete[] = $variant->product_id;
                            }
                        }
                        foreach ($products_ids_to_delete as $p_id) {
                            $this->products->delete_product($p_id);
                        }
                        break;
                    }
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #5 makki » 02.03.2019, 06:27

Если при объединении нужно передать в варианты товаров имена товаров, код будет выглядеть так:

Код: Выделить всё

case 'combine': {
                        $product_id = $ids[0];
                        $all_variants = $this->variants->get_variants(array('product_id'=>$ids));
                        $products_ids_to_delete = array();
                        foreach ($all_variants as $variant) {
                            if ($variant->product_id!=$product_id) {
                                $product_to_delete = $this->products->get_product(intval($variant->product_id));
                                $this->variants->update_variant($variant->id, array('product_id'=>$product_id, 'name'=>$product_to_delete->name));
                                $products_ids_to_delete[] = $variant->product_id;
                            }
                        }
                        foreach ($products_ids_to_delete as $p_id) {
                            $this->products->delete_product($p_id);
                        }
                        break;
                    }
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 30 гостей