IPB

Здравствуйте, гость ( Вход | Регистрация )

21 страниц V  « < 19 20 21  
Ответить в данную темуНачать новую тему
> Модуль корзины и прайса, Мини интернет-магазин
leksti
сообщение 16.1.2014, 19:23
Сообщение #401


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Цитата(Dennion @ 16.1.2014, 14:37) *
Поправил. Если что, то файл phpshop/modules/cart/core/order.core.php строки 174-175


Код
            // Очищаем корзину
            $_SESSION['CART']=null;
            unset($_SESSION['CART']);

Да, спасибо. Вроде, всё хорошо заработало.
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 28.4.2014, 21:56
Сообщение #402


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Подскажите, пожалуйста, как можно заставить округляться цену в прайсе до целого числа без копеек.
Я сделал скидку при авторизации, некоторые цены стали выдаваться с копейками, например, 382.20 или 456.50, а надо, чтобы 382 и 457.

Пробовал привязать к этому:
Код
return $PRODUCT;


вот это

Код
round();


но не получилось.

Как это сделать правильно?
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 29.4.2014, 8:20
Сообщение #403


Администратор
***

Группа: Главные администраторы
Сообщений: 5911
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3




Код
number_format($price, $format, '.', '');
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 29.4.2014, 18:39
Сообщение #404


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Цитата(Dennion @ 29.4.2014, 9:20) *
Код
number_format($price, $format, '.', '');

Куда это правильно добавить? Я пытался в function ProductCsv и function CreatBase, но так не получилось.
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 30.4.2014, 16:27
Сообщение #405


Администратор
***

Группа: Главные администраторы
Сообщений: 5911
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Могу вынести это в настройки модуля.
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 30.4.2014, 23:08
Сообщение #406


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Цитата(Dennion @ 30.4.2014, 17:27) *
Могу вынести это в настройки модуля.

Это было бы замечательно, сделайте, пожалуйста.
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 16.5.2014, 17:03
Сообщение #407


Администратор
***

Группа: Главные администраторы
Сообщений: 5911
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Проверь перед релизом модуль. Его нужно переставить.

Прикрепленные файлы
Прикрепленный файл  cart.zip ( 24,27 килобайт ) Кол-во скачиваний: 91
 
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 22.9.2014, 15:28
Сообщение #408


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Помогите, пожалуйста, решить задачу.
У меня есть проект, в котором присутствует сезоность цен. Например, с 01.01 по 28.02 - одна цена, а с 01.03 по 31.05 - другая. Но заказчик может заказать услугу в феврале, как на февраль, так и на март и далее. А прайс-лист обрабатывается текущий. Можно ли как-то сделать, чтобы, например, по селекту ("выберите период цен"), обрабатывался price1.csv или price2.csv, чтобы это мог сделать посетитель сайта? Артикулы и позиции идентичны.
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 9.10.2014, 17:09
Сообщение #409


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Цитата(leksti @ 22.9.2014, 16:28) *
Помогите, пожалуйста, решить задачу.
У меня есть проект, в котором присутствует сезоность цен. Например, с 01.01 по 28.02 - одна цена, а с 01.03 по 31.05 - другая. Но заказчик может заказать услугу в феврале, как на февраль, так и на март и далее. А прайс-лист обрабатывается текущий. Можно ли как-то сделать, чтобы, например, по селекту ("выберите период цен"), обрабатывался price1.csv или price2.csv, чтобы это мог сделать посетитель сайта? Артикулы и позиции идентичны.

Ну намекните, пожалуйста, где хотя бы он определяет, что нужно забрать именно price.csv, а не blabla.csv. У меня мысль, чтобы через форму (form action method) с помощью <option> можно было выбрать нужный прайс для обработки. Это вообще, возможно технически? blink.gif
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 13.10.2014, 10:53
Сообщение #410


Администратор
***

