<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Правила для корзины]]></title>
		<link>https://forum.readyscript.ru/topic/467/pravila-dlya-korziny/</link>
		<atom:link href="https://forum.readyscript.ru/feed/rss/topic/467/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Правила для корзины».]]></description>
		<lastBuildDate>Mon, 07 Dec 2015 15:27:08 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Правила для корзины]]></title>
			<link>https://forum.readyscript.ru/post/2298/#p2298</link>
			<description><![CDATA[<p>Как то была подобная задача. <br />Решил следующим путем.<br />Настроил несколько типов цен для соответствующей скидки.</p><br /><p>Создал (спасибо разработчикам за советы) простой модуль.<br />Тип цены переключается в зависимости от суммы товаров в корзине:<br /></p><div class="codebox"><pre><code>&lt;?php

namespace Opt\Config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this-&gt;bind(&#039;cart.update.after&#039;)
               -&gt;bind(&#039;cart.getcartdata&#039;)
              -&gt;bind(&#039;cart.addproduct.after&#039;); 
    }    
    
   public static function checkprice($info)
    {
         //\Catalog\Model\CostApi::setSessionDefaultCost(2); 
          if (!$_SESSION[&#039;user_cost_id&#039;]) {
                $_SESSION[&#039;user_default_cost_id&#039;]=\Catalog\Model\CostApi::getDefaultCostId();
                $cost_id=\Catalog\Model\CostApi::getDefaultCostId() ;
         }  
           else   $cost_id=$_SESSION[&#039;user_cost_id&#039;];
                                                    
         $cart=$info[&#039;cart&#039;];      
         $cartinfo = $cart-&gt;getCartData(false,false);
         flog($cost_id);                                
         flog( $cartinfo[&#039;total&#039;]);   
  //здест условие для переключения типа цены        
         if ((  $cartinfo[&#039;total&#039;]&lt;50000) &amp;&amp;( $cost_id!=1)) 
         {       

             $_SESSION[&#039;user_cost_id&#039;]=1;    
               
             //здесь необходимо обновить корзину  
             //Заменим закешированный _current_cost_id у объекта товара 
            
            foreach($cart-&gt;getProductItems() as $cartdata) {  
             
                $cartdata[&#039;product&#039;][&#039;_current_cost_id&#039;] =1;
            }

            //Очистим сведения для блока корзины
            $cart-&gt;cleanInfoCache();
 
             $info[&#039;cart&#039;]=$cart;           
             
        }
///здесь условие для переключения типа цены
         elseif ((  $cartinfo[&#039;total&#039;]&gt;=50000)&amp;&amp;( $cost_id!=2)) 
         {       
             
              $_SESSION[&#039;user_cost_id&#039;]=2;  
              
              //здесь необходимо обновить корзину 
              //Заменим закешированный _current_cost_id у объекта товара
            foreach($cart-&gt;getProductItems() as $cartdata) {
            
                $cartdata[&#039;product&#039;][&#039;_current_cost_id&#039;] =2; 
                
            }

            //Очистим сведения для блока корзины
            $cart-&gt;cleanInfoCache();
 
             $info[&#039;cart&#039;]=$cart;   
            
         };
      
         $info[&#039;cost_id&#039;]= $_SESSION[&#039;user_cost_id&#039;];        
       return $info;    
    }
  public static function cartUpdateAfter ($info)
    {  
    
       $result=self::checkprice($info);           
       return $result;     
           
    }
   public static function cartGetcartdata ($info)
   {     
     
     $k=$info[&#039;cart_result&#039;];     
     $k[&#039;cost_id&#039;]= $_SESSION[&#039;user_cost_id&#039;];  

     return $info ;
   }   
                           
   public static function cartAddproductAfter ($info)
    {  
           $result=self::checkprice($info);           
          return $result;
    }
    
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Ярослав)]]></author>
			<pubDate>Mon, 07 Dec 2015 15:27:08 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/2298/#p2298</guid>
		</item>
		<item>
			<title><![CDATA[Re: Правила для корзины]]></title>
			<link>https://forum.readyscript.ru/post/2281/#p2281</link>
			<description><![CDATA[<p>Нет, так как вы предложили в одно правило 3 независимых &quot;если&quot; и &quot;то&quot;, к сожалению, в данном модуле не сделать.&nbsp; Точнее объем доработок сравни написанию полностью другого модуля.</p><p>В модуле заложена абстракция: При выполнении условий &quot;Если&quot;, выполняются все &quot;То&quot;. </p><p>И здесь невозможно качественно сделать связь между конкретным &quot;если&quot; и &quot;то&quot;, <br />порядковый номер - это не совсем корректно, т.к. функционльность позволяет создавать разноплановые &quot;То&quot;, в том числе и применять несколько &quot;То&quot;.</p><p>Многомерные комплектации - тоже не совсем подходят под вашу задачу. Это всего лишь параметры товара. <br />В этой абстракции нет зависимости от количества.</p><p>На мой взгляд эту задачу можно решиться только доп.модулем, который добавит к товару возможность указания диапазона количества и скидки.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Mon, 30 Nov 2015 19:45:35 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/2281/#p2281</guid>
		</item>
		<item>
			<title><![CDATA[Re: Правила для корзины]]></title>
			<link>https://forum.readyscript.ru/post/2279/#p2279</link>
			<description><![CDATA[<p>просто магазин оптовый, и скидка зависит от количества. Еще бы можно было в карточке товара с помощью многомерных комплектация сделать, но я не нашел как к каждой комплектации добавить свою цену и минимальный заказ(.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 30 Nov 2015 17:35:19 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/2279/#p2279</guid>
		</item>
		<item>
			<title><![CDATA[Re: Правила для корзины]]></title>
			<link>https://forum.readyscript.ru/post/2278/#p2278</link>
			<description><![CDATA[<p>это три разных правила на один товар. товаров которым надо прописать правило допустим 100. это 300 разных таблиц, по три на товар.<br />Наглядно вот так<br /><span class="postimg"><img src="https://vk.com/photo-106256709_392026789" alt="https://vk.com/photo-106256709_392026789" /></span></p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 30 Nov 2015 17:27:25 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/2278/#p2278</guid>
		</item>
		<item>
			<title><![CDATA[Re: Правила для корзины]]></title>
			<link>https://forum.readyscript.ru/post/2277/#p2277</link>
			<description><![CDATA[<p>Вы можете создать 3 правила:</p><p>1. Если общее количество товара &gt;19<br />и если общее количество товара &lt;50<br />то применить скидку 5%</p><p>2. Если общее количество товара &gt;49<br />и если общее количество товара &lt;100<br />то применить скидку 10%</p><p>3. Если общее количество товара &gt;99<br />то применить скидку 15%</p><p>В данном случае только одно правило будет срабатывать на общее количество&nbsp; товаров в корзине. <br />Уточните, чем вам этот вариант не подходит?</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Mon, 30 Nov 2015 16:11:54 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/2277/#p2277</guid>
		</item>
		<item>
			<title><![CDATA[Re: Правила для корзины]]></title>
			<link>https://forum.readyscript.ru/post/2276/#p2276</link>
			<description><![CDATA[<p>Добрый день! Модуль полезный, но мне не хватает функционала! <br />Стоит задача сделать правило: при заказе 20ед. товара 5% скидки, от 50 ед. 10%, от 100ед. 15%. К сожалению в одном правиле это сделать не получается, т.к. сразу при любом количестве товара в корзине, становиться наивысшая скидка. Приходиться на один товар делать три правила.<br />Хотелось бы:<br />Если товара &gt;20 то скидка5%, если &gt;50 то скидка 10%, если&nbsp; &gt;100 то скидка 15%.......<br />Может кто может подсказать как поменять код в модуле чтобы такое было возможным? Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 30 Nov 2015 15:59:22 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/2276/#p2276</guid>
		</item>
		<item>
			<title><![CDATA[Re: Правила для корзины]]></title>
			<link>https://forum.readyscript.ru/post/1938/#p1938</link>
			<description><![CDATA[<p>Спасибо. Всё получилось!</p>]]></description>
			<author><![CDATA[null@example.com (Ольга)]]></author>
			<pubDate>Wed, 16 Sep 2015 20:25:49 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/1938/#p1938</guid>
		</item>
		<item>
			<title><![CDATA[Re: Правила для корзины]]></title>
			<link>https://forum.readyscript.ru/post/1937/#p1937</link>
			<description><![CDATA[<p>Нужно использовать вариант 1, т.е. товар с видимостью, ценой - 0, но поместить его в скрытую категорию.<br />Далее просто исключите скрытую категорию (в которой товар-подарок) из профиля экспорта в ЯМ.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 16 Sep 2015 20:15:57 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/1937/#p1937</guid>
		</item>
		<item>
			<title><![CDATA[Правила для корзины]]></title>
			<link>https://forum.readyscript.ru/post/1935/#p1935</link>
			<description><![CDATA[<p>Добавление бонуса к заказу - как правильно его сделать?</p><p>Есть задача - чтобы в корзине добавлялся товар в подарок, т.е. стоимость 0 руб.</p><p>1. Если создать товар с видимость и ценой 0 руб, то в яндекс маркет прайс лист не проходит.<br />2. Если видимость убрать, то ссылка в корзине всё равно остаётся на товар и при переходе выдаёт ошибку 404.<br />3. Если создать товар, со стоимостью больше 0 руб., то нельзя вычесть его стоимость в корзине, т.к. скидка есть только в %.<br />4. Сделать скидку 100% на бонусный товар, если цена не 0 руб., тоже нельзя почему-то)</p><p>Как поступить?</p>]]></description>
			<author><![CDATA[null@example.com (Ольга)]]></author>
			<pubDate>Wed, 16 Sep 2015 17:51:11 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/1935/#p1935</guid>
		</item>
	</channel>
</rss>
