Smartlanding

Скрипт корзины для лендинга

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

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

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

Назвал скрипт SmartBasket и в этой статье хочу поделиться им с вами. Если он окажется полезным и интересным для вас, то напишите мне, пожалуйста, в комментариях свой отзыв (чего не хватает конкретно вам, что улучшить, какой функционал добавить и т.д.). Так я пойму, что скрипт корзины действительно нужен и будет стимул его развивать.

Демонстрация работы скрипта

Как подключить корзину

Для подключения скрипта, скачайте архив с этой страницы и поместите папку smartbasket в корень вашего сайта.

Так как скрипт использует jQuery, то убедитесь, что он у вас подключен.

После подключения jQuery (обычно перед закрывающим тегом body) подключаем и инициализируем скрипт, там же добавим div, в котором и будет располагаться основная корзина.

<div class="smart-basket__wrapper"></div>
<script src="/smartbasket/smartbasket.min.js"></script>
<script>
    $(function () {
       $('.smart-basket__wrapper').smbasket({
         /* Настройки */
       });
    });
</script>

Не забываем подключить и таблицу стилей:

 <link rel="stylesheet" href="/smartbasket/css/smartbasket.min.css">

Настройки корзины

С подключением закончили, теперь давайте займемся настройкой.

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

Итак, первое что мы сделаем — это укажем нашему скрипту обертку вашей карточки товара.

Настройка карточки

Для этого, в месте, где инициализировали скрипт указываем класс обертки карточки в параметре 'productElement':

$(function () {
  $('.smart-basket__wrapper').smbasket({
    productElement: 'product__element',
  });
});

product__element — и есть класс моего блока с карточкой.

На следующем шаге нужно указать скрипту класс кнопки, которая будет отправлять товар в корзину, для этого воспользуемся параметром «buttonAddToBasket»:
Настройки кнопки

$(function () {
  $('.smart-basket__wrapper').smbasket({
    productElement: 'product__element',
    buttonAddToBasket: 'product__add-to-cart-button',
  });
});

product__add-to-cart-button — класс моей кнопки.

У кнопки есть несколько обязательных атрибутов, в которых и хранятся основные данные о товаре.

  • data-sb-id-or-vendor-code — артикул или id товара;
  • data-sb-product-name — название товара;
  • data-sb-product-price — цена, разделенная точкой, если есть копейки;
  • data-sb-product-quantity — количество, по умолчанию укажите 1;
  • data-sb-product-img — полный путь к картинке;

Не обязательные атрибуты:

  • data-sb-product-size — размер. Задается, если вы используете опцию вывода размера в карточке товара. Подробнее о том, как это сделать в инструкции ниже.

Пример кнопки

<button 
  class="product__add-to-cart-button" 
  data-sb-id-or-vendor-code="0032pz" 
  data-sb-product-name="Iphone 10" 
  data-sb-product-price="80000" 
  data-sb-product-quantity="1" 
  data-sb-product-img="http://sprosigorod.online/img/iphone-10.png">
   <i class="fas fa-cart-plus"></i> В корзину
</button>

Обратите внимание, что все атрибуты обязательны для заполнения. Если у вас нет артикула, то просто задайте уникальный набор цифр.

Следующим параметром, который мы настроим будет маска ввода номер телефона «countryCode». По умолчанию сейчас маска для Украины с первыми цифрами '+38', но вы можете поставить, '+7' или любые другие цифры.

Настройка маски телефона

Пока можно менять только их, но, если вы хотите иметь полный контроль над всеми цифрами, напишите мне и я сделаю.

$(function () {
  $('.smart-basket__wrapper').smbasket({
    productElement: 'product__element',
    buttonAddToBasket: 'product__add-to-cart-button',
    countryCode: '+7',
  });
});

Теперь укажем валюту, которую хотим использовать в корзине. Для этого есть параметр smartBasketCurrency, в который можно положить один из значков валют:
 Настройка валюты

  • $
