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

StartPrev 1 2 NextEnd
07.05.2014 16:19
#1
yuriyolkin
Joomshopping forum user no avatar
Name: Yuriy
23.04.2014
Posts: 11
Quote
Уменьшить остаток при добавлении в корзину.

Здравствуйте,
появилась необходимость уменьшать остаток "на складе" в момент добавления товара в корзину.
Честно говоря я не в курсе в какой момент сейчас Joomshoping уменьшает остаток товара. Вероятно после окончания покупки (?).

Не могли бы вы помочь сделать такое изменение, можно непосредственно в коде магазина. То есть без разработки отдельного расширения (хотя, я не в курсе - как вам удобнее). Насколько я понимаю - процедура уменьшения остатка уже есть, только она вызывается в момент "после оплаты" (если не ошибаюсь). А мне нужно вызвать её в момент "добавления товара в корзину". То есть вызов перенести (в старом месте убрать/закомментировать).

Помогите пожалуйста. Можно за оплату. Или полностью сделать исправление, или хотя бы проконсультировать-подсказать где эти места.
- - - - - -

Я понимаю, что как следствие возникает вторая задача - "забытые (больше 30 мин)" корзины очищать и возвращать товар в "остаток на складе". Это вторая задача, её можно решать после первой.

Поскольку это практически личный заказ, то можно ответить на yuriyolkinwork [@] yahoo.com
Заранее - спасибо.
Юрий Ёлкин
PS. We can switch to English, if you wish.


Joomla: 3.3.0
JoomShopping: 4.4.0
PHP: 5.4.28
MySQL: 5.1.73
Website Url: torontella.com

Last change: 07.05.2014 16:21
 
07.05.2014 20:33
#2
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25850
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Я думаю что не все так просто (нет простого решения)
1. Клиент может поменять количество товара в корзине.
2. Клиент добавил в корзину и закрыл броузер.

Я не совсем понимаю зачем вам такие изменения. (Есть проверка после подтверждения заказа)

 
07.05.2014 22:56
#3
yuriyolkin
Joomshopping forum user no avatar
Name: Yuriy
23.04.2014
Posts: 11
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Веб-сайт продаёт билеты на фестиваль, то есть "палатко-места". И если два-три человека купят одно и тоже место, то будет проблема. Детали, кемпинг разбит на квадраты, на одном квадрате может "устроиться" восемь человек, вот этот квадрат у меня = товар, в количестве восемь штук "на складе". Квадраты (из-за рельефа) разные, где-то 8, где то 6, где то 4 человека. У квадрата есть "имя", по нему его и находят на карте (на месте).
- - - - -

1) Да, про изменение в корзине я не подумал. Но там тоже есть событие, нажатие на кнопку, "пересчитать сумму". То есть тоже есть куда вставить дополнительный вызов. Или я не прав.
Я, конечно, не знаю движка (да и РНР тоже, по большому счёту), но я больших проблем не вижу.
Количество "старое" есть, "новое" тоже есть, нужно организовать вызов процедуры корректировки, закомментарить в старом месте.

2) Ситуацию с "брошенной" корзиной, можно отложить на второй план. Я вообще планировал запасной вариант, когда все количества считать сторонней программой и править сразу в базе. Это не очень хороший вариант, но для брошенных корзин - он вообще почти идеальный (для меня).
Тут ещё "веселей", даже если пользователь не закрыл браузер, а пошёл пообедать, мне всё равно (по ТЗ) надо ликвидировать его корзину через 30 мин.

А вы не могли бы подсказать - в каких модулях это происходит?
- добавление в корзину
- изменение количества в корзине
- изменение количества остатка после покупки

Спасибо!


Last change: 07.05.2014 22:59
 
08.05.2014 07:52
#4
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25850
Quote
Aw: Уменьшить остаток при добавлении в корзину.

1. В магазине уже есть проверка - она перед сохранением заказа.
2. Я имел ввиду что просто скопировать код - не получится.


components\com_jshopping\models\cart.php

function add

function refresh

function delete


\components\com_jshopping\tables\order.php

function changeProductQTYinStock

 
10.05.2014 04:41
#5
yuriyolkin
Joomshopping forum user no avatar
Name: Yuriy
23.04.2014
Posts: 11
Quote
Aw: Уменьшить остаток при добавлении в корзину.

О! Спасибо большое! Пороюсь, что можно сделать.

Да, конечно, я понимаю копи-пейст тут не прокатит, надо вникать.
Ну мне проще, я же не универсальное решение-компонент делаю, так заплатку на раз )))
Да-да, из тех самых "разовых", которые потом на всю жизнь ))) Пятый год сопровождаем и правим приложение, которое называется "шесть-недель" , без шуток, прямо такое название, тоже заплатка была, вот прижилась.

 
10.05.2014 04:53
#6
yuriyolkin
Joomshopping forum user no avatar
Name: Yuriy
23.04.2014
Posts: 11
Quote
Aw: Уменьшить остаток при добавлении в корзину.

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

$query = "UPDATE `#__jshopping_products` SET product_quantity = product_quantity ".$change." ".$item->product_quantity." WHERE product_id = '".intval($item->product_id)."'";
$db->setQuery($query);
$db->query();

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

Anyway, спасибо большое за наводку.


Last change: 10.05.2014 04:54
 
13.05.2014 22:32
#7
yuriyolkin
Joomshopping forum user no avatar
Name: Yuriy
23.04.2014
Posts: 11
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Можно ещё вопрос.

