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

«StartZurück12WeiterEnde»
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

Letzte Änderung: 07.05.2014 16:21
 
07.05.2014 20:33
#2
webdesigner
(Support Team)
User webdesigner
Name: Admin
05.08.2010
Posts: 16480
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 мин.

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

Спасибо!


Letzte Änderung: 07.05.2014 22:59
 
08.05.2014 07:52
#4
webdesigner
(Support Team)
User webdesigner
Name: Admin
05.08.2010
Posts: 16480
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, спасибо большое за наводку.


Letzte Änderung: 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
webdesigner
(Support Team)
User webdesigner
Name: Admin
05.08.2010
Posts: 16480
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
webdesigner
(Support Team)
User webdesigner
Name: Admin
05.08.2010
Posts: 16480
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
webdesigner
(Support Team)
User webdesigner
Name: Admin
05.08.2010
Posts: 16480
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 - когда товар уходит в ордер и на оплату - не надо)


Letzte Änderung: 15.05.2014 15:50
 
15.05.2014 21:35
#14
webdesigner
(Support Team)
User webdesigner
Name: Admin
05.08.2010
Posts: 16480
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
webdesigner
(Support Team)
User webdesigner
Name: Admin
05.08.2010
Posts: 16480
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
webdesigner
(Support Team)
User webdesigner
Name: Admin
05.08.2010
Posts: 16480
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;

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

 
«StartZurück12WeiterEnde»
Copyrights MAXXmarketing GmbH. All Rights Reserved