Página 1 de 1

[Resolvido] Modulo de Retirada em Multiplas Lojas

Enviado: 06 Ago 2018, 19:14
por huggler
Ola pessoal,

Existe algum módulo, mesmo que seja pago, que eu consiga configurar a opção de frete de retirada em produto em X endereco?

Hoje o modulo atual, só me permite que eu defina RETIRAR EM LOJA, mesmo eu tendo 3 lojas fisicas. Queria que o cliente me disesse onde quer retirar, LOJA 1, Loja 2 ou LOJA 3.

Obrigado

Re: Modulo de Retirada em Multiplas Lojas

Enviado: 07 Ago 2018, 09:52
por reds
Isso pode ser feito duplicando a mesma função(sendo uma para cada loja) ou adicionando um select no mesmo modulo, onde quando selecionado tal modalidade de frete ele seja obrigado a selecionar onde retirar e essa informação seria armazenada no campo comentário do pedido.

:ugeek:

Re: Modulo de Retirada em Multiplas Lojas

Enviado: 07 Ago 2018, 19:02
por huggler
Ok reds, nesse caso eu teria que alterar o módulo neh? E fazer um for each nas lojas cadastradas ? É essa a ideia que vc ta falando ?

Re: Modulo de Retirada em Multiplas Lojas

Enviado: 08 Ago 2018, 13:18
por veteranodf
Se estiver utilizando o módulo nativo "Retirar na loja" é só fazer a seguinte alteração no arquivo catalog/model/extension/shipping/pickup.php

Localizar:
Código: Selecionar todos
			$quote_data['pickup'] = array(
				'code'         => 'pickup.pickup',
				'title'        => $this->language->get('text_description'),
				'cost'         => 0.00,
				'tax_class_id' => 0,
				'text'         => $this->currency->format(0.00, $this->session->data['currency'])
			);

Substituir por:
Código: Selecionar todos
			$stores = array();

			$stores[] = array(
				'store_id' => 0,
				'name'     => $this->config->get('config_name')
			);

			$this->load->model('setting/store');

			$results = $this->model_setting_store->getStores();

			foreach ($results as $result) {
				$stores[] = array(
					'store_id' => $result['store_id'],
					'name'     => $result['name']
				);
			}
			
			foreach($stores as &$store) {
				$quote_data['pickup'.$store['store_id']] = array(
					'code'         => 'pickup.pickup'.$store['store_id'],
					'title'        => 'Retirar em ('.$store['name'].')',
					'cost'         => 0.00,
					'tax_class_id' => 0,
					'text'         => $this->currency->format(0.00, $this->session->data['currency'])
				);
			}

Re: Modulo de Retirada em Multiplas Lojas

Enviado: 09 Ago 2018, 10:03
por huggler
Que legal cara!!!

Obrigado pela dica, gratidão!

Re: [Resolvido] Modulo de Retirada em Multiplas Lojas

Enviado: 13 Mai 2022, 18:20
por robertorios
Boa noite, estou com um problema similar,
Tenho a distribuição em Salvador e em Porto Alegre
Preciso que o cliente de São Paulo para baixo (Rio Grande do Sul) tenha o calculo feito pelo CEP da produção de lá de Porto alegre e os clientes do Norte, Nordeste, centro-oeste e parte do Sudeste o calculo seja feito pelo CEP de Salvador.
Alguém q possa ajudar indicando uma soluções?
Desde já agradeço.

Re: [Resolvido] Modulo de Retirada em Multiplas Lojas

Enviado: 10 Out 2022, 11:13
por dariopencart
Olá @veteranodf ,
Funciona perfeitamente da forma como fez a modificação, porem tenho apenas uma loja cadastrada e dois endereços para retirar. Os endereços cadastrei em Configurações->Dados auxiliares->Localizações.
Será que poderia alterar para buscar as informações nesse cadastro ao invés do cadastro de lojas?
Desde já muito obrigado!

Re: [Resolvido] Modulo de Retirada em Multiplas Lojas

Enviado: 13 Out 2022, 00:26
por veteranodf
@dariopencart para essa necessidade faça o proposto abaixo; Espero que seja o que necessita;

Localizar:
Código: Selecionar todos
			$quote_data['pickup'] = array(
				'code'         => 'pickup.pickup',
				'title'        => $this->language->get('text_description'),
				'cost'         => 0.00,
				'tax_class_id' => 0,
				'text'         => $this->currency->format(0.00, $this->session->data['currency'])
			);

Substituir por:
Código: Selecionar todos
            $query_location = $this->db->query("SELECT * FROM `" . DB_PREFIX . "location`");
            
            foreach($query_location->rows as &$location) {
                $quote_data['pickup'.$location['location_id']] = array(
                    'code'         => 'pickup.pickup'.$location['location_id'],
                    'title'        => 'Retirar em ('.$location['name'].')',
                    'cost'         => 0.00,
                    'tax_class_id' => 0,
                    'text'         => $this->currency->format(0.00, $this->session->data['currency'])
                );
            }

Re: [Resolvido] Modulo de Retirada em Multiplas Lojas

Enviado: 13 Out 2022, 09:51
por dariopencart
Funcionou perfeitamente!! Muito obrigado @veteranodf :D