Я обратил внимание, что корзина, если произвести оплату, через некоторое время очищается.
В каком модуле это происходит?

 
14.05.2014 07:41
#8
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25850
Quote
Aw: Уменьшить остаток при добавлении в корзину.

controller/checkout.php

function finish(){

...
$cart->clear();
$checkout->deleteSession();
}

 
14.05.2014 17:57
#9
yuriyolkin
Joomshopping forum user no avatar
Name: Yuriy
23.04.2014
Posts: 11
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Большое спасибо за ответ!
И прошу прощения. Я ошибся в предыдущем сообщении: я забыл "НЕ"

Я обратил внимание, что корзина, если НЕ произвести оплату, через некоторое время очищается.
То есть добавил товар, и так и оставил корзину, без оплаты.
В каком модуле это происходит?

(Вообще, такая очистка - очень нужно-полезная функция, на мой взгляд)

 
14.05.2014 18:56
#10
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25850
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Корзина сохраняется в сессии.

 
14.05.2014 20:18
#11
yuriyolkin
Joomshopping forum user no avatar
Name: Yuriy
23.04.2014
Posts: 11
Quote
Aw: Уменьшить остаток при добавлении в корзину.

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

1) - при совершении покупки
Это видимо то что вы мне написали: controller/checkout.php function finish(){...

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

Скажите пожалуйста, в коде магазина есть место, которое выполняется при завершении сессии по таймауту, т.е. перед удалением сессии "по истекло время жизни"?
Можно ли как то перехватить этот момент - перед удалением?

 
14.05.2014 20:34
#12
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25850
Quote
Aw: Уменьшить остаток при добавлении в корзину.

1. код где очищається корзина

Время сессии можно менять в настройках joomla

 
15.05.2014 15:50
#13
yuriyolkin
Joomshopping forum user no avatar
Name: Yuriy
23.04.2014
Posts: 11
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Добрый день,

В метод который вы указали

я добавил отладочный "трейсинг":

controller/checkout.php

function finish(){
$db = JFactory::getDBO();
$query = "INSERT INTO `yy` VALUES ('конец сессии')";
$db->setQuery($query);
$db->query();

но он не срабатывает в момент окончания сессии.

То есть, я поставил время сессии 2 мин.
Запускаю отдельный (другой) браузер, чтобы по куки не было точно пересечений.
В нём добавляю товар в корзину, жду 2 мин (чуть больше на самом деле):

корзина очищается, а мой "трейсинг" не срабатывает.
Или я что-то делаю не правильно?

(Прим. он работает во всех других местах, на добавлении, изменении, удалении товара, поэтому думаю сам "трейсинг" рабочий)
- - - -

Повторю мой вопрос:

Скажите пожалуйста, есть ли в коде магазина место, которое выполняется при завершении СЕССИИ ПО ТАЙМАУТУ, т.е. перед удалением сессии "по истекло время жизни"?

(Завершение по checkout - когда товар уходит в ордер и на оплату - не надо)


Last change: 15.05.2014 15:50
 
15.05.2014 21:35
#14
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25850
Quote
Aw: Уменьшить остаток при добавлении в корзину.

--Скажите пожалуйста, есть ли в коде магазина место, которое выполняется при завершении СЕССИИ ПО ТАЙМАУТУ, т.е. перед удалением сессии "по истекло время жизни"?

Такого кода не существуєт.

 
10.01.2015 15:42
#15
iliya.wys
Joomshopping forum user no avatar
Name: IIlll
10.01.2015
Posts: 1
Quote
Aw: Уменьшить остаток при добавлении в корзину.

А возможно сделать, либо настроить в конфиге, чтобы со склада списывалось только в случае успешной оплаты, а не при добавлении в корзину(добавил в корзину, оформил заказ, оплатил и только тогда списалось)?

 
10.01.2015 20:53
#16
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25850
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Joomshopping 3.20.0 / 4.8.0

lib/default_config.php

$config->order_stock_removed_only_paid_status = 1;

 
10.01.2015 22:01
#17
jbstudio
Joomshopping forum user no avatar
Name: Jb
16.07.2013
Posts: 14
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Не нашел такой строки в конфиге

$config->order_stock_removed_only_paid_status = 1;

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

Подскажите пожалуйста как решить проблему!

 
10.01.2015 22:17
#18
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25850
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Я писал выше версию.
Какая версия.

 
10.01.2015 22:25
#19
jbstudio
Joomshopping forum user no avatar
Name: Jb
16.07.2013
Posts: 14
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Version 4.8.0

 
10.01.2015 22:35
#20
jbstudio
Joomshopping forum user no avatar
Name: Jb
16.07.2013
Posts: 14
Quote
Aw: Уменьшить остаток при добавлении в корзину.

Прошу прощения!
Не туда посмотрел

Строку эту нашел
$config->order_stock_removed_only_paid_status = 0;

Заменил на
$config->order_stock_removed_only_paid_status = 1;

Но все равно почему-то списываются товары даже если заказ не был оплачен
Списываются сразу как только нажимаю кнопку ОФОРМИТЬ ЗАКАЗ

 
StartPrev 1 2 NextEnd


Copyrights MAXXmarketing GmbH. Alle Rechte vorbehalten
Durch die Nutzung dieser Website stimme ich zu, dass Cookies zur optimalen Gestaltung der Website sowie zur Analyse der Nutzung der Website verwendet werden. Weiterführende Informationen finden Sie hier. OK, einverstanden.