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

Магазин мужских подарков - menspro.ru


Гість

Recommended Posts

Запустится магазин через 3 дня. Выкладываю раньше, может пользователи форума заметят явные недостатки или неудобства.

1. menspro.ru

2. Магазин мужских подарков

3. ocStore 1.5.3

4. Идея дизайна взята с Shoppica, не покупал из за громоздкости кода и куча JS который мешает. Поэтому верстал и кодил шаблон сам, одним глазом смотря на шопику.

5. Модули и решения:

- Корзина - Simple, допиленная по стилям.

- На главной товар из категорий, был написан модуль, который берет случайный товар из определенной категории. Кэшится сам html, раз в сутки.

- Хитро переделал меню главное, обработка данных из базы хитро кэшится, эти данные так же использует другой модуль (ниже)

- Когда заходишь в товар или категорию, справа выводится меню ВЕРХНЕЙ категории (модуль, писал сам)

- Поизвращался в карточке товара, сделал расчет срока на доставку, сделал оформление в один клик

- куча мелочек которые правились и будут правится

- Сделал модуль подписка на рассылки, (почта просто вставляется в базу в отдельную таблицу)

7. Автор я, как и один из соучредителей

Надіслати
Поділитися на інших сайтах

сделал оформление в один клик

Может поделишься?

Когда нажимаю - "Узнать о стоимости и сроках доставки",то при развороте вкладки появляется справа скрол,как то не очень...,браузер гугл.

Ножи в нумизматике? :ugeek:

P.S. Хорошее название ООО :)

Надіслати
Поділитися на інших сайтах


Спасибо, поправил...

Ничего космического в одном клике нет. Идет отправка смс и почты, в базу не добавляется пока.. Это будет позже когда поймем с какой базой учета работать будем.

метод в бэкэнде + дамп таблицы

    public function addoneform(){
	    $json = array();
	    $product_id = trim($this->request->post['product_id']);
	    if (!$product_id) {
		    $json['error']['warning'] = 'Не известный продукт';
	    }
	    $telephone = trim($this->request->post['telephone']);
	    if (!$telephone) {
		    $json['error']['telephone'] = 'Не указан телефон';
	    }
	    $name = trim($this->request->post['name']);
	    $product_name = trim($this->request->post['product_name']);
	    if (!$json) {
		    $this->db->query("INSERT INTO " . DB_PREFIX . "oneform_order SET product_id = '" . (int)$product_id . "', product_name = '" . $this->db->escape($product_name) . "', telephone = '" . $this->db->escape($telephone) . "', name = '" . $this->db->escape($name) . "', date_add = NOW()");
		    if ($this->config->get('config_sms_alert')) {
			    $fio = ($name) ? ' ('.$this->translite($name).') ' : '';
			   
			    $options = array(
				    'to'	   => $this->config->get('config_sms_to'),
				    'copy'	 => $this->config->get('config_sms_copy'),
				    'from'	 => $this->config->get('config_sms_from'),
				    'username' => $this->config->get('config_sms_gate_username'),
				    'password' => $this->config->get('config_sms_gate_password'),
				    'message'  => 'FAST! t.'.$this->translite($telephone).$fio.' zakazal #'.$this->translite($product_name).'# '
			    );
			    $this->load->library('sms');
			    $sms = new Sms($this->config->get('config_sms_gatename'), $options);
			    $sms->send();
		    }
		    if ($this->config->get('config_alert_mail')) {
			    $subject = 'БЫСТРЫЙ ЗАКАЗ!';
			    $text = 'Быстрый заказ
			    <a href="'.$this->url->link('product/product', 'product_id=' . $product_id).'">'.$product_name.'</a>
			    Имя: '.$name.' (т. '.$telephone.')';
			    $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->config->get('config_email'));
			    $mail->setFrom($this->config->get('config_email'));
			    $mail->setSender('menspro');
			    $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
			    $mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
			    $mail->send();
			    // Send to additional alert emails
			    $emails = explode(',', $this->config->get('config_alert_emails'));
			    foreach ($emails as $email) {
				    if ($email && preg_match('/^[^@]+@.*.[a-z]{2,6}$/i', $email)) {
					    $mail->setTo($email);
					    $mail->send();
				    }
			    }
		    }
		   
		   
		   
		    $json['success'] = true;
	    }
	    $this->response->setOutput(json_encode($json));

	    /*
		 *
		 * CREATE TABLE `menspro`.`oneform_order` (
`oneform_order_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`product_id` INT NOT NULL ,
`product_name` VARCHAR( 250 ) NOT NULL ,
`telephone` VARCHAR( 250 ) NOT NULL ,
`name` VARCHAR( 250 ) NOT NULL ,
`date_add` DATETIME NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
  
		 */
    }

