Модераторы: 2man
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 1C-Битрикс, Свойства удалённых товаров 
V
    Опции темы
Aluri
Дата 19.6.2013, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.6.2013

Репутация: нет
Всего: нет



Суть такова:
1. Товар создался и есть в продаже.
2. Добавляем его в корзину.
3. Снимаем товар с активности.
4. Переходим на страницу оформления заказа.
5. Товар начинает отображаться отдельно под надписью "Отсутствуют в продаже".
user posted image
6. Вместо свойств товара написано: "block_input: 0".
7. В административном разделе на странице "Корзины" под каждым товаром в любой корзине та же ситуация.
user posted image
8. Надо исправить эту ситуацию и отобразить свойства вместо "block_input: 0".
9. Предполагаю, что эти параметры передаются на стадии добавления товара в корзину. Код сего процесса:
Код

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
define("STOP_STATISTICS", true);

$bx_root = "/bitrix";
define("BX_ROOT", $bx_root);

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/dbconn.php");
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/classes/".$DBType."/database.php");

if($_GET['ProductID'])$PRODUCT_ID = $_GET['ProductID'];
if($_POST['ProductID'])$PRODUCT_ID = $_POST['ProductID'];

if($_GET['countdata']) $COUNT_DATA = $_GET['countdata'];
if($_POST['countdata']) $COUNT_DATA = $_POST['countdata'];

$BLOCKED_INPUT = $COUNT_DATA<1 ? 0:1;

$COUNT_DATA = $COUNT_DATA < 1 ? 1 : $COUNT_DATA;

if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog"))
{
    if ( IntVal($PRODUCT_ID)>0 )
    {
        Add2BasketByProductID($PRODUCT_ID, $COUNT_DATA,array(array("NAME"=>"block_input","VALUE"=>$BLOCKED_INPUT)));
    }
} 
        $APPLICATION->IncludeComponent("bitrix:sale.basket.basket.small", "small", Array(
          "PATH_TO_BASKET" => "/personal/cart/",    // Страница корзины
          "PATH_TO_ORDER" => "/personal/order/",    // Страница оформления заказа
          ),
          false
        );
?>


Будет просто отлично, если кто-то уже сталкивался с этим, я уже три часа не могу понять, в чём тут дело.


PM MAIL   Вверх
Aluri
Дата 19.6.2013, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.6.2013

Репутация: нет
Всего: нет



Итак, я узнал, что в этой строке вся мякотка. Здесь нужно прописать имя свойства, его код и значение. 
Код

 Add2BasketByProductID($PRODUCT_ID, $COUNT_DATA,array(array("NAME"=>"block_input","VALUE"=>$BLOCKED_INPUT)));

Главная проблема заключается в том, что я не знаю, как узнать переменную, хранящую значение конкретного свойства. Может быть, кто-то в курсе?
PM MAIL   Вверх
Aluri
Дата 21.6.2013, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.6.2013

Репутация: нет
Всего: нет



ОК, я уже почти со всем разобрался. Единственное, что осталось - динамически получить в функцию ID инфоблока. Камераден, если кто-то в курсе, милости прошу.
Листинг на данный момент:
Код

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
define("STOP_STATISTICS", true);

$bx_root = "/bitrix";
define("BX_ROOT", $bx_root);

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/dbconn.php");
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/classes/".$DBType."/database.php");



if($_GET['ProductID'])$PRODUCT_ID = $_GET['ProductID'];
if($_POST['ProductID'])$PRODUCT_ID = $_POST['ProductID'];

if($_GET['countdata']) $COUNT_DATA = $_GET['countdata'];
if($_POST['countdata']) $COUNT_DATA = $_POST['countdata'];

$BLOCKED_INPUT = $COUNT_DATA<1 ? 0:1;

$COUNT_DATA = $COUNT_DATA < 1 ? 1 : $COUNT_DATA;


if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog"))
{
  if ( IntVal($PRODUCT_ID)>0 )
    {
      $db_props = CIBlockElement::GetProperty($PRODUCT_IBLOCK_ID, $PRODUCT_ID, array("sort" => "asc"), Array("CODE"=>"EXPECTED"));
if($ar_props = $db_props->Fetch()){
  $EXPECTED = IntVal($ar_props["VALUE"]);
}
else
{
  $EXPECTED = false;
}
        Add2BasketByProductID($PRODUCT_ID, $COUNT_DATA,array(array("NAME"=>"block_input","VALUE"=>$EXPECTED)));
    }

} 
        $APPLICATION->IncludeComponent("bitrix:sale.basket.basket.small", "small", Array(
          "PATH_TO_BASKET" => "/personal/cart/",  // Страница корзины
          "PATH_TO_ORDER" => "/personal/order/",  // Страница оформления заказа
          ),
          false
        );
?>

PM MAIL   Вверх
Aluri
Дата 25.6.2013, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 17.6.2013

Репутация: нет
Всего: нет



Разобрался. Такие дела.

Код

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
define("STOP_STATISTICS", true);

$bx_root = "/bitrix";
define("BX_ROOT", $bx_root);

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/dbconn.php");
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/classes/".$DBType."/database.php");

if($_GET['ProductID'])$PRODUCT_ID = $_GET['ProductID'];
if($_POST['ProductID'])$PRODUCT_ID = $_POST['ProductID'];

if($_GET['countdata']) $COUNT_DATA = $_GET['countdata'];
if($_POST['countdata']) $COUNT_DATA = $_POST['countdata'];

$BLOCKED_INPUT = $COUNT_DATA<1 ? 0:1;

$COUNT_DATA = $COUNT_DATA < 1 ? 1 : $COUNT_DATA;

if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog"))
{
if ( IntVal($PRODUCT_ID)>0 )
    {
  $res = CIBlockElement::GetByID($PRODUCT_ID);
  if($ar_res = $res->GetNext())
  {
   $PRODUCT_IBLOCK_ID = $ar_res['IBLOCK_ID'];
  }

  $db_props = CIBlockElement::GetProperty($PRODUCT_IBLOCK_ID, $PRODUCT_ID, array("sort" => "asc"), Array("CODE"=>"EXPECTED"));
  if($ar_props = $db_props->Fetch())
  {
   $EXPECTED = $ar_props["NAME"];
  }
    $db_prop = CIBlockElement::GetProperty($PRODUCT_IBLOCK_ID, $PRODUCT_ID, array("sort" => "asc"), Array("CODE"=>"COD_ZAKAZ"));
  if($ar_prop = $db_prop->Fetch())
  {
   $COD_NAME = $ar_prop ["NAME"];
   $COD_ZAKAZ = $ar_prop["VALUE"];
  }   

  Add2BasketByProductID($PRODUCT_ID, $COUNT_DATA,array(array("NAME"=>" ", "VALUE"=>$EXPECTED),array("NAME"=>$COD_NAME, "VALUE"=>$COD_ZAKAZ)));

 }
}
        $APPLICATION->IncludeComponent("bitrix:sale.basket.basket.small", "small", Array(
          "PATH_TO_BASKET" => "/personal/cart/",  // Страница корзины
          "PATH_TO_ORDER" => "/personal/order/",  // Страница оформления заказа
          ),
          false
        );
?>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие движки / фрейморки | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.