Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Fix305

Користувачі
  
  • Публікації

    917
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем Fix305

  1. глянул сейчас свое старенькое решение которое делал на farmatek.ru (оказалось не так уж и сложно как показалось)

    вообщем примерно так было дело:

    чтоб не плодить лишних полей в базе я для определения количества в пачке использовал поле SKU (в редактировании товара оно есть) и на основе его собственно и делал

    в ..\controller\product\product.php

    добавил

    $this->data['sku'] = $product_info['sku'];

    в product.tpl

    рядом со строчкой

    <input type="text" name="quantity" size="3" value="1" />
    добавил

    <?php if ($sku) {echo ' x '.$sku;} ?>
    так сказать для информативности

    и чуть ниже

    <input type="hidden" name="sku" value="<? echo $sku; ?>" />
    будем передавать информацию при добавлении в корзину о том сколько в пачке штук

    теперь идем в ..\controller\module\cart.php

    в функции callback() меняем

    $this->cart->add($this->request->post['product_id'], $this->request->post['quantity'], $option);
    на

    if ($this->request->post['sku']) {
    	$sku = $this->request->post['sku'];
    } else {
    	$sku = 1;
    }
    $this->cart->add($this->request->post['product_id'], $this->request->post['quantity']*$sku, $option);

    в ..\controller\checkout\cart.php

    делаем тоже самое что и в предыдущем действии

    вроде все.. теперь все товары будут улетать в корзину пачками по sku штук

    здесь правда не учитывается что в корзине можно будет редактировать количество, но там дело за малым

  2. для каждой группы были разные цены на товары

    это делается в админке

    для примера группа оптовики -10% на все товары сразу

    а это делается уже модулем - https://opencartforum.com/topic/928-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8c-%d1%81%d0%ba%d0%b8%d0%b4%d0%be%d0%ba/page__view__findpost__p__8346
  3. для веб мани не надо ИП, для визы не надо ИП (но банк может отправить данные в налоговую при подозрительной активности).. не платить налоги не хорошо - штраф от 3000р при контрольной закупке)

  4. а до этого что лезли? оО

    вроде только пользователю приходили, но так как не все сервисы дают пользовательский email то и отсылать то бывает некуда, но тем не менее вот

    выдрал из ..\catalog\controller\account\create.php

    $subject = sprintf($this->language->get('text_subject'), $this->config->get('config_name'));
    			
    $message = sprintf($this->language->get('text_welcome'), $this->config->get('config_name')) . "\n\n";
    		
    if (!$this->config->get('config_customer_approval')) {
    	$message .= $this->language->get('text_login') . "\n";
    } else {
    	$message .= $this->language->get('text_approval') . "\n";
    }
    			
    $message .= HTTPS_SERVER . 'index.php?route=account/login' . "\n\n";
    $message .= $this->language->get('text_services') . "\n\n";
    $message .= $this->language->get('text_thanks') . "\n";
    $message .= $this->config->get('config_name');
    	
    $mail = new Mail();
    $mail->protocol = $this->config->get('config_mail_protocol');
    $mail->parameter = $this->config->get('config_mail_parameter');
    $mail->hostname = $this->config->get('config_smtp_host');
    $mail->username = $this->config->get('config_smtp_username');
    $mail->password = $this->config->get('config_smtp_password');
    $mail->port = $this->config->get('config_smtp_port');
    $mail->timeout = $this->config->get('config_smtp_timeout');				
    $mail->setTo($this->request->post['email']);
    $mail->setFrom($this->config->get('config_email'));
    $mail->setSender($this->config->get('config_name'));
    $mail->setSubject($subject);
    $mail->setText(html_entity_decode($message, ENT_QUOTES, 'UTF-8'));
    $mail->send();
    			
    if ($this->config->get('config_account_mail')) {
    	$mail->setTo($this->config->get('config_email'));
    	$mail->send();
    }

    куда вставить я думаю догадаешься и желательно переменные заменить на нужные

  5. вместо

    $this->db->query("INSERT INTO " . DB_PREFIX . "customer (identity, firstname, lastname, email, telephone, fax, newsletter, customer_group_id, password, status, date_added) VALUES ('" . $this->db->escape($data['identity']) . "', '" . $this->db->escape($data['firstname']) . "', '" . $this->db->escape($data['lastname']) . "', '" . $this->db->escape($data['email']) . "', '', '', '0', '" . (int)$data['customer_group_id'] . "', '" . $this->db->escape(md5($data['password'])) . "', '1', NOW())");

    сделай

    $this->db->query("INSERT INTO " . DB_PREFIX . "customer (identity, firstname, lastname, email, telephone, fax, newsletter, customer_group_id, password, status, date_added, approved) VALUES ('" . $this->db->escape($data['identity']) . "', '" . $this->db->escape($data['firstname']) . "', '" . $this->db->escape($data['lastname']) . "', '" . $this->db->escape($data['email']) . "', '', '', '0', '" . (int)$data['customer_group_id'] . "', '" . $this->db->escape(md5($data['password'])) . "', '1', NOW(), '1')");

    не проверял, но должно работать..

    если включишь модуль он появится в слева или справа в виде модуля авторизации, так что не страшно

    • +1 2
  6. я на это отвечал

    есть ещё вопрос можно вывести как-то логин авторизованного пользователя.

    насчет формы

    открой свой сайт по адресу

    http://...../index.php?route=account/login
    посмотреть код страницы

    найти кусок который отвечает за форму входа

    <form action="http://....../index.php?route=account/login" method="post" enctype="multipart/form-data" id="login">
         Войти в Личный Кабинет:<br />
         <br />
         <b>E-Mail:</b><br />
         <input type="text" name="email" />
         <br />
         <br />
         <b>Пароль:</b><br />
         <input type="password" name="password" />
         <br />
         <a href="http://....../index.php?route=account/forgotten">Забыли пароль?</a><br />
         <div style="text-align: right;"><a onclick="$('#login').submit();" class="button"><span>Войти</span></a></div>
    </form>

    и вставить эту форму куда хочешь, ну и оформить по желанию

    • +1 1
  7. расчет стоимости атрибутов происходит в файле ..\system\library\cart.php

    if ($option_value_query->row['prefix'] == '+') {
    	$option_price = $option_price + $option_value_query->row['price'];
    } elseif ($option_value_query->row['prefix'] == '-') {
    	$option_price = $option_price - $option_value_query->row['price'];
    }

    и собственно тут

    'price'        => ($price + $option_price),
    'total'        => ($price + $option_price) * $quantity,

    ну и придется отредактировать кучу файлов чтоб все это выглядело по "новому"

    • +1 1
  8. в модели tool/loginza.php

    public function add_customer($data) {
    	$this->db->query("INSERT INTO " . DB_PREFIX . "customer (identity, firstname, lastname, email, telephone, fax, newsletter, customer_group_id, password, status, date_added) VALUES ('" . $this->db->escape($data['identity']) . "', '" . $this->db->escape($data['firstname']) . "', '" . $this->db->escape($data['lastname']) . "', '" . $this->db->escape($data['email']) . "', '', '', '0', '" . (int)$data['customer_group_id'] . "', '" . $this->db->escape(md5($data['password'])) . "', '1', NOW())");
    
    	return $this->db->getLastId(); // customer_id
    }

    добавь в запрос поле approved со значением 1

    • +1 1
  9. аккаунт создается автоматически, НО email не прописывается (если конечно не через гугл, яндекс заходишь, там не все предоставляют информацию об емайле), а так же пароль генерируется рандомно и если в будущем хочется заходить через email-пароль, то достаточно в аккаунте прописать свой email и сменить пароль на нужный.

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.