$(function () {
  $('.smart-basket__wrapper').smbasket({
    productElement: 'product__element',
    buttonAddToBasket: 'product__add-to-cart-button',
    countryCode: '+7',
    smartBasketCurrency: '₽',
  });
});

Выбор количества

Если ваша карточка товара предусматривает выбор количества товара, добавляемого в корзину, то укажите класс элемента где будет располагаться блок выбора количества в параметре 'productQuantityWrapper'. Например, я хочу, чтобы выбор количества располагался в теге div с классом 'product__quantity'.

<div class="product__quantity"></div>

Настройка количества

$(function () {
  $('.smart-basket__wrapper').smbasket({
    productElement: 'product__element',
    buttonAddToBasket: 'product__add-to-cart-button',
    countryCode: '+7',
    smartBasketCurrency: '₽',
    productQuantityWrapper: 'product__quantity',
  });
});

После добавления параметра 'productQuantityWrapper' cо значением 'product__quantity', кнопки выбора количества автоматически появятся на сайте в указанном блоке.

Выбор размера в карточке

Недавно появилась возможность добавлять размер, который в свою очередь, может влиять и на цену. Например, в интернет-магазине продают 3 размера пиццы — 32 см, 26 см или 16 см. От радиуса зависит и цена. Вы хотите, чтобы в карточке пользователь мог выбрать нужный размер.

Выбор размера

Давайте я немного поясню суть работы. Вот так выглядит верстка блока с выбором размера у меня:

<div class="product__size">
					
 <div class="product__size-element" data-sb-curent-price="320" data-sb-curent-size="32" data-sb-curent-id-or-vendor-code="0032pz">32 см</div>
 <div class="product__size-element" data-sb-curent-price="260" data-sb-curent-size="26" data-sb-curent-id-or-vendor-code="0026pz">26 см</div>
 <div class="product__size-element" data-sb-curent-price="220" data-sb-curent-size="22" data-sb-curent-id-or-vendor-code="0022pz">22 см</div>
					
</div>

Для работы скрипта здесь важны атрибуты «data-sb-curent-price» и «data-sb-curent-size» и «data-sb-curent-id-or-vendor-code» так как в них содержаться параметры для подстановки цены, размера и артикула. То есть при размере 32 см, цена пиццы 320 рублей, при размере 22 см — цена пиццы 220 рублей и т.д. Если цена при любом размере остается одинаковой, просто укажите везде одну и туже стоимость. Аналогичная ситуация и с артикулом. Или укажите везде одинаковый, или вообще не используйте атрибут «data-sb-curent-id-or-vendor-code», если не планируете давать возможность добавлять один и тот же товар с разными характеристиками.

Чтобы цена в карточке менялась, нужно обернуть число с ценой в отдельный блок, например, span, со своим классом. У меня это выглядит так:

<div class="product__price"><span class="product__price-number">320</span> ₽</div>

Теперь класс обертки «product__size» для блока с размерами и класс обертки цены «product__price-number» нужно передать в настройки скрипта:

$(function () {
  $('.smart-basket__wrapper').smbasket({
    productElement: 'product__element',
    buttonAddToBasket: 'product__add-to-cart-button',
    countryCode: '+7',
    smartBasketCurrency: '₽',

    productPrice: 'product__price-number',
    productSize: 'product__size',
  });
});

Теперь при клике на элемент с размером из «data-sb-curent-price» подставится цена в «product__price-number». Если не совсем понятно, напишите мне, попробую разъяснить.

Последняя настройка, которая сейчас доступна это вывод мини-корзины. То есть кнопки, которая отображает статус корзины (показывает текущее количество товара в корзине) и вызывает, при нажатии на нее, модальное окно с основной корзиной.

Мини-корзина

Я специально не задавал никаких стилей и ей, чтобы у вас был полный контроль если не над всей корзиной, то над максимальным количеством ее элементов. Принцип вывода, похож на настройку предыдущего поля. Нужно указать класс элемента, в котором отобразится кнопка в параметре 'smartBasketMinArea'.

