Перейти к содержимому


Фото
- - - - -

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


  • Чтобы отвечать, сперва войдите на форум
4 ответов в теме

#1 Skynet

Skynet
  • Пользователь
  • 74 сообщений

Опубликовано 02.01.2019 - 20:35

Добрый вечер, друзья!

 

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

 

Подскажите пожалуйста, как можно откорректировать условие в api\Cart.php, чтобы можно было товар добавлять с нулевым остатком, но в случает если в админке указано конкретное число на складе, не возможно было его добавить в корзину с витрины магазина?

 

api\Cart.php

	/*
	*
	* Добавление варианта товара в корзину
	*
	*/
	public function add_item($variant_id, $amount = 1)
	{
		$amount = max(1, $amount);

		if(isset($_SESSION['shopping_cart'][$variant_id]))
      		$amount = max(1, $amount+$_SESSION['shopping_cart'][$variant_id]);

		// Выберем товар из базы, заодно убедившись в его существовании
		$variant = $this->variants->get_variant($variant_id);

		// Если товар существует, добавим его в корзину
		if(!empty($variant))
		{
			// Не дадим больше чем на складе
			//$amount = min($amount, $variant->stock);

			$_SESSION['shopping_cart'][$variant_id] = intval($amount);
		}
	}


Изменено: Skynet, 02.01.2019 - 20:42


#2 shooroop

shooroop
  • Фрилансер
  • 820 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 02.01.2019 - 21:11

все верно у вас убрано количество на складе поэтому и добавляет



#3 Skynet

Skynet
  • Пользователь
  • 74 сообщений

Опубликовано 02.01.2019 - 21:46

все верно у вас убрано количество на складе поэтому и добавляет

 

Да, но если я оставлю, то не будет добавляться товар с нулевым остатком.

 

Можно ли условие откорректировать так, чтобы можно было товар добавлять с нулевым остатком, но в случает если у товара в админке указано конкретное количество на складе, не возможно было его добавить больше указанного количества на складе в корзину с витрины магазина?

$amount = min($amount, $variant->stock);


#4 shooroop

shooroop
  • Фрилансер
  • 820 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 02.01.2019 - 22:21

добавите новое поле у вариантов и от него пляшите



#5 chocolate_moles

chocolate_moles
  • Фрилансер
  • 463 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 02.01.2019 - 23:26

//$amount = min($amount, $variant->stock);

замените на

if($variant->stock >= 1)
    $amount = min($amount, $variant->stock);
else
    $amount = 1;

 






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых