下面的查询正确地给出了已启用的可配置项的列表,其中所有关联的简单项都被禁用。如何修改此项以将此列表中可配置项的“status”属性值更新为“2”(它们没有子项,因此需要禁用)
我很感激将表命名和引用的方法混合在一起。我对这一点还不熟悉,并且已经将不同解决方案的元素结合起来。
SELECT `mgic_catalog_product_entity`.`entity_id` FROM (((`mgic_eav_attribute`
join `mgic_catalog_product_entity_int` on ((`mgic_eav_attribute`.`attribute_id` = `mgic_catalog_product_entity_int`.`attribute_id`)))
join `mgic_catalog_product_entity` on ((`mgic_catalog_product_entity_int`.`entity_id` = `mgic_catalog_product_entity`.`entity_id`)))
join `mgic_cataloginventory_stock_item` on ((`mgic_catalog_product_entity_int`.`entity_id` = `mgic_cataloginventory_stock_item`.`product_id`)))
WHERE `mgic_catalog_product_entity`.`type_id` = 'configurable' AND ((`mgic_eav_attribute`.`attribute_code` = 'status') and
(`mgic_catalog_product_entity_int`.`value` = 2)) AND NOT EXISTS(
SELECT *
FROM mgic_catalog_product_super_link cpsl
INNER JOIN mgic_catalog_product_entity_int cpei ON cpei.entity_id = cpsl.product_id
WHERE
parent_id = `mgic_catalog_product_entity`.`entity_id`
AND cpei.attribute_id = 97
AND cpei.value = 1
);
1条答案
按热度按时间plupiseo1#
使用禁用的simples获取可配置文件的id
作为
status
属性将始终具有id 97您可以使用以下sql:按ID禁用产品
为了回答您更新的问题,我建议您获取所有实体ID,然后使用magento模型来更改每个产品的状态,就像这里建议的那样https://magento.stackexchange.com/questions/152263/how-to-disable-enable-a-product-programatically-in-magento2 . 例如: