SELECT 
	'sofadiretodafabrica.com.br' AS dominio,
	'204' AS id_loja,
	'getProdutoIdProduto' AS funcao,
	'0.00' AS valor_total_pago,
	'0.00' AS qtde_falta,
	'0.00' AS qtde_vendida,
	'1' AS quantidade_anfitriao,
	'0' AS nomes_anfitrioes,
	'0' AS id_lista,
	'0' AS produto_coletivo,
	
	
	IF(GROUP_CONCAT(TPV.id ORDER BY TPV.posicao, TPV.id) IS NOT NULL,
	CONCAT('[', GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'id', TPV.id,
	
	'filtro_info', IF(
	TRIM(COALESCE(TPP.filtro_info, '')) != '', 
	TPP.filtro_info, 
	IF(
	'Opções de Tecido' != '', 
	'Opções de Tecido', 
	'Info. Extra'
	)
	), 
	'filtro_cor', IF(
	TRIM(COALESCE(TPP.filtro_cor, '')) != '', 
	TPP.filtro_cor, 
	IF(
	'COR' != '', 
	'COR', 
	'Cor:'
	)
	),
	'origem_fiscal', TPV.origem_fiscal,
	'gtin_embalagem', TPV.gtin_embalagem,
	'cest', TPV.cest,
	'ncm', TPV.ncm,
	'nbm', TPV.nbm,
	'ean', TPV.ean,
	'gtin', TPV.gtin,
	'qtde_estoque_filial_1', TPV.qtde_estoque_filial_1,
	'qtde_estoque_filial_2', TPV.qtde_estoque_filial_2,
	'id_variacao', TPV.id,
	'preco_custo', TPV.preco_custo,
	'preco_pj', TPV.preco_pj,
	'preco_pj_de', TPV.preco_pj_de,
	'preco_pf', TPV.preco_pf,
	'preco_pf_de', TPV.preco_pf_de,
	'comprimento', TPV.comprimento,
	'largura', TPV.largura,
	'altura', TPV.altura,
	'peso', TPV.peso,
	'cubagem', TPV.cubagem,
	'id_produto', TPV.id_produto,
	'variacao_qtde_estoque', TPV.qtde_estoque,
	'estoque_geral', TPV.qtde_estoque,
	'qtde_estoque', TPV.qtde_estoque,
	'ativo', IF(TPP.formato_produto IN ('S', 'K'), 1, TPV.ativo),
	'id_produto_cor', TPCOR.id,
	'id_grade_cor', TPCOR.id,
	'cor', TPCOR.cor,
	'cor_titulo', TPCOR.titulo,
	'titulo_grade_cor', TPCOR.titulo,
	'cor_tipo', TPCOR.tipo,
	'tipo_cor', TPCOR.tipo,
	'ativo_cor', TPCOR.ativo,
	'infoextra', TPIE.titulo,
	'titulo_info_extra', TPIE.titulo,
	'titulo_infoExtra', TPIE.titulo,
	'id_produto_informacao_extra', TPIE.id,
	'ativo_informacao_extra', TPIE.ativo,
	'imagem_cor_url', 
	IF(TPCOR.cor <> '' AND TPCOR.tipo = 'textura', 
	CONCAT('https://sofadiretodafabrica.com.br/painel/assets/upload_textura/', TPCOR.cor), 
	'' 
	),
	'imagem_cor_file', 
	IF(TPCOR.cor <> '' AND TPCOR.tipo = 'textura', 
	CONCAT('/home/sofadiretodafab/public_html/painel/assets/upload_textura/', TPCOR.cor), 
	'' 
	)
	) ORDER BY TPV.posicao, TPV.id
	), ']'),
	NULL
	) AS variacao,

	(
	SELECT CONCAT('[', GROUP_CONCAT(
	JSON_OBJECT(
	'id_origem', id_origem,
	'markup_importacao', markup_importacao,
	'markup_exportacao', markup_exportacao
	)
	), ']')
	FROM (
	SELECT 
	TAV1.id_origem,
	(
	SELECT TAV2.campo_valor
	FROM table_apis_valores TAV2
	WHERE TAV2.id_origem = TAV1.id_origem AND TAV2.campo_titulo = 'markup_importacao'
	LIMIT 1
	) AS markup_importacao,
	(
	SELECT TAV3.campo_valor
	FROM table_apis_valores TAV3
	WHERE TAV3.id_origem = TAV1.id_origem AND TAV3.campo_titulo = 'markup_exportacao'
	LIMIT 1
	) AS markup_exportacao
	FROM table_apis_valores TAV1
	GROUP BY TAV1.id_origem
	) AS subquery_resultado
	) AS markups_geral


	,
	
	IF(GROUP_CONCAT(GI.id ORDER BY GI.posicao ASC) IS NOT NULL,
	CONCAT('[', GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'id', GI.id,
	'posicao', GI.posicao,
	'nome_imagem', GI.nome_imagem,
	'tabela', GI.tabela,
	'id_tabela', GI.id_tabela,
	'id_produto', GI.id_tabela,
	'imagem', GI.imagem
	) ORDER BY GI.posicao ASC
	), ']'),
	NULL
	) AS galeria
	,
	
	TPFP.imagem as imagem_principal,
	TPFP.id as imagem_principal_id
	,
	
	TPFS.imagem as imagem_secundaria,
	TPFS.id as imagem_secundaria_id
	,
	
	TLGA.id as desconto_a_vista
	,
	
	WVP.qtde_total_vendida
	,
	

	TPP.kit_id_produtos_removidos,
	TPP.kit_pode_vender_separado,
	TPP.kit_dimensoes_personalizadas,
	TPP.tags,
	TPP.id_forms,
	TPP.subtitulo,
	TPP.produto_frete_volumes,
	TPP.volumes,
	TPP.title,
	TPP.keyphrases,
	TPP.description,
	TPP.tagadicionais
	,
	
	TPP.unidade_medida, 
	TPP.unidade_medida_ativo as unidade_medida_ativo_produto, 
	TPP.unidade_medida_legenda as unidade_medida_legenda_produto, 
	TPP.unidade_medida as unidade_medida_produto, 
	TPP.unidade_medida_unidade_multiplicadora as unidade_medida_unidade_multiplicadora_produto, 
	TPP.unidade_medida_altura_maxima as unidade_medida_altura_maxima_produto, 
	TPP.unidade_medida_altura_minima as unidade_medida_altura_minima_produto, 
	TPP.unidade_medida_largura_maxima as unidade_medida_largura_maxima_produto, 
	TPP.unidade_medida_largura_minima as unidade_medida_largura_minima_produto, 
	TPP.unidade_medida_forma_venda as unidade_medida_forma_venda_produto, 
	TPP.unidade_medida_preco_base_produto as unidade_medida_preco_base_produto, 

	TUML.legenda as unidade_medida_legenda_loja,
	TUML.legenda_2 as unidade_medida_legenda_2_loja,
	TUML.legenda_3 as unidade_medida_legenda_3_loja,
	TUML.legenda_4 as unidade_medida_legenda_4_loja,
	TUML.legenda_5 as unidade_medida_legenda_5_loja,
	TUML.unidade_multiplicadora as unidade_medida_unidade_multiplicadora_loja, 
	TUML.altura_maxima as unidade_medida_altura_maxima_loja, 
	TUML.altura_minima as unidade_medida_altura_minima_loja, 
	TUML.largura_maxima as unidade_medida_largura_maxima_loja, 
	TUML.largura_minima as unidade_medida_largura_minima_loja, 
	TUML.forma_venda as unidade_medida_forma_venda_loja, 
	TUML.preco_base_produto as unidade_medida_preco_base_loja, 

	CTUM.legenda as unidade_medida_legenda_central,
	CTUM.unidade_multiplicadora as unidade_medida_unidade_multiplicadora_central, 
	CTUM.altura_maxima as unidade_medida_altura_maxima_central, 
	CTUM.altura_minima as unidade_medida_altura_minima_central, 
	CTUM.largura_maxima as unidade_medida_largura_maxima_central, 
	CTUM.largura_minima as unidade_medida_largura_minima_central, 
	CTUM.forma_venda as unidade_medida_forma_venda_central,
	CTUM.preco_base_produto as unidade_medida_preco_base_central
	,
	
	TPP.id_produto_marca_fabricante as id_fabricante,
	TPP.id_produto_marca_fabricante,
	TPP.id_produto_marca_fabricante as id_mf,
	vpmff.titulo as marca_fabricante_titulo,
	vpmff.url_amigavel as url_amigavel_fabricante,
	vpmff.titulo as titulo_fabricante,
	vpmff.titulo as fabricante_produto,
	vpmff.imagem,
	vpmff.imagem as fabricante_imagem,
	vpmff.imagem as imagem_fabricante,
	vpmff.id as fabricante_id

	,
	
	COALESCE(TLGAATIVO.id, 0) as gateways_ativo,

	IF(GROUP_CONCAT(TLGAATIVO.id) IS NOT NULL,
	CONCAT('[', GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'id', TLGAATIVO.id,
	'id_gateway', TLGAATIVO.id_gateway,
	'icone', TLGAATIVO.icone,
	'imagem', TLGAATIVO.imagem,
	'juros', 1,
	'imagem_loja_url', IF((TLGAATIVO.imagem_loja) <> '', CONCAT('https://sofadiretodafabrica.com.br/painel/assets/upload_gateways/', TLGAATIVO.imagem_loja), ''),
	'imagem_loja_file', IF((TLGAATIVO.imagem_loja) <> '', CONCAT('/home/sofadiretodafab/public_html/painel/assets/upload_gateways/', TLGAATIVO.imagem_loja), ''),
	'titulo', 
	IF(
	TLGAATIVO.titulo_loja <> '', 
	TLGAATIVO.titulo_loja, 
	IF(
	TLGAATIVO.nome_alternativo <> '', 
	TLGAATIVO.nome_alternativo, 
	TLGAATIVO.titulo
	)
	),
	'posicao', IF((TLGAATIVO.posicao_loja) <> '', TLGAATIVO.posicao_loja, TLGAATIVO.id),
	'campos', TLGAATIVO.campos
	)
	), ']'),
	NULL
	) AS gateways_campos
	,
	
	UMKT_2.marketplace_telefone, 
	UMKT_2.marketplace_rg_ie, 
	UMKT_2.marketplace_cpf_cnpj, 
	UMKT_2.marketplace_id_cidade_nome, 
	UMKT_2.marketplace_id_estado_nome, 
	UMKT_2.marketplace_bairro, 
	UMKT_2.marketplace_numero, 
	UMKT_2.marketplace_endereco, 
	UMKT_2.marketplace_cep, 
	UMKT_2.marketplace_nome, 
	UMKT_2.loja_imagem_logo_marketplaces, 
	UMKT_2.loja_imagem_icone_marketplaces, 
	COALESCE(NULLIF(TPP.id_mkt_lojista, ''), 0) AS id_mkt_lojista
	,
	
	IF(TPP.qtde_multipla_pf > 0, TPP.qtde_multipla_pf, 1) AS qtde_multipla_pf,
	IF(TPP.qtde_multipla_pj > 0, TPP.qtde_multipla_pj, 1) AS qtde_multipla_pj,
	IF(TPP.qtde_minimo_pf > 0, TPP.qtde_minimo_pf, 1) AS qtde_minimo_pf,
	IF(TPP.qtde_minimo_pj > 0, TPP.qtde_minimo_pj, 1) AS qtde_minimo_pj
	,
	
	TPP.preco_tipo,

	CASE
	WHEN TPP.preco_tipo = '1' THEN
	AVG(TPPE.preco_pf_de) 
	ELSE 
	NULL
	END AS preco_pf_de_estado,

	CASE
	WHEN TPP.preco_tipo = '1' THEN
	AVG(TPPE.preco_pf) 
	ELSE 
	NULL
	END AS preco_pf_estado,

	CASE
	WHEN TPP.preco_tipo = '1' THEN
	AVG(TPPE.preco_pj) 
	ELSE 
	NULL
	END AS preco_pj_estado,

	CASE
	WHEN TPP.preco_tipo = '1' THEN
	AVG(TPPE.preco_pj_de) 
	ELSE 
	NULL
	END AS preco_pj_de_estado,	

	CASE
	WHEN TPP.preco_tipo = '1' THEN
	CONCAT(
	'{',
	GROUP_CONCAT(
	DISTINCT JSON_QUOTE(TPPE.id_estado_uf), ': ',
	JSON_OBJECT(
	'preco_pj', TPPE.preco_pj,
	'preco_pj_de', TPPE.preco_pj_de,
	'preco_pf', TPPE.preco_pf,
	'preco_pf_de', TPPE.preco_pf_de
	)
	ORDER BY TPPE.id_estado_uf
	),
	'}'
	)
	ELSE NULL
	END AS precos_estados

	,
	
	VTP.id as tipo_produto_id, 
	VTP.preco as tipo_produto_preco, 
	VTP.estoque as tipo_produto_estoque, 
	VTP.frete_dimensoes as tipo_produto_frete_dimensoes, 
	VTP.desconto as tipo_produto_desconto, 
	VTP.tipo as tipo_produto_tipo, 
	VTP.quantidade_sessao as tipo_produto_quantidade_sessao,
	VTP.titulo as titulo_produto_tipo, 
	VTP.titulo as tipo_produto_titulo, 

	IF(IFNULL(TPP.tipo_produto, '') <> '', TPP.tipo_produto, 1) AS tipo_produto,
	IF(IFNULL(TPP.forma_envio, '') <> '', TPP.forma_envio, 3) AS forma_envio
	,
	
	TPP.id_externo_21,
	TPP.cod_referencia,
	TPP.frete_gratis,
	TPP.subtitulo,
	TPP.descontos_produto,
	TPP.promocao_data_inicio,
	TPP.promocao_data_encerramento,
	TPP.imposto_pf_pj,
	TPP.taxonomy,
	TPP.exibir_google_feed,
	TPP.exibir_face_feed,
	TPP.taxonomy_genero,
	TPP.taxonomy_idade,

	TPP.cache,
	TPP.dias_adicionais,

	TPP.titulo, 
	TPP.titulo as produto_titulo, 
	TPP.ativo, 
	TPP.id, 
	TPP.formato_produto,
	TPP.url_produto, 
	TPP.url_produto as url_amigavel, 
	TPP.qtde_cliques, 
	TPP.id as id_produto, 
	TPP.situacao_produto, 
	TPP.sob_consulta, 
	TPP.data_validade, 
	TPP.tempo_garantia, 
	TPP.opcao_variacao_produto,

	IF(
	TRIM(COALESCE(TPP.filtro_info, '')) != '', 
	TPP.filtro_info, 
	IF(
	'Opções de Tecido' != '', 
	'Opções de Tecido', 
	'Info. Extra'
	)
	) AS filtro_info,

	IF(
	TRIM(COALESCE(TPP.filtro_cor, '')) != '', 
	TPP.filtro_cor, 
	IF(
	'COR' != '', 
	'COR', 
	'Cor:'
	)
	) AS filtro_cor,

	CASE 
	WHEN TPP.id_origem_cadastro > 0 THEN TPP.id_origem_cadastro
	WHEN TPP.id_origem_cadastro IS NULL OR TPP.id_origem_cadastro = 0 OR TPP.id_origem_cadastro = '' THEN 1
	ELSE TPP.id_origem_cadastro
	END AS id_origem_cadastro
	,
	
	AVG(TCOMENTARIO.avaliacao) AS comentarios_media,
	COUNT(DISTINCT TSOLICITACAO.id) AS quantidade_solicitacoes,
	COUNT(DISTINCT TCOMENTARIO.id) AS quantidade_comentarios,

	IF(GROUP_CONCAT(TCOMENTARIO.id) IS NOT NULL,
	CONCAT('[', GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'id', TCOMENTARIO.id,
	'cliente_nome', TCOMENTARIO.cliente_nome,
	'data_cadastro', TCOMENTARIO.data_cadastro,
	'avaliacao', TCOMENTARIO.avaliacao,
	'id_cliente', TCOMENTARIO.id_cliente,
	'id_produto', TCOMENTARIO.id_produto,
	'texto', TCOMENTARIO.texto,
	'produto_titulo', TCOMENTARIO.produto_titulo,
	'id_variacao', TCOMENTARIO.produto_titulo
	)
	), ']'),
	NULL
	) AS comentarios

	,
	
	TGRUPO.titulo as titulo_grupo,
	TGRUPO.id as id_grupo,
	TGRUPO.url_amigavel as url_amigavel_grupo,
	TCATEGORIA.titulo as titulo_categoria,
	TCATEGORIA.id as id_categoria,
	TCATEGORIA.url_amigavel as url_amigavel_categoria,
	TSUBCATEGORIA.titulo as titulo_subcategoria,
	TSUBCATEGORIA.id as id_subcategoria,
	TSUBCATEGORIA.url_amigavel as url_amigavel_subcategoria,

	IF(GROUP_CONCAT(TGRUPO.id) IS NOT NULL,
	CONCAT('[', GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'id', TGRUPO.id,
	'desconto', TGRUPO.desconto,
	'valor_minimo_desconto', TGRUPO.valor_minimo_desconto,
	'promocao_data_inicio', TGRUPO.promocao_data_inicio,
	'promocao_data_encerramento', TGRUPO.promocao_data_encerramento,
	'titulo', TGRUPO.titulo,
	'url_amigavel', TGRUPO.url_amigavel
	)
	), ']'),
	NULL
	) AS grupo,

	IF(GROUP_CONCAT(TCATEGORIA.id) IS NOT NULL,
	CONCAT('[', GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'id', TCATEGORIA.id,
	'id_categoria', TCATEGORIA.id,
	'id_grupo', TCATEGORIA.id_produto_grupo,
	'desconto', TCATEGORIA.desconto,
	'valor_minimo_desconto', TCATEGORIA.valor_minimo_desconto,
	'promocao_data_inicio', TCATEGORIA.promocao_data_inicio,
	'promocao_data_encerramento', TCATEGORIA.promocao_data_encerramento,
	'titulo', TCATEGORIA.titulo,
	'titulo_categoria', TCATEGORIA.titulo,
	'url_amigavel', TCATEGORIA.url_amigavel
	)
	), ']'),
	NULL
	) AS categoria,

	IF(GROUP_CONCAT(TSUBCATEGORIA.id) IS NOT NULL,
	CONCAT('[', GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'id', TSUBCATEGORIA.id,
	'id_subcategoria', TSUBCATEGORIA.id,
	'id_grupo', TSUBCATEGORIA.id_produto_grupo,
	'id_categoria', TSUBCATEGORIA.id_produto_categoria,
	'desconto', TSUBCATEGORIA.desconto,
	'valor_minimo_desconto', TSUBCATEGORIA.valor_minimo_desconto,
	'promocao_data_inicio', TSUBCATEGORIA.promocao_data_inicio,
	'promocao_data_encerramento', TSUBCATEGORIA.promocao_data_encerramento,
	'titulo', TSUBCATEGORIA.titulo,
	'titulo_subcategoria', TSUBCATEGORIA.titulo,
	'url_amigavel', TSUBCATEGORIA.url_amigavel
	)
	), ']'),
	NULL
	) AS subcategoria
	,
	
	IF(GROUP_CONCAT(TPLP.id) IS NOT NULL,
	CONCAT(GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'id', TPLP.id,
	'estados', TPLP.estados,
	'por_estados', TPLP.por_estados,
	'id_itens', TPLP.id_itens,
	'tipo_vinculo_clientes_view', TPLP.tipo_vinculo_clientes_view,
	'tipo_desconto_acrescimo', TPLP.tipo_desconto_acrescimo,
	'tipo_vinculo', TPLP.tipo_vinculo,
	'tipo_vinculo_itens', TPLP.tipo_vinculo_itens,
	'url_amigavel', TPLP.url_amigavel,
	'tipo_vinculo_integracoes', TPLP.tipo_vinculo_integracoes,
	'tipo_vinculo_clientes', TPLP.tipo_vinculo_clientes,
	'enviando_ou_recebendo', TPLP.enviando_ou_recebendo,
	'porcetagem', TPLP.porcetagem,
	'data_inicio', TPLP.data_inicio,
	'data_encerramento', TPLP.data_encerramento,
	'eterno', TPLP.eterno,
	'ativo', TPLP.ativo,
	'mostrar_selo_listagem_produtos', TPLP.mostrar_selo_listagem_produtos,
	'atribuir_regra_integracao', TPLP.atribuir_regra_integracao,
	'titulo', TPLP.titulo
	)
	)),
	NULL
) AS regra_atribuida,
	
	TCPCAIXA.id as caixa_id,
	TCPCAIXA.titulo as caixa_titulo
	,
	
	TPII.tipo,
	TPII.id as imagem_informativa_id,
	TPII.imagem as imagem_arquivo,

	TPII.titulo_botao,
	TPII.titulo_botao_arquivo
	,
	
	IF(GROUP_CONCAT(TPSE.id) IS NOT NULL,
	CONCAT('[', GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'id', TPSEV.id,
	'id_produto', TPSEV.id_produto,
	'id_servicos_extra', TPSEV.id_servicos_extra,
	'ativo', TPSEV.ativo,
	'preco', TPSEV.preco,
	'imagem', TPSE.imagem,
	'titulo', TPSE.titulo
	)
	ORDER BY TPSE.titulo ASC
	), ']'),
	NULL
	) AS servicos_extra_produto
	,
	
	CASE
	WHEN TPP.formato_produto = 'K' THEN
	CONCAT(
	GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'peso', CAST(subquery_kit_totais.total_peso AS DECIMAL(15,2)),
	'altura', CAST(subquery_kit_totais.total_altura AS DECIMAL(15,2)),
	'cubagem', CAST(subquery_kit_totais.total_cubagem AS DECIMAL(15,2)),
	'largura', CAST(subquery_kit_totais.total_largura AS DECIMAL(15,2)),
	'preco_pf', CAST(subquery_kit_totais.total_preco_pf AS DECIMAL(15,2)),
	'preco_pj', CAST(subquery_kit_totais.total_preco_pj AS DECIMAL(15,2)),
	'comprimento', CAST(subquery_kit_totais.total_comprimento AS DECIMAL(15,2)),
	'preco_custo', CAST(subquery_kit_totais.total_preco_custo AS DECIMAL(15,2)),
	'preco_pf_de', CAST(subquery_kit_totais.total_preco_pf_de AS DECIMAL(15,2)),
	'preco_pj_de', CAST(subquery_kit_totais.total_preco_pj_de AS DECIMAL(15,2))
	)
	)
	)
	ELSE NULL
	END AS kit_totais,

	CASE
	WHEN TPP.formato_produto = 'K' THEN
	CASE
	WHEN GROUP_CONCAT(SubJoin.id) IS NOT NULL THEN
	CONCAT(
	'[', 
	GROUP_CONCAT(
	DISTINCT JSON_OBJECT(
	'peso', SubJoin.peso,'altura', SubJoin.altura,'cubagem', SubJoin.cubagem,'largura', SubJoin.largura,'preco_pf', SubJoin.preco_pf,'preco_pj', SubJoin.preco_pj,'comprimento', SubJoin.comprimento,'preco_custo', SubJoin.preco_custo,'preco_pf_de', SubJoin.preco_pf_de,'preco_pj_de', SubJoin.preco_pj_de,
	
	'qtde_minima', SubJoin.qtde_minima,
	'id_produto', SubJoin.id_sugestao,
	'qtde_estoque_filial_1', SubJoin.qtde_estoque_filial_1,
	'qtde_estoque_filial_2', SubJoin.qtde_estoque_filial_2,
	'qtde_estoque', SubJoin.qtde_estoque,
	'titulo', SubJoin.titulo,
	'cod_referencia', SubJoin.cod_referencia,
	'unidade_medida', SubJoin.unidade_medida
	)
	), 
	']'
	)
	ELSE 
	NULL
	END
	ELSE 
	NULL
	END AS kit_produtos

	

	FROM table_produto_produto TPP 
	
	
	LEFT JOIN table_produto_variacao TPV 
	ON TPV.id_produto = TPP.id 
	AND (
	TPP.formato_produto IN ('S', 'K')
	OR (TPP.formato_produto = 'V' AND TPV.ativo = '1')
	)

	LEFT JOIN table_produto_cor TPCOR ON TPCOR.id = TPV.id_produto_cor 
	LEFT JOIN table_produto_informacao_extra TPIE ON TPIE.id = TPV.id_produto_informacao_extra 
	
	 
	LEFT JOIN galeria_imagens GI ON GI.id_tabela = TPP.id AND GI.tabela = 'table_produto_produto' AND GI.ativo = '1'
	
	 
	LEFT JOIN table_produto_foto_principal TPFP ON TPFP.id_produto = TPP.id
	
	 
	LEFT JOIN table_produto_foto_secundaria TPFS ON TPFS.id_produto = TPP.id
	
	
	LEFT JOIN table_loja_gateways_ativo TLGA ON FIND_IN_SET(TPP.id, TLGA.id_produtos) > 0 AND TLGA.ativo_loja = '1'
	
	
	LEFT JOIN view_vendas_produtos WVP ON WVP.id_produto = TPP.id
	
	
	LEFT JOIN table_produto_unidades_medidas TUML ON TUML.unidade = TPP.unidade_medida 
	LEFT JOIN central_table_unidades_medidas CTUM ON CTUM.unidade = TPP.unidade_medida 
	
	
	LEFT JOIN table_produto_marca_fabricante vpmff ON vpmff.id = TPP.id_produto_marca_fabricante
	
	
	LEFT JOIN table_loja_gateways_ativo TLGAATIVO ON COALESCE(NULLIF(TLGAATIVO.id_mkt_lojista, ''), 0) = COALESCE(NULLIF(TPP.id_mkt_lojista, ''), 0) AND TLGAATIVO.ativo_loja = '1'
	
	
	LEFT JOIN usuario UMKT_2 ON UMKT_2.id = COALESCE(NULLIF(TPP.id_mkt_lojista, ''), 0)
	
	 
	LEFT JOIN table_produto_preco_estado TPPE ON TPPE.id_produto = TPP.id AND TPPE.id_variacao = TPV.id
	
	 
	LEFT JOIN central_table_tipo_produto VTP ON VTP.id = TPP.tipo_produto
	
	
	LEFT JOIN table_produto_solicitacao TSOLICITACAO ON TSOLICITACAO.id_produto = TPP.id
	LEFT JOIN table_produto_comentario TCOMENTARIO ON TCOMENTARIO.id_produto = TPP.id AND TCOMENTARIO.status = '1'
	
	

	LEFT JOIN table_produto_grupo TGRUPO ON TPP.grupo LIKE CONCAT('%"', TGRUPO.id, '"%') AND TGRUPO.ativo = '1'
	LEFT JOIN table_produto_categoria TCATEGORIA ON TPP.categoria LIKE CONCAT('%"', TCATEGORIA.id, '"%') AND TCATEGORIA.ativo = '1'
	LEFT JOIN table_produto_subcategoria TSUBCATEGORIA ON TPP.subcategoria LIKE CONCAT('%"', TSUBCATEGORIA.id, '"%') AND TSUBCATEGORIA.ativo = '1'
	
	
	LEFT JOIN table_produto_lista_precos TPLP ON ( TPLP.tipo_vinculo_clientes is NULL OR TPLP.tipo_vinculo_clientes = '0' OR TPLP.tipo_vinculo_clientes = '' ) AND TPLP.tipo_desconto_acrescimo <> '' AND TPLP.ativo = '1' AND TPLP.porcetagem > 0  AND ((TPLP.data_inicio <= CURDATE() AND TPLP.data_encerramento >= CURDATE()) OR TPLP.eterno = '1')
	
	 
	LEFT JOIN table_caixas_padroes TCPCAIXA ON TCPCAIXA.id = TPP.id_caixas_padroes AND TCPCAIXA.ativo = '1' AND TCPCAIXA.qtde is NOT NULL AND TCPCAIXA.qtde > 0  AND TCPCAIXA.qtde <> '' 
	
	
	LEFT JOIN table_produto_imagem_informativa TPII ON TPII.id = TPP.id_produto_imagem_informativa AND TPII.ativo = '1'
	
	
	LEFT JOIN table_produto_servicos_extra_vincular TPSEV ON TPSEV.id_produto = TPP.id AND TPSEV.ativo = '1'
	LEFT JOIN table_produto_servicos_extra TPSE ON TPSE.id = TPSEV.id_servicos_extra AND TPSE.ativo = '1'
	
	 
	LEFT JOIN (
	SELECT 
	TPSKIT.id_produto,
	SUM(TPV3.peso * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_peso,
	SUM(TPV3.altura * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_altura,
	SUM(TPV3.cubagem * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_cubagem,
	SUM(TPV3.largura * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_largura,
	SUM(TPV3.preco_pf * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_preco_pf,
	SUM(TPV3.preco_pj * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_preco_pj,
	SUM(TPV3.comprimento * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_comprimento,
	SUM(TPV3.preco_custo * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_preco_custo,
	SUM(TPV3.preco_pf_de * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_preco_pf_de,
	SUM(TPV3.preco_pj_de * CAST(TPSKIT.qtde_minima AS DECIMAL(15,2))) AS total_preco_pj_de
	FROM table_produto_sugestao_kit TPSKIT
	LEFT JOIN table_produto_variacao TPV3 ON TPV3.id_produto = TPSKIT.id_sugestao
	GROUP BY TPSKIT.id_produto
	) AS subquery_kit_totais ON subquery_kit_totais.id_produto = TPP.id

	LEFT JOIN (
	SELECT 
	TPVKIT.peso,TPVKIT.altura,TPVKIT.cubagem,TPVKIT.largura,TPVKIT.preco_pf,TPVKIT.preco_pj,TPVKIT.comprimento,TPVKIT.preco_custo,TPVKIT.preco_pf_de,TPVKIT.preco_pj_de,
	
	TPKIT2.id AS id,
	TPKIT2.qtde_minima,
	TPKIT2.id_sugestao, 
	COALESCE(TPVKIT.qtde_estoque, 0) AS qtde_estoque,
	COALESCE(TPVKIT.qtde_estoque_filial_1, 0) AS qtde_estoque_filial_1,
	COALESCE(TPVKIT.qtde_estoque_filial_2, 0) AS qtde_estoque_filial_2,
	TPKIT2.id_produto,
	TPPKIT.titulo,
	TPPKIT.cod_referencia,
	TPPKIT.unidade_medida
	FROM table_produto_sugestao_kit TPKIT2
	INNER JOIN table_produto_variacao TPVKIT ON TPVKIT.id_produto = TPKIT2.id_sugestao
	INNER JOIN table_produto_produto TPPKIT ON TPPKIT.id = TPVKIT.id_produto
	) AS SubJoin
	ON SubJoin.id_produto = TPP.id AND TPP.formato_produto = 'K'
	

	WHERE 1 
	
	AND (
	TPP.formato_produto != 'K'
	OR (
	TPP.formato_produto = 'K' 
	AND SubJoin.id_produto IS NOT NULL
	)
	)
	
	
	 AND (TRIM(TPP.id) = 'poltrona-1-lugar-345' OR TRIM(TPP.url_produto) = 'poltrona-1-lugar-345') 
	AND TPP.idioma 	= 'br' 
	GROUP BY TPP.id