Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Por favor, poste aqui todas as dúvidas que você está tendo sobre a instalação, atualização ou configuração do OpenCart v1.x
Por ericolvr
#38454
Boa noite,
pessoal preciso gerar um XML para que uma outra plataforma de e-commerce consuma esse serviço. Essa empresa me enviou um arquivo criado especificamente para plataforma OpenCart, o coloquei no local indicado e tentei roda-lo. Faz uns 5 anos que não trabalho com PHP, basicamente Python/Django.. Alguém pode me ajudar?

Quando tentei rodar o arquivo, retornou um erro:
Fatal error: Class 'Controller' not found in /home/myrnaadan/webapps/pecadeluxo/catalog/controller/feed/fashionera.php on line 15

Arquivo me foi enviado:
Código: Selecionar todos
<?php 
/********************************************************************************************* 
 * Script para gerar XML 
 * 
 * Instalar na pasta:
 * /catalog/controller/feed/
 * 
 * Jonas Thomaz de faria
 * jfaria@team.br.inter.net
 * 2012/07/30
 * 
 * 25/09/2012 - Inclusao de categorias
 *  
 **********************************************************************************************/
class ControllerFeedFashionera extends Controller {
	public function index(){
		$this->load->model('catalog/category');
		$this->load->model('catalog/product');

		$produtos_xml ='<?xml version="1.0" encoding="UTF-8" ?>';
		$produtos_xml.="\n".'<produtos>';
		
		//pega lista de Produtos
		$result=$this->model_catalog_product->getProducts();
		
		foreach($result as $produto){
			$preco_especial=0;
			if(isset($produto['special'])){
				$preco_especial=$produto['special'];
			}
			
			$produtos_xml.="\n\t".'<produto id="'.$produto['product_id'].'">
					<sku><![CDATA['.$produto['model'].']]></sku>
					<nome><![CDATA['.$produto['name'].']]></nome>
					<descricao><![CDATA['.$produto['description'].']]></descricao>
					<imagem><![CDATA['.$produto['image'].']]></imagem>
					<preco>'.$produto['price'].'</preco>
					<preco_especial>'.$preco_especial.'</preco_especial>
					<fabricante><![CDATA['.$produto['manufacturer'].']]></fabricante>
					<estoque>'.$produto['quantity'].'</estoque>';
			
			$produtos_xml.='<category>';
			$category_list = $this->model_catalog_product->getCategories($produto['product_id']);
			
			foreach($category_list as $category){
					$info = $this->model_catalog_category->getCategory($category['category_id']);
					$produtos_xml.='<category><![CDATA['.$info['name'].']]></category>';
			}
			$produtos_xml.='</category>';			
			$produtos_xml.='<grade>';			
			$opcoes_list=$this->model_catalog_product->getProductOptions($produto['product_id']);
			foreach($opcoes_list as $info){
				if(sizeof($info['option_value'])>1){
					foreach ($info['option_value'] as $opcoes){
						$produtos_xml.='
						<variacao>
							<tipo><![CDATA['.$opcoes['name'].']]></tipo>
							<estoque>'.$opcoes['quantity'].'</estoque>
							<preco>'.$opcoes['price'].'</preco>
							<imagem><![CDATA['.$opcoes['image'].']]></imagem>
							<weight>'.$opcoes['weight'].'</weight>
						</variacao>	';
					}	
				}
			}
			$produtos_xml.='</grade>'."\n\t".'</produto>';
		}
		$produtos_xml.="\n".'</produtos>';
		
		$this->response->addHeader('Content-Type: application/xml; filename=produtos.xml');
		$this->response->setOutput($produtos_xml);

	}
}
?>
Avatar do usuário
Por valdeir2000
Mensagens Especiais
#38466
Coloquei esse mesmo código aqui e funcionou, o problema pode está em outro lugar.
Acessei index.php?route=feed/Fashionera e funcionou.

Pode passar o link?

Dica: usa o simpleXML ou o DOMDocument para criar o xml.