Группа: Главные администраторы
Сообщений: 5911
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Технически реализуемо все, но в данной задачке его нужно будет очень много. Если пошли такие задачи на выборки, то нужно менять хранение данных с csv на mysql, иначе работы будет в 10 раз больше. Я так с лета не могу сказать как это сделать. Надо думать, пробовать. Такие вещи оплачиваются и не мало. Примерно соизмеримо с новый айфоном.
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 5.2.2015, 1:01
Сообщение #411


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Цитата(Dennion @ 13.10.2014, 10:53) *
Технически реализуемо все, но в данной задачке его нужно будет очень много. Если пошли такие задачи на выборки, то нужно менять хранение данных с csv на mysql, иначе работы будет в 10 раз больше. Я так с лета не могу сказать как это сделать. Надо думать, пробовать. Такие вещи оплачиваются и не мало. Примерно соизмеримо с новый айфоном.

Реализовал данный функционал - добавлена одна строчка в inc-файл корзины. Работа в рамках системы, примерно 10 минут работы и пара часов доводки. smile.gif Если интересно, могу скинуть в личку адрес, где можно посмотреть.
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 5.3.2015, 19:44
Сообщение #412


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Можно ли с помощью какой-то дополнительной переменной позволить добавлять в корзину товары с одним ID на разные позиции? Например, чтобы в корзине могло быть так:

ID: 101 Артикул: 101 Доп. переменная: 01.05.15 Товар: Яблоки Количество: 5 штук
ID: 101 Артикул: 101 Доп. переменная: 31.05.15 Товар: Яблоки Количество: 7 штук

Итого: 12 яблок

Сейчас система все яблоки соберёт в одну кучу и получится:

ID: 101 Артикул: 101 Доп. переменная: 31.05.15 Товар: Яблоки Количество: 12 штук

Итого: 12 яблок

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

Спасибо.
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 11.3.2015, 19:06
Сообщение #413


Администратор
***

Группа: Главные администраторы
Сообщений: 5911
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Простого решения тут нет. Нужно пересобирать логику добавления в корзину, прайса и оформления заказа.
phpshop/modules/cart/inc/cart.inc.php

вот код добавления в корзину

Код
// Считаем корзину
if(isset($output['item'])) {

    if(empty($_SESSION['CART'][$output['item']])) {
        $_SESSION['CART'][$output['item']]=$GLOBALS['_PRODUCT'][$output['item']];
        if(PHPShopSecurity::true_num($output['num'])) $_SESSION['CART'][$output['item']]['num']=$output['num'];
    }
    elseif(PHPShopSecurity::true_num($output['num'])) $_SESSION['CART'][$output['item']]['num']+=$output['num'];

    else $_SESSION['CART'][$output['item']]['num']=$_SESSION['CART'][$output['item']]['num']+1;
}


тут массив корзины разбит по ключу товара (ID). Нужно тогда сделать проверку на переменную $_GET[opt] и если она есть создавать многомерный массив по жаному товару
Код
if(!empty($_GET[opt])){
$_SESSION['CART'][$output['item']][]['num']=1;
}
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 12.3.2015, 16:51
Сообщение #414


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Цитата(Dennion @ 11.3.2015, 19:06) *
Нужно пересобирать логику добавления в корзину, прайса и оформления заказа.

