@AlenaZaika

Как вывести в 1С-Битрикс товары и торговые предложения?

Добрый день!
Помогите пожалуйста, не давно начала работать с 1С-Биитриксом и не могу понять как вывести товар и торговые предложения у товара если есть.
В инфоблоке есть товар и не у всех товаров торговые предложения.

Смогла понять как вывести только товар но не торговые у них, нужно вывести и оба варианта.
CModule::IncludeModule("catalog");
$my_slider = CIBlockElement::GetList (
    Array("NAME" => "ASC"),
    Array("IBLOCK_ID" => 1),
    false,
    false,
    Array(
        'ID',
        'NAME',
		'PROPERTY_G_ART', //Артикул
		'PROPERTY_G_FULL', //Полное название товара
		'PROPERTY_UKLON', //Уклон типа
		'PROPERTY_G_SHORT', //Краткое наименование товара
    )
);
while($ar_fields = $my_slider->GetNext())
{
	echo"<pre><b>";
	print_r($ar_fields);
	echo"<b/></pre>";
}
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 1
no_one_safe
@no_one_safe
0. Для начала вам не стоит использовать прямые не кешированные методы устаревшего апи. Для старта вам хватит и стандартных компонентов Битрикса. Когда изучите кеширование,структуру бд и D7 - тогда можно баловаться прямыми запросами.
Злоупотребление вот этими CIBlockElement::GetList положит вам сайт. Эти методы из 2010 года и в современной разработке никем (в здравом уме) не используются.

1. Старайтесь понимать все что вы пишите, а не тупо копипастить код из примеров откуда то.
CModule::IncludeModule("catalog");
Что тут делает эта строка? За что она отвечает? Ответьте себе на эти вопросы.

2. Называйте переменные говорящими именами, а не как в примерах
$my_slider = CIBlockElement::GetList
Причем тут слайдер, когда у вас товары? У вас так весь сайт в одних слайдерах будет. Через пол года и не разберётесь где у вас что. Не стреляйте себе в ногу.

3.
Array("NAME" => "ASC"),
    Array("IBLOCK_ID" => 1),
    false,
    false,

А если там 4млн товаров? Все собираетесь выводить?

4.
Смогла понять как вывести только товар но не торговые у них,

Торговые предложения и товары хранятся в разных инфоблоках и связаны через свойство ТП привязка к элементам, обычно, CML2_LINK.
Мне кажется вам как новичку пока не осилить присоединение таблиц или элементов по привязке (хотя это все, конечно, есть в документации).
Советую вам для начала использовать компонент catalog.section (или любой другой для "списка" товаров с префиксом catalog) и преобразовывать результат в файле result_modifier.php шаблона компонента. Конечно,это практика 2010 года, но по крайней мере, это более правильно, чисто и в дальнейшем с этим проще работать чем с кучей накопипасченного из сети кода раскиданного по сайту в хаотическом порядке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы