Давно не смотрел эту корзину, но тут, скорее всего, понадобится делать интернет-магазин, и я скачал файлы и посмотрел что к чему.
Вопрос, который меня мучил еще давно – а почему так странно организована обработка товаров в программах на PHP? Для каждого товара отводится своя переменная (типа $NAME_1, $NAME_2) и все действия с ними просто дублируются. Мне кажется, что можно завести массив (или несколько массивов), где хранить все, что нужно. При этом команды обработки можно не дублировать, а выполнять в цикле. Помимо уменьшения кода программ, данное изменение позволит (как мне кажется) снять ограничение в 12 товаров в корзине, что для некоторых магазинов достаточно важно. В JavaScript практически ничего менять не надо, только в PHP. Может я ошибаюсь (смотрел не очень внимательно), но мне кажется, что это исправление не слишком сложное, но достаточно полезное.
Еще небольшое замечание (не такое важное, как первое). Мне кажется, что лучше для отправки писем использовать class.phpmailer.php, а не команду mail. Если во всех частях сайта будет использоваться именно phpmailer, при возникновении проблем с почтой (а это далеко не редкость на некоторых хостингах), можно будет внести исправления в файл class.phpmailer.php (например, отправив всю почту через smtp), а не править множество различных сниппетов.
Quote from: solovets-denis at Mar 03, 2009, 04:29 AM
не помогает никак. Добавляет максимум 9 товаров 
Если речь идет о корзине по приведенной выше ссылке, там что-то напутано с выводом списка товаров. В описании элемента должно быть что-то вроде (важное выделил):
<input id="QUANTITY[+id+]" type="text" value="1" size="5" />
<a href="#" onclick="AddToCart(’[+id+]’,’[+price+]’,’[+longtitle+]’,this);return false">В корзину</a>
То есть после слова QUANTITY должно быть то же число, что стоит первым параметром в вызове функции. А по ссылке видно примерно такое (лишние теги удалил):
<input id="QUANTITY12" type="text" value="1" size="5" />
<a href="#" onclick="AddToCart(’1’,’9800’,’Измеритель объема нового образца’,’Запасные части к ТРК НАРА (г. Серпухов)’,this);return false">В корзину</a>
Получается, что количество задается для товара 12, а добавляется в корзину товар 1.
Quote from: AKots at Mar 08, 2009, 05:56 AM
Давно не смотрел эту корзину, но тут, скорее всего, понадобится делать интернет-магазин, и я скачал файлы и посмотрел что к чему.
Вопрос, который меня мучил еще давно – а почему так странно организована обработка товаров в программах на PHP? Для каждого товара отводится своя переменная (типа $NAME_1, $NAME_2) и все действия с ними просто дублируются. Мне кажется, что можно завести массив (или несколько массивов), где хранить все, что нужно. При этом команды обработки можно не дублировать, а выполнять в цикле. Помимо уменьшения кода программ, данное изменение позволит (как мне кажется) снять ограничение в 12 товаров в корзине, что для некоторых магазинов достаточно важно. В JavaScript практически ничего менять не надо, только в PHP. Может я ошибаюсь (смотрел не очень внимательно), но мне кажется, что это исправление не слишком сложное, но достаточно полезное.
Еще небольшое замечание (не такое важное, как первое). Мне кажется, что лучше для отправки писем использовать class.phpmailer.php, а не команду mail. Если во всех частях сайта будет использоваться именно phpmailer, при возникновении проблем с почтой (а это далеко не редкость на некоторых хостингах), можно будет внести исправления в файл class.phpmailer.php (например, отправив всю почту через smtp), а не править множество различных сниппетов.
Просто первоначально когда я брал за основу корзину Nopcart, сниппет был набросн на скорую руку для тестирования. Потом что-то упростил, а вот эта некрасивая конструкция с дублированием осталась. Я вообще хочу переписать сниппет в виде класса, чтобы все было предельно просто. А то давно уже руки чешутся все это сделать. Но соберу сборку с оплатой по вебмани и выставлением счета, тогда приступлю к оптимизации сниппета
приятно видеть что корзина не загибается, а только набирает обороты
-
☆ A M B ☆
- 276 Posts
На примете создание сайта для оптовых заказов.
Есть 2 момента:
- товары идут по брендам и надо что б в корзине они отображались в подобном виде:
Бренд1
Товар1
Товар2
Итого по бренду1
Бренд2
Товар1
Товар2
Товар3
Итого по бренду2
Общая сумма заказа
Второй момент возможно ли использование разных исходных валют
ну и как альтернатива возможно ли установить на 1 сайт 2 корзины?
Quote from: dmi3y at Mar 10, 2009, 07:17 AM
Второй момент возможно ли использование разных исходных валют
ну и как альтернатива возможно ли установить на 1 сайт 2 корзины?
Установить 2 корзины возможно без проблем, но для каждой из них нужно сделать свои страницы для оформления заказа, корзины и страницы завершения покупки. И одновременно на одной странице нельзя ставить 2 инфоблока.
Но будут проблемы с админкой - поскольку она рассчитана на работу с одним вариантом сниппета. Но установить 2 модуля возможно, просто нужно немного подправить код.
Что касается нескольких валют, то нужно для этого дорабатывать сниппет. В теперешнем виде он не рассчитан на это.
Вообще изначально ваша ситуация нестандартная, поэтому подобные возможности нужно дополнительно разрабатывать.
Quote from: dmi3y at Mar 10, 2009, 07:17 AM
- товары идут по брендам и надо что б в корзине они отображались в подобном виде:
Бренд1
Товар1
Товар2
Итого по бренду1
Бренд2
Товар1
Товар2
Товар3
Итого по бренду2
Общая сумма заказа
Тоже нестандартное решение - нужно специально дорабатывать корзину.
есть ли возможность ставить две цены на товар?
что-то я не вижу тут этого
в общем есть цена на товар с доставкой и без доставки
цена с доставкой зависит от уймы параметров и рассчитать ее невозможно
да и в прайсе на все продукты стоит две цены
т.е. придется делать два TV (TV1 - цена с доставкой, TV2 - цена без доставки) и потом при заказе выбирать одну из цен
не подскажите в каком направлении примерно двигаться, чтобы это осуществить?
PS: я может и туплю дико, но TV редко включал в свои проекты, да и то в виде фотки только.. так что извиняйте
Можно реализовать с помощью плагина PHx. Делаете 2 чекбокса - Цена 1 и Цена 2. Затем PHx определяет, какая цена выбрана и подставляет значение поля соответсвующей цены в функцию AddToCart.
Думаю, несложно. Если вдруг будет проблема, сообщите мне - помогу.