Página 1 de 1

[RESOLVIDO] ERRO AO EDITAR ENDEREÇOS NA CONTA DO CLIENTE

Enviado: 09 Jan 2017, 11:24
por Smagicas
Olá Pessoal,

Na minha loja 2.0.3.1 ao tentar editar qualquer coisa na conta do cliente na aba "ENDEREÇOS" dá esse erro abaixo:

Notice: Undefined index: company in /home/xxxxxx/public_html/catalog/model/account/address.php on line 22Warning: Cannot modify header information - headers already sent by (output started at /home/xxxxxx/public_html/index.php:101) in /home/xxxxxx/public_html/system/library/response.php on line 12

OBS-1) As alterações são efetivadas, porém dá esse erro acima sem nenhuma opção de sair da página, para nós que estamos acostumados simplesmente damos um Voltar no navegador e a página volta já com a alteração feita, mas um cliente novato irá fechar a loja pensando ter ocorrido um bug no site. Ao tentar criar um novo endereço também dá o erro.

OBS-2) Eu não uso o campo "company" nos meus cadastros porque minhas entregas são 100% realizadas pelos correios e nesse campo funciona o "Referências". Por essa razão é provável que no início da loja tenha sido excluído o campo "company" de algumas página de códigos e por isso pode estar ocorrendo esse aviso. Vale lembrar que a loja funciona perfeitamente em todos os campos de endereços, tanto de cadastro como de checkout apresentando esse erro acima apenas em edição ou criação do endereço na conta do cliente.

Alguém consegue saber o que pode estar ativando esse aviso de erro?

Re: ERRO AO ADITAR ENDEREÇOS NA CONTA DO CLIENTE

Enviado: 09 Jan 2017, 13:49
por valdeir2000
Remova a linha 22 (e semelhantes a ela) do arquivo /home/xxxxxx/public_html/catalog/model/account/address.php

Re: ERRO AO ADITAR ENDEREÇOS NA CONTA DO CLIENTE

Enviado: 09 Jan 2017, 14:32
por Smagicas
Eu tentei valdeir2000, mas qualquer alteração nessa página aumenta os avisos de erros na loja, inclusive nos checkout começa a aperecer o erro, o trecho que você mencionou é este abaixo:
Código: Selecionar todos
<?php
class ModelAccountAddress extends Model {
	public function addAddress($data) {
		$this->event->trigger('pre.customer.add.address', $data);

		$this->db->query("INSERT INTO " . DB_PREFIX . "address SET customer_id = '" . (int)$this->customer->getId() . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', company = '" . $this->db->escape($data['company']) . "', address_1 = '" . $this->db->escape($data['address_1']) . "', address_2 = '" . $this->db->escape($data['address_2']) . "', postcode = '" . $this->db->escape($data['postcode']) . "', city = '" . $this->db->escape($data['city']) . "', zone_id = '" . (int)$data['zone_id'] . "', country_id = '" . (int)$data['country_id'] . "', custom_field = '" . $this->db->escape(isset($data['custom_field']) ? serialize($data['custom_field']) : '') . "'");

		$address_id = $this->db->getLastId();

		if (!empty($data['default'])) {
			$this->db->query("UPDATE " . DB_PREFIX . "customer SET address_id = '" . (int)$address_id . "' WHERE customer_id = '" . (int)$this->customer->getId() . "'");
		}

		$this->event->trigger('post.customer.add.address', $address_id);

		return $address_id;
	}

	public function editAddress($address_id, $data) {
		$this->event->trigger('pre.customer.edit.address', $data);

		$this->db->query("UPDATE " . DB_PREFIX . "address SET firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', company = '" . $this->db->escape($data['company']) . "', address_1 = '" . $this->db->escape($data['address_1']) . "', address_2 = '" . $this->db->escape($data['address_2']) . "', postcode = '" . $this->db->escape($data['postcode']) . "', city = '" . $this->db->escape($data['city']) . "', zone_id = '" . (int)$data['zone_id'] . "', country_id = '" . (int)$data['country_id'] . "', custom_field = '" . $this->db->escape(isset($data['custom_field']) ? serialize($data['custom_field']) : '') . "' WHERE address_id  = '" . (int)$address_id . "' AND customer_id = '" . (int)$this->customer->getId() . "'");

		if (!empty($data['default'])) {
			$this->db->query("UPDATE " . DB_PREFIX . "customer SET address_id = '" . (int)$address_id . "' WHERE customer_id = '" . (int)$this->customer->getId() . "'");
		}

		$this->event->trigger('post.customer.edit.address', $address_id);
	}

	public function deleteAddress($address_id) {
		$this->event->trigger('pre.customer.delete.address', $address_id);

		$this->db->query("DELETE FROM " . DB_PREFIX . "address WHERE address_id = '" . (int)$address_id . "' AND customer_id = '" . (int)$this->customer->getId() . "'");

		$this->event->trigger('post.customer.delete.address', $address_id);
	}

Re: ERRO AO ADITAR ENDEREÇOS NA CONTA DO CLIENTE

Enviado: 09 Jan 2017, 14:49
por valdeir2000
Agora que prestei atenção que é o model e não o controller, desculpe-me. Vamos lá.

Adicione o código abaixo
Código: Selecionar todos
$data["company"] = "";
embaixo de
Código: Selecionar todos
public function addAddress($data) {
e
Código: Selecionar todos
public function editAddress($address_id, $data) {

Re: ERRO AO ADITAR ENDEREÇOS NA CONTA DO CLIENTE

Enviado: 09 Jan 2017, 15:28
por Smagicas
Ah! Agora sim valdeir2000, tudo certinho. Testei todos os pontos da loja e nenhum aviso de erro mais, e a edições e criações de novos endereços funcionando perfeito.

Muitíssimo OBRIGADO.