Fórum OpenCart Brasil

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

Suporte geral sobre problemas técnicos para OpenCart v1.x.
#50380
Olá. Estou já há mais de 3 meses personalizando a minha loja e agora empaquei em um problema. Preciso que o tamanho da camisa (opção de produto) apareça no pagseguro.
Descobri já que parte tenho que modificar mas não sei como modificar, se vocês verem no codigo tem o options_name, queria fazer aparecer o value do option em vez do name.
uso a versão 1.5.6.1 do OC
Pedaço do codigo responsavel por isso dentro do /catalog/controller/payment/pagseguro.php
Código: Selecionar todos
/*
		 * Produtos
		 */
		
 		foreach ($this->cart->getProducts() as $product) {
			$options_names = '';
	    	
			foreach ($product['option'] as $option) {
	    		$options_names .= '/'.$option['name'];
	    	}
			// limite de 100 caracteres para a descrição do produto
			if($mb_substr){
				$description = mb_substr($product['model'].'-'.$product['name'].$options_names, 0, 100, 'UTF-8');
			}
			else{
				$description = utf8_encode(substr(utf8_decode($product['model'].'-'.$product['name'].$options_names), 0, 100));
			}
			
	    	$item = Array(
				'id' => $product['product_id'],
				'description' => $description,
				'quantity' => $product['quantity'],
				'amount' => $this->currency->format($product['price'], $order_info['currency_code'], false, false)
			);
			
			// O frete será calculado pelo PagSeguro.
			if($tipo_frete){
				$peso = $this->getPesoEmGramas($product['weight_class_id'], $product['weight'])/$product['quantity'];
				$item['weight'] = round($peso);
			}

			$paymentRequest->addItem($item);
	    }
já tentei diversas coisas para aparecer o value mas nao deram certo como não tenho muita experiencia em PHP. Tive o suficiente para editar por completo o formulário de registro mas já para isso esta um pouco complicado. agradeço quem poder me ajudar.
lucas.zgoda escreveu:Consegui resolver, para quem quer que mostre as infos dos tamanhos no pagseguro aqui vai a correção:
Código: Selecionar todos
/*
		 * Produtos
		 */
		
 		foreach ($this->cart->getProducts() as $product) {
			$options_names = '';
	    	
			foreach ($product['option'] as $option) {
	    		 $options_names .= ' / '.$option['name'].': '.$option['option_value'];
	    	}

			// limite de 100 caracteres para a descrição do produto
			if($mb_substr){
				$description = mb_substr($product['model'].' / '.$product['name'].$options_names, 0,  100, 'UTF-8');
			}
			else{
				$description = utf8_encode(substr(utf8_decode($product['model'].' / '.$product ['name'].$options_names), 0, 100));
			}
			
	    	$item = Array(
				'id' => $product['product_id'],
				'description' => $description,
				'quantity' => $product['quantity'], 
				'amount' => $this->currency->format($product['price'], $order_info ['currency_code'], false, false)
			);
			
			// O frete será calculado pelo PagSeguro.
			if($tipo_frete){
				$peso = $this->getPesoEmGramas($product['weight_class_id'], $product['weight'])/$product['quantity'];
				$item['weight'] = round($peso);
			}

			$paymentRequest->addItem($item);
	    }
Editado pela última vez por lucas.zgoda em 02 Mai 2014, 09:54, em um total de 1 vez.
#50464
Infelizmente não tenho como lhe ajudar mas fiquei curioso em saber: pra quê isso? O controle de vendas deve ser feito sempre primeiro pela loja, ou seja, os pedidos devem ser vistos no admin e lá aparecem as opções normalmente.
#50521
O meu sócio que cuida das finanças pediu para ver se consigo alterar isso. Pois ele faz parte do controle por lá. tbm não entendi mas ele disse que se desse ia ser uma boa. vou tentar mais alguns codigos por mim mesmo então rsrs
#50539
Consegui resolver, para quem quer que mostre as infos dos tamanhos no pagseguro aqui vai a correção:
Código: Selecionar todos
/*
		 * Produtos
		 */
		
 		foreach ($this->cart->getProducts() as $product) {
			$options_names = '';
	    	
			foreach ($product['option'] as $option) {
	    		 $options_names .= ' / '.$option['name'].': '.$option['option_value'];
	    	}

			// limite de 100 caracteres para a descrição do produto
			if($mb_substr){
				$description = mb_substr($product['model'].' / '.$product['name'].$options_names, 0,  100, 'UTF-8');
			}
			else{
				$description = utf8_encode(substr(utf8_decode($product['model'].' / '.$product ['name'].$options_names), 0, 100));
			}
			
	    	$item = Array(
				'id' => $product['product_id'],
				'description' => $description,
				'quantity' => $product['quantity'], 
				'amount' => $this->currency->format($product['price'], $order_info ['currency_code'], false, false)
			);
			
			// O frete será calculado pelo PagSeguro.
			if($tipo_frete){
				$peso = $this->getPesoEmGramas($product['weight_class_id'], $product['weight'])/$product['quantity'];
				$item['weight'] = round($peso);
			}

			$paymentRequest->addItem($item);
	    }