Перейти к содержанию
Andrej1986

[Решено?..] Не вычитать со склада для всех товаров со статусом "предзаказ"

Рекомендуемые сообщения

Здравствуйте. Подскажите, может кто-то делал подобное, как сделать, чтобы у всех товаров с определённым статусом на складе (например "предзаказ") автоматически проставлялся статус "не вычитать со склада" у самого товара и у всех его опций?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а товары как заводятся в магазине?

 

если вручную - просто копируйте товар, в котором нужное уже выставлено, скопируется в новый

если через импорт - при импорте и выставлять нужное

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не вручную, выгрузка из 1С, а потом статус у некоторых товара в предзаказ устанавливается вручную. Проблема связать статус опций со статусом товара.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Или может кто-то подскажет, как записать запрос, чтобы если статус у товара "предзаказ"(stock_status_id=8 из таблицы product), то выставить статус у опций "не вычитать со склада"(substract=0 из таблицы product_option_value)?

Изменено пользователем Andrej1986

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может можно как-то так?

UPDATE product_option_value
SET subtract=0
FROM product_option_value
JOIN product ON product_option_value.product_id = product.product_id
WHERE product.stock_status_id=8

В какой-то функции вставить типа такого запроса и прикрепить к кнопке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Так а при чём здесь выгрузка? Если вручную у некоторых товаров после выгрузки проставляется "предзаказ"? В 1С нет такого, это если самому дописывать какое-то поле номенклатуры и выставлять статус в 1С, то тогда выгрузку переделывать есть смысл, а так не понятно какому товару присваивать "предзаказ", а какому нет. Товар есть и по предзаказу и просто в наличии. Не хочется вручную просто менять каждый раз ещё и вычитание со склада. Или просто кнопку в админке прицепить с правильным запросом - если товар по предзаказу, то не вычитать и его, и опции

Изменено пользователем Andrej1986

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Склоняюсь к кнопке, по нажатию на которую, будет проставляться "не вычитать со склада" у товаров по предзаказу. Если б только с запросом кто-то помог.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

admin/model/catalog/product.php

найти

public function addProduct($data) {...
public function editProduct($product_id, $data) {...
сделать внутри

1.

subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "'
>>

subtract = '" . ((int)$data['stock_status_id'] == 999) ? 0 : (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "'
2.

subtract = '" . (int)$product_option_value['subtract'] . "'
>>

subtract = '" . ((int)$data['stock_status_id'] == 999) ? 0 : (int)$product_option_value['subtract'] . "'
вместо 999 - id статуса "предзаказ".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.