Смысла кода JS такой, генерим форму с данными, вставляем после какогото объекта.. При нажатие на объект вешаем вызов колорбокса на показ.. Обработчиков мало, все писалось за 4 часа

var oneform ='<div id="oneclickform"><h2>Быстрый заказ</h2><div id="oneclickformbox"><div class="image"><img src="'+ $('#image').attr('src')+'" width="170" /><div class="price">'+ $('.product-info .price').html()+'</div></div><div id="oneform"><h3>'+ $('h1').html()+'</h3><p>Вы можете указать только телефон, наш менеджер перезвонит и оформит заказ за Вас.</p><p><span class="required" title="Обязательное поле">*</span>Ваш телефон:<br/><input type="text" name="telephone" placeholder="8 (495) 9999999"/></p><p>Ваше имя:<br/><input type="text" name="name" placeholder="Иванов Иван"/> <input type="hidden" name="product_id" size="2" value="'+$('#btnblock input[name="product_id"]').val()+'" /> <input type="hidden" name="product_name" size="2" value="'+htmlstrip($('h1').html())+'" /></p><br/><input type="button" value="Оформить" class="button" id="oneform-button"  style="display: inline-block;"/><img src="catalog/view/theme/default/image/loading.gif" alt="" id="oneformloading" style="display: none; margin-left: 10px;"/></div></div></div>';
    $('.oneclick').after(oneform);
    $('#oneform-button').live('click',function (){
	    $.ajax({
		    url:'index.php?route=checkout/cart/addoneform',
		    type:'post',
		    data:$('#oneform input[type="text"], #oneform input[type="hidden"]'),
		    dataType:'json',
		    beforeSend:function () {
			    $('#oneformloading').show();
			    $('#oneform-button').attr('disabled','disabled');
		    },
		    error:function(){
			    $('#oneform-button').removeAttr('disabled');
			    $('#oneformloading').hide();
			    $('#oneform-button').after('<div>Произошла ошибка</div>')
		    },
		    success:function (json) {
			    $('#oneform-button').removeAttr('disabled');
			    $('#oneformloading').hide();
			    if (json['error']) {
				    $('#oneform-button').after('<b>Произошла ошибка</b>');
			    }
			    if (json['success']) {
				    $('#oneform').html('Ваш заказ принят, в ближайшее время с Вами свяжется менеджер');
	  
			    }
		    }

	    });
    })
    $('.oneclick a').click(function () {
	    $.colorbox({inline:true, href:"#oneclickform",overlayClose:true,opacity:0.5});
	    return false;
    })
Надіслати
Поділитися на інших сайтах

диз хорошо сделан. в шопике при hover остальные затухают. сюда вижу этот эффект не принялся

Слушай, сделал сначала как в шопике, но поймал себя на том, что интуитивно хочется мышку убрать с итемов "чтобы ничего не ломать", тот же эффект заметил у друзей, люди напрягались и водили мышкой специально не наводя на продукт... поэтому убрал..

Один клик буду доделывать) обработчиков ошибок там вообще впринципе нет) главное посмотреть как люди реагируют..

Надіслати
Поділитися на інших сайтах

В товаре _menspro.ru/piknik/igri-na-prirode/446-bumerang-sinii-50sm,в описание дважды продублировано:

"Предлагаемые бумеранги сочетают в себе прекрасные летные качества и высокохудожественное оформление одновременно. Роспись выполнена вручную."

Надіслати
Поділитися на інших сайтах


Баг, от frelancer'a поправил...

По контенту - копирасты будут скоро приводить в порядок. Сайт щас от индексации закрыт специально.

Мужской магазин подарков №1 : "подарки растопят сердца ваших мужчин и заставят их хоть не надолго стать искренними"

а вот это к чему, я не понял)
Надіслати
Поділитися на інших сайтах

Классный сайт! Особенно оформление заказа приглянулось в укороченом виде!

Надіслати
Поділитися на інших сайтах

  • 3 weeks later...

Такой вот баг нашел в последней опере. Рамка кнопки купить видна на всплывающей картинке. А в остальном - ляпота :)

http://clip2net.com/s/2dkvL

Надіслати
Поділитися на інших сайтах

А вот это

<script type="text/javascript" src="catalog/view/javascript/product.js?1"></script>
сами делали или есть какая-то сборка без JS в шаблоне?

сам конечно, к каждому товару столько кода грузить - это бред полнейший... я много кода из шаблонов пораспихивал и в common и в product

Надіслати
Поділитися на інших сайтах

сам конечно, к каждому товару столько кода грузить - это бред полнейший...

Жаль разработчики ОС придерживаются другой философии.
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

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

Important Information

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