Помогите собрать, пожалуйста. У меня создаёт новый массив (я выводил с помощью print_r($_SESSION), но внутри массива с ID товара:

[CART] => Array ( [art1] => Array ( [art] => art1 [name] => Яблоки [price] => 50 [catalog] => 1 [num] => 2 [0] => Array ( [num] => 1 ) [1] => Array ( [num] => 1 ) ) )

Он разбил данные "поштучно", но не так, как надо.
Как мне сделать так, чтобы он разбил по переменной 'opt'? Корзину и заказ не так сложно будет собрать, если данные уйдут в массив нормально.

Может, лучше было бы, чтобы эта доп. переменная была первой среди позиций в корзине?
Например:
[CART] => Array ([peremennaya1] => Array ( [art1] => Array ( [art] => art1 [name] => Яблоки [price] => 50 [catalog] => 1 [num] => 2)[peremennaya2] => Array ( [art1] => Array ( [art] => art1 [name] => Яблоки [price] => 50 [catalog] => 1 [num] => 5))
Итого, яблок будет 7 на сумму 350.

Возможно, чтобы корзина разбивалась по переменной 'peremennaya'?

Или как-то по-другому можно это сделать более логично?
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 13.3.2015, 12:28
Сообщение #415


Администратор
***

Группа: Главные администраторы
Сообщений: 5911
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Все товары будут с этой переменной?
если да. То
Код
if(!empty($_GET[opt])){
$_SESSION['CART']($_GET[opt][$output['item']]['num']=1;
}
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 13.3.2015, 17:09
Сообщение #416


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Цитата(Dennion @ 13.3.2015, 12:28) *
Все товары будут с этой переменной?
если да. То
Код
if(!empty($_GET[opt])){
$_SESSION['CART']($_GET[opt][$output['item']]['num']=1;
}

Не получается. При пустом value из input name='opt' добавляет в корзину, при заполненном - белое окно и не добавляет в сессию.
Я как-то не правильно выстроил конструкцию?
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 16.3.2015, 18:31
Сообщение #417


Администратор
***

Группа: Главные администраторы
Сообщений: 5911
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Код
if(!empty($_GET[opt])){
$_SESSION['CART'][$_GET[opt]][$output['item']]['num']=1;
}


в массиве [ ] только, ( ) приведет к фаталити.
Перейти в начало страницы
 
+Цитировать сообщение
leksti
сообщение 17.3.2015, 18:58
Сообщение #418


Активный участник
***

Группа: Модератор
Сообщений: 525
Регистрация: 27.12.2010
Из: Санкт-Петербург
Пользователь №: 736



Цитата(Dennion @ 16.3.2015, 18:31) *
Код
if(!empty($_GET[opt])){
$_SESSION['CART'][$_GET[opt]][$output['item']]['num']=1;
}


в массиве [ ] только, ( ) приведет к фаталити.

Нет, с этим-то всё понятно. Мне непонятно другое - как логически построить скрипт, чтобы он правильно загонял данные в сессию. Сейчас у меня получается так:

[CART] => Array ( [111] => Array ( [101] => Array ( [num] => 1 ) ) [101] => Array ( [art] => 101 [name] => Яблоки [sort] => Гренни Смит [price] => 50 [catalog] => 1 ) [333] => Array ( [101] => Array ( [num] => 1 ) )

111 и 333 - это значения, переданные через переменную 'opt'.

А надо бы, чтобы было так:

[CART] => Array ( [111] => Array ( [101] => Array ( [num] => 1 [101] => Array ( [art] => 101 [name] => Яблоки [sort] => Гренни Смит [price] => 50 [catalog] => 1 )) [333] => Array ( [101] => Array ( [num] => 1 [101] => Array ( [art] => 101 [name] => Яблоки [sort] => Гренни Смит [price] => 50 [catalog] => 1 ) )

Отсюда ещё один вопрос - как в итоге эти данные "подцепить" в форме заказа? [CART][111] и [CART][333] не получится, ведь здесь будут разные значения, заранее мне неизвестные.

Может, я неправильно эту проверку на get opt вставляю? Помогите, пожалуйста.
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 22.3.2015, 10:41
Сообщение #419


Администратор
***

Группа: Главные администраторы
Сообщений: 5911
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Без понимания как работают массивы и знания функции обхода массива подобные задачи будут вводить в ступор. Рекомендую просто потратить день на разбор учебника по созданию массивов и работы с ним. Это будет продуктивнее намного.

http://php.net/manual/ru/book.array.php
http://php.net/manual/ru/control-structures.foreach.php

Я то могу сказать, но так как нет понимание материла на каждый мой ответ будет 10 новых вопросов. лучше все это понять самому. Это основы php. Там много что менять нужно, одной подсказкой не отделаешься.
Перейти в начало страницы
 
+Цитировать сообщение

21 страниц V  « < 19 20 21
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 14.11.2019, 4:57