$(function () {
  $('.smart-basket__wrapper').smbasket({
    productElement: 'product__element',
    buttonAddToBasket: 'product__add-to-cart-button',
    countryCode: '+7',
    smartBasketCurrency: '₽',
    productQuantityWrapper: 'product__quantity',
    smartBasketMinArea: 'header__basket-min'
  });
});

Кроме того, у вас есть возможность задать текст в кнопке, перед иконкой корзины и изменить саму иконку. Делается это при помощи параметров smartBasketMinText и smartBasketMinIconPath.

$(function () {
  $('.smart-basket__wrapper').smbasket({
    productElement: 'product__element',
    buttonAddToBasket: 'product__add-to-cart-button',
    countryCode: '+7',
    smartBasketCurrency: '₽',
    productQuantityWrapper: 'product__quantity',
    smartBasketMinArea: 'header__basket-min',

    smartBasketMinText: 'Корзина: ',
    smartBasketMinIconPath: '/smartbasket/img/shopping-basket-wight.svg',
  });
});

Для настройки отступов и внешнего вида, иконка и текст обернуты в теги с классами «smart-basket__min-icon» и «smart-basket__min-text».

Настройка почты для отправки

Для настройки отправки почты, нужно открыть файл config.php, который находится в папке /smartbasket/php/

Настройка отправки

Здесь нас интересуют 2 строки:

  • const SENDER = 'sender@yandex.ru';
  • const CATCHER = 'catcher@list.ru';

SENDER — это адрес, с которого будет отправляться письмо. CATCHER — адрес на который будет приходить письмо. Обратите внимание, что адрес отправителя должен быть реальными, чтобы не возникало проблем с доставкой.

Пока это все, что есть. Да, впереди еще много работы и много идей. Будет больше проверок, больше функций, больше возможностей. Много раз еще придется переписать все и оптимизировать. Пока, это тестовый вариант, чтобы понять нужен ли кому-то подобный скрипт и насколько он актуален. Все пожелания и предложения пишите в комментариях, буду рад любой обратной связи и постараюсь улучшать функционал по мере свободного времени.

Надеюсь, что ничего не упустил, если что — пишите!

Если нужна видео-инструкция с описанием процесса установки настройки, напишите в комментариях, я попробую сделать.

Поделитесь статьей в социальных сетях, чтобы не потерять

83 комментария

  • Дмитрий

    Перезалейти на облако, пожалуйста, ссылка на zip-архив не рабочая.

    Ответить
  • dimadv7

    Дмитрий, спасибо, обновил ссылку.

    Ответить
  • Максим

    dimadv7, спасибо, сначала показалось что сложно настроить, судя по количеству текста, но на деле это просто из-за того, что подробно расписано так. В реальности, если все переварить, то минут 5 настраивать. Но настроек, конечно, маловато…

    Ответить
  • dimadv7

    Максим, спасибо, буду пытаться упростить в будущем. А по настройкам, то их количество будет увеличиваться, если спрос на скрипт будет.

    Ответить
  • Андрей

    Возможно ли как-то в мини-корзине, указать свой текст, вместо иконки?

    Ответить
  • dimadv7

    Здравствуйте, пока нет. Можно только свою картинку:

    smartBasketMinIconPath: './smartbasket/img/shopping-basket-wight.svg',
    

    Но пока не писал об этой настройке, так как тестирую.

    Ответить
  • Александр

    Большое Вам спасибо! Все предельно просто и удобно. Кнопка «Сделать заказ» немного вылазит за пределы окна, текст «Корзина пуста. Вы не выбрали ни одного товара» отображается даже с выбранными товарами. Сейчас придумаю, как поправить, может, у меня у одного так.. В любом случае Вы сэкономили нам кучу времени, огромное спасибо!

    Ответить
  • dimadv7

    Александр, просто версию jquery 3 используйте и текста не будет, о том что корзина пуста. Спасибо за отзыв, проблема не только у вас, у всех, кто использует версию ниже 3.

    Ответить
  • Вася

    В демо не работает + и — кол.ва товара не увеличивает и не уменьшает, всегда стоит 1

    Ответить
  • dimadv7

    потому, что сейчас такие настройки стоят. Я проверял новую функцию, как она работает с разными параметрами. Вернул как было…

    Ответить
  • Вася

    dimadv7, ага вижу) ща буду скрипт себе ставить спасибо))

    Ответить
  • Александр

    Дмитрий, подскажите, почему не работает php скрипт отправки товаров из корзины? Сообщения просто не приходят, папка «Спам» также пуста. Все делал по инструкции, благодарю заранее!

    Ответить
  • dimadv7

    Александр, здравствуйте. Пишет, что сообщение отправлено? Оба указанных ящика реально существуют? Если да, то пробовали ли в другие почтовые адреса? Например, от mail.ru, если использовали yandex. Почитайте вот это, если используете яндекс. Попробуйте поинтересоваться у хостера, нет ли проблем с его стороны, пропускает ли он письма с бесплатных почтовых сервисов, или только привязанных к домену. Обратите внимание, что обязательна версия PHP не ниже 5.6 и использование jQuery > 3.0. Если что- пишите, будем разбираться.

    Ответить
  • oleg

    Очень круто, особенно что появилась возможность выбрать цену товара по параметру.. вопрос, а можно допустим добавить в корзину одну и туже пицу, но разных размеров? в демо не дает..
    например
    Пицца «Ветчина и грибы»:
    1 шт 32см
    2шт 26см.

    Возможно так сделать выбор?

    Ответить
  • dimadv7

    oleg, Спасибо. Пока — нельзя, думаю чуть позже сделаю, просто сейчас артикул общий у всех размеров, а нужен индивидуальный.

    Ответить
  • pavelvoy

    dimadv7 спасибо огромное! Как раз то, что искал… прямо ПростоМагазин какой то)))

    Ответить
  • dimadv7

    Спасибо за отзыв) То ли еще будет!

    Ответить
  • VF

    Боже как же я давно это искал для своего lp, огроменное человеческое спасибо за скрипты, продолжай в том же духе братан, и не когда не останавливайся на достигнутом))

    Ответить
  • dimadv7

    VF, ах-ха, спасибо большое. Скоро будет еще 1 скрипт интересный тем, у кого лендинг, особенно с корзиной, но пока это секрет)

    Ответить
  • Леонид

    dimadv7 если не трудно пришлите пожалуйста демонстрационную страничку. Что то у меня не получается. Наверное перепутал порядок
    что куда вставлять. Заранее благодарен.

    Ответить
  • dimadv7

    Отправил на почту, если что, пишите, будем разбираться.

    Ответить
  • Леонид

    Большое спасибо ! Почти всё заработало. Заказ на почту не отправляется , но я постараюсь разобраться (может потому что const SENDER = и
    const CATCHER = одинаковы).
    Вопрос! почему при ссылке
    корзина работает а
    если на папку в которой лежит файл у меня jquery-3.3.1.min.js

    <script src="./js/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
    не работает

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

    Ответить
  • Леонид

    извините ссылка исчезла

    Ответить
  • dimadv7

    Леонид, если sender и catcher одинаковы, точно работать не будет. По остальному не понял вопроса. А по автоматическому закрытию, такой опции или настройки — нет.

    Ответить
  • Максим

    Было бы хорошо если данный скрип умел читать прайс из csv файла, нужна в полноценных интернет-магазинах была бы не нужна.
    Скажем для кафе было бы удобно большое меню в 100-200 позиций показывать на отдельной странице.
    По сути просто из csv забирать данные и подставлять в уже заданные поля. Изменилась цена, название или состав? Не проблема, не надо опять в код лезть поменял файл и щакинул на фтп и этому можно даже менеджера кафе обучить, предварительно дать ему доступ на фтп только к этой папке где этот файл. В общем мысли в слух) а так спасибо пригодится!)

    Ответить
  • dimadv7

    Максим. Нет, для этого есть CMSки. Если сделать из файла, то придется давать и четкую структуру того, как выглядит карточка товара, чтобы в нужное место лег нужный элемент да и привязка будет к нему, а что делать тем, кому не нужен cvs? собирать в него? Думаю, для такой корзины — это лишнее. Давно есть инструменты реализующие то, о чем ты говоришь. Но мало таких, как это скрипт.

    Ответить
  • Леонид

    Здравствуйте Дмитрий!
    Скажите пожалуйста , что надо сделать , чтобы работало в кодировке winndows-1251. Сайт большой и переписывать его под UTF-8 не хотелось бы. Я перекодировал все php и настроечные файлы в anssii , указал нужную кодировку но всё бестолку. И ещё вопрос , где надо прописать настройки почты для отправки (пароль логин и т.д.) просто так письма не уходят. И если вопрос с кодировкой можно решить перепиской сайта,
    то здесь я профан. Только на дельфи писал такие рассылки.
    Заранее благодарен.

    Ответить
  • dimadv7

    Леонид, здравствуйте. Если все файлы скрипта пересохранил в 1251, то настройки и кодировка в файле /smartbasket/config.php

    Ответить
  • Степан

    А как то можно получить сам html файл шаблона? Для более удобной настройки и визуализации.

    Ответить
  • dimadv7

    Степан,ну можно ctrl+u нажать на демо-странице, или, если хотите, вышлю архив на почту

    Ответить
  • Степан

    dimadv7, Не нашел демо страницу. Если можно то на stepic1987@yandex.ru

    Ответить
  • Степан

    dimadv7, Еще такой вопрос, можете подсказать? Куда вписать еще поля формы в корзине? Через js файл?

    Ответить
  • dimadv7

    Степан, в файл smartbasket.js

    Ответить
  • Леонид

    Дмитрий. Простите за назойливость. Но заказ по почте не уходит. Где надо указать логин и пароль для почты отправителя. Или посоветуйте что ещё проверить

    Ответить
  • dimadv7

    Проверьте что у вас php версии >= 6.5, проверьте, что jQuery > 3, загляните в консоль во время отправки, нет ли там ошибок. Убедитесь что оба адреса почтовых реально существуют и они разные. Спросите у хостера, не отключена ли функция mail вообще.

    Ответить
  • Леонид

    Версия php 5.6.38. И что теперь делать?

    Ответить
  • олег

    Леонид, в панели управления сервера поменяйте на выше версию или напишите своему администратору (у кого покупали хостинг) и попросите поменять.

    Ответить
  • dimadv7

    Леонид, да, Олег верно подсказал. С этой устаревшей версией PHP точно работать не будет.

    Ответить
  • Леонид

    Спасибо. Попробую договориться.

    Ответить
  • Владислав

    t(«body»).css(«overflow»,»scroll») не лучше ли заменить на t(«body»).css(«overflow»,»auto»)? А то как бы после того, как корзину закрыли, остаются полосы прокрутки..

    Ответить
  • Владислав

    Самое забавное, что я заметил, что если артикул data-sb-id-or-vendor-code начинается не с «0», то в самой корзине не перемножается кол-во и стоимость итоговая :)

    Ответить
  • dimadv7

    Владислав, по поводу overflow, да, конечно, упустил. Спасибо.

    Ответить
  • dimadv7

    Владислав, по поводу артикула начинающегося не с «0», хм, проверю, странно…

    Ответить
  • Владислав

    dimadv7, буду признателен, если напишите ответ.. Я вроде просто тупо копирнул для теста демку, т.к на другом тесте не работало в корзине. Мало ли, вдруг я где-то тупанул, когда искал решение проблемы. А я мог тупануть :D

    Ответить
  • dimadv7

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

    Ответить
  • Леонид

    Дмитрий. Я поменял версию PHP на 7.0 . Загрузил вашу демку , настроил config.php/ Эффект тот же. Заказ по почте не приходит. Пробовал yndex mail google и свою почту с сайта, во всех конфигурациях. На сайте есть две настройки. 1 режим cgi для совместимости с версиями PHP 5.4 4.4 5.5
    2 хранить сессии в redis .Может здесь поиграться?

    Ответить
  • Алиса

    Доброго времени суток. Для начала спасибо большое за работу, мне ну очень помогло. Вопрос-data-sb-product-name — название товара;, если название написать на кириллице нет никаких проблем?

    Ответить
  • олег

    Дмитрий, а можно в корзине (кнопка вызова корзины) показывать не количество товара, а общую цену?

    Ответить
  • dimadv7

    Алиса, здравствуйте. Нет, никаких проблем нет с кириллицей

    Ответить
  • dimadv7

    Используете jQuery > 3? Хостер не накладывал никаких ограничений на отправку писем? Форма сообщение какое-то выдает?

    Ответить
  • Максим

    dimadv7, а можно мне тоже демо страницу со скриптом на почту пожалуйста

    Ответить
  • Олег

    Максим, сам еще не вникал, но тоже актуально.. только я хочу прикрутить гугл таблицы, нашел сервис..sheetsu.com, думаю можно им..ну и так есть скрипты читать с гугл таблиц, можно было бы использовать ) если получиться раньше меня внедрить, пишите ) делитесь опытом )))

    Ответить
  • Артём

    Добрый день, по поводу разных см, а где передаются другие данные такие как размер и всё такое, хочу попробовать реализовать возможность покупки разных длины во одной корзине

    Ответить
  • Тимур

    Тимур, здравствуйте, как добавить новое поле в корзину?

    Ответить
  • Игорь

    Олег, вот видео решения _https://www.youtube.com/playlist?list=PLM7wFzahDYnGzgHS52GT7FWvvdpX6rDYR

    Ответить
  • dimadv7

    Здравствуйте, такой настройки не существует

    Ответить
  • Игорь

    В чем отличие данного скрипта от Simlecart js?

    Ответить
  • dimadv7

    Игорь, без понятия о чем вы говорите, поэтому и отличий не знаю

    Ответить
  • Дмитрий

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

    Ответить
  • dimadv7

    Дмитрий, да, давайте попробую.

    Ответить
  • Алиса

    Здравствуйте еще раз!
    У меня скрипт полностью работает, но почему то не работает

    32 см
    26 см
    22 см

    Стили для product__size почему то вообще не прописаны, на них кликаешь и вообще ничего не происходит. все делала четко по инструкции

    Ответить
  • dimadv7

    Стили и не должны быть прописаны, я специально этого не делал, чтоб не влиять на дизайн сайта. Каждый оформляет, как ему нужно. Но реакция при клике на цифры должна быть, посмотрите в инспекторе, там data-атрибут, отвечающий за размер у кнопки меняется. Если от него зависит цена, то и она меняется.

    Ответить
  • Роман

    Менее понятное описание подключения сложно придумать.
    Сделал вроде все как написано, вообще ничего не появилось кроме кнопки в корзину. Ничего не работает.

    Ответить
  • dimadv7

    Роман, ничего появиться, кроме кнопки корзины и кнопок выбора размер и не должно. Все сами прописываете. Появятся вопросы — задавайте. Если есть идеи, как сделать более понятной настройку — пишите, попробую реализовать.

    Ответить
  • Дмитрий

    Здравствуйте, пытался сделать товары через попап, прокидывая все атрибуты товара в одну кнопку (в Корзину), на странице. И столкнулся с проблемой, что если так делать, товар добавляется первый, а при добавление второго, картинка в корзине не меняется и имя, а остаётся таким же как и у первого добавленного товара.
    В общем нашёл я в чём проблема была
    c.sbImg = t(this).data(«SbProductImg»)
    исправил на:
    c.sbImg = t(this).attr(«data-sb-product-img»)
    ну и точно так же поступил с именем товара, мало ли кому пригодится.
    Мало ли кто ещё как я через попап делат ^^
    Автору, Спасибо.

    Ответить
  • Леонид

    Дмитрий. Подскажите пожалуйста где ещё исправить. Надо в кодировке 1251. Все файлы. Js css php перевёл в кодировку anssi , заменил utf-8 на windows-1251,. Js пришлось даже де-минимизировать в читабельный вид. А на выходе ноль. Форма просмотра заказа в utf-8 хотя сам заказ виден нормально

    Ответить
  • dimadv7

    Леонид, здравствуйте. Вы пересохранили в смысле все файлы? Так а в чем проблема? Крокозяблы? В самой форме или при получении на почту заявки?

    Ответить
  • Леонид

    Дмитрий спасибо за беспокойство, с кодировкой разобрался. Редактор notepad++ помог. Другие видимо что-то упускали.
    Зато родилась ещё одна идея применения и если подскажите где искать, просто будет гораздо быстрее ( я пишу на delphi , а php начал только изучать). Задача 1 программа выгружает сайт из базы данных прикладной программы с описанием товаров ( около 3000 позиций , поэтому вся выгрузка на delphi) . При создании страниц и сопутствующих товаров Ваш код не меняется, а вот захотелось в прайс-листы и поисковиках
    в виде таблиц добавить кнопку купить как продолжение строчки
    и тут пока проблемма. Если вставить просто кнопку
    <button class="product__add-to-
    —— В корзину

    то по умолчанию она ставит 0 (где можно изменить на 1)
    и второе кнопка не хочет вставать в клетку таблицы и всё время
    устанавливается слева страницы. Можно конечно переделать
    вашу форму , что-бы она была в строчку и без рисунка, но при больших таблицах получается громоздко.
    Заранее спасибо. Я конечно и сам дойду (наверноее это полезнее). но уж больно долго.

    Ответить
  • Леонид

    Дмитрий! извините за беспокойство. кнопка в корзину и так по умолчанию =1 просто пока была неправильная кодировка я этого не видел. Зато если в цикле в таблицу вставлять кнопку, то сначала печатаются все кнопки а потом таблица. и это мне пока не победить

    Ответить
  • Дмитрий

    Неожиданно скрипт перестал работать. Причина неизвестна.

    Ответить
  • dimadv7

    Дмитрий, что перестало работать? Что делали перед тем, как перестал работать?

    Ответить
  • Дмитрий

    dimadv7, извиняюсь за столь малые подробности в прошлом сообщение. Скрипт исправно работал и отсылал заказы на почту (использую для этого почту mail ru). Несколько дней назад решил проверить скрипт, до этого не внося никакие корректировки, письмо на почту не пришло. Пробовал сменить почту, файлы перезаливал.

    Ответить
  • dimadv7

    А в спаме нет? На другую почту не приходят тоже, не yна mail.ru в смысле?

    Хостер не мог ограничения никакие наложить? Почтовый адрес с которого отправляете не попал ни в какие черные списки и не находится под фильтром (маловероятно).

    А тестовое письмо осмысленное было? имя и телефон, а то бывает, я тоже замечал, если бред написать, для теста, тоже не приходят на mail.ru

    Ответить
  • Дмитрий

    dimadv7, спам, естественно, проверял.
    На яндекс письма приходят, но с большим запозданием и попадают в «спам». С mail.ru так и не смог разобраться.
    Заводил 2 новых почтовых ящика на mail.ru и тестил, письма не приходят.

    Ответить
  • dimadv7

    Со следующим обновлением сделаю возможность отправлять при помощи SMTP. Тогда, по идее, должно стать лучше. С mail.ru всегда проблемы были.

    Ответить
  • Леонид

    Дмитрий! Перекодировал все файлы в ansii (кроме phpmailer) вроде всё работает, но в форме отправки заказа поля телефон и имя становятся не активными ( не активируются от мышки) зато если с клавиатуры по табуляции до них добраться , то можно ввести данные, почему такое происходит не пойму. И ещё , насколько сложно заменить телефон на e-mail, а то звонить например в сибирь достаточно накладно. А на почту ответить просто.

    Ответить
  • dimadv7

    Леонид, не знаю даже, чем помочь. Неадекватное поведение какое-то. Точно проблема из-за конвертации в другую кодировку? По сложности не очень тяжело. Попробую сделать, если, будет время на днях возможность выбора поля (телефон/email). Если нет, то уже в июне, так как уезжаю через 2 дня и все мысли о другом уже)

    Ответить
  • Леонид

    dimadv7, поведение действительно странное. я готов переписать весь сайт (2500 страниц )в кодировку utf-8 (а там и база данных на mysql) . надо немного доработать под себя. я не web програмист, но ради такого дела засел за php что бы хотя бы понимать о чём код.
    и вот проблема файл smartbasket.min.js деминифицирую или Deobfuscator чтобы что то там посмотреть , пример сразу перестаёт работать, если перевожу в кодировку 1251 то в форме заказа невозможно указать имя и телефон. я надеялся что если буде читабельный код то можно снять маску на телефон и оставить только строку, а на нажатие кнопки «в корзину» поставить условие если количество ноль то ставить 1. тогда можно в таблицу вывода и поиска товаров вставлять одну кнопку. она так и работает но в форму заказа попадает ноль и надо сначала изменить до 2 а потом снова 1. В обще без исходников никуда. Я за месяц чего только не делал.
    Извините за длинное послание, но наверно придётся бросить это занятие.

    Ответить
  • dimadv7

    Леонид, ответил на почту

    Ответить
  • Леонид

    Дмитрий!
    Я наверное невезучий. как только в вашем файле меняю smartbasket.min.js
    на smartbasket.js пример перестаёт работать.
    У меня версия php 7.3.4 Может в этом причина , или какие нибудь настройки php надо изменить. Я задал вопрос провайдеру почему не уходит почта . Вот что мне ответили :
    На данный момент с нашей стороны не установлено каких-либо ограничений на отправку почты с вашего сайта. Для решения вопроса нам необходимо протестировать отправку почты.

    Пожалуйста, уточните:

    Как протестировать отправку почты с вашего сайта?
    Как изменить адрес, на который приходит почта?
    Как изменить настройки отправки почты?
    Предоставьте необходимые для тестирования доступы и максимально подробно ответьте на вышеперечисленные вопросы. Будем очень благодарны за пошаговые инструкции.

    Что им ответить не знаю. У них можно выбрать версию PHP 7.0 7.1 7.2 7.3

    Постараюсь у себя переустановить на PHP 7.0 и снова попробовать запустить Ваш скрипт с распакованым smartbasket.js

    Ответить
  • Руслан

    Добрый день, у меня возникли проблемы с ваши примером, как можно с вами связаться, а то я один не смогу их решить:3

    Ответить
  • Иван

    Добрый вечер, Дмитрий! Помогите, пожалуйста! Уже всю голову сломал. Не уходит почта.
    Версия PHP 7.2
    Версия Jquery 3.3.1
    Скопировал папку smartbasket в корень сайта, как и написано в инструкции. Подключил скрипт перед закрывающим тегом body.
    Сделал все как положено! Сама корзина отлично работает, но вот при нажатии кнопки отправки письмо не приходит на почту.
    Все действия проверял на Open Server а так же на хостинге и результат один и тот же. При отправки так же проверял console на наличие ошибок — ошибок не было!
    Настройки в файле config.php сделал как в инструкции. Единственное что смутило так это то что Вы в инструкции не написали не слово где для отправки почты прописывать PORT, LOGIN, PASSWORD. Что для меня не очень понятно как отправка писем будет работать без этих параметров.
    В инструкции написано в config.php изменить только:
    SENDER
    CATCHER
    Что касается данных параметров то в них я указал действующие и рабочие почты.
    Я в тупике подскажите, что может быть не так!
    А и еще попробовал даже взять всё из Дэмо через «Просмотор кода» и там аналогичная ситуация — почта тоже не приходила и ошибок в консоли тоже не было.

    Ответить
  • Константин

    Не работает общая стоимость — https://yadi.sk/i/NPWWnB0JkpDG4g

    Ответить

Добавить комментарий

Подписывайтесь на обновления, чтобы ничего не пропустить.