Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

новый формат выгрузки характеристик, влияющих на цену у 1С

  • 23 августа 2017 г. , редакция: 23 августа 2017 г.
  • Цитата
    новый формат выгрузки характеристик, влияющих на цену у 1С:
    характеристики нигде не выгружаются, только для предложения в скобках рядом с названием цены указано название характеристики
    нужно предварительно создать характеристику, влияющую на цену на сайте


    Это комментарий оставленный в shop.1c.php

    Я себе всю башку сломал, это как должно выглядеть?
    Может быть я что-то упускаю, но в моем понимании в предложении это
    Код
    <ТипЦены>
    <Ид>1f4f7b32-091b-11e5-958b-e03f49eaaded</Ид>
    <Наименование>Оптовые (оптовая)</Наименование>
    <Валюта>RUB</Валюта>
    <Налог>
    <Наименование>НДС</Наименование>
    <УчтеноВСумме>true</УчтеноВСумме>
    </Налог>
    </ТипЦены>

    Это то что в скобках в наименовании типа цены?


    Вообще, проблема больше в том, что в
    Код
    $params = $this->price_param($xml_variant, $row["cat_id"]);
    у меня пусто...
    А какие там вообще параметры должны быть и как они должны выглядеть в приходящей xml'ке? Дайте, пожалуйста, хоть один пример такого файла.
    Суть вообще в том, что я ни черта до сих пор понять не могу, как посадить несколько типов цен из этой XML'ки в диафан, что за входящие параметры такие должны быть, чтобы CMS сама, из коробки, проставила товару две цены?
    • 23 августа 2017 г.
    • В самом DIAFAN не предусмотрено несколько цен на товар... тут нужна доработка, причем не малая
      • 23 августа 2017 г.
      • Здрасьте... Кто Вам сказал? Ни разу не пользовались зависимыми характеристиками?
    • 23 августа 2017 г.
    • Цитата
      Это то что в скобках в наименовании типа цены?
      В Вашем куске - выгрузка типа цены. Затем она используется при выгрузке предложений уже, по Ид.
      Вот в предложениях уже у Вас есть несколько цен? Как они там описаны?
      • 23 августа 2017 г. , редакция: 23 августа 2017 г.
      • РЕШЕНО КОММЕНТОМ НИЖЕ

        Код
        <Предложение>
        <Ид>bd239753-5bbe-11e7-8135-e03f49eaaded</Ид>
        <Наименование>Термостат стержневой в/н RECO 20A, L 27, в/з 181314, 181385, 181316, WTH401UN, CU4845, 691692 777</Наименование>
        <БазоваяЕдиница Код="796" НаименованиеПолное="Штука">шт</БазоваяЕдиница>
        <Цены>
        <Цена>
        <Представление>455 руб. за шт</Представление>
        <ИдТипаЦены>1f4f7b32-091b-11e5-958b-e03f49eaaded</ИдТипаЦены>
        <ЦенаЗаЕдиницу>455.00</ЦенаЗаЕдиницу>
        <Валюта>RUB</Валюта>

        Показать весь код
        <Единица>шт</Единица>
        <Коэффициент>1</Коэффициент>
        </Цена>
        <Цена>
        <Представление>505 руб. за шт</Представление>
        <ИдТипаЦены>51daef04-8e5e-11e5-95fa-e03f49eaaded</ИдТипаЦены>
        <ЦенаЗаЕдиницу>505.00</ЦенаЗаЕдиницу>
        <Валюта>RUB</Валюта>
        <Единица>шт</Единица>
        <Коэффициент>1</Коэффициент>
        </Цена>
        </Цены>
        <Количество>3.00</Количество>
        </Предложение>

        В товар цена приходит только одна - первая.
        Сейчас мы пишем вторую цену в поле "старая цена", т.к. с характеристиками мы задолбались, ничего не получается и, по сути, непонятно, т.к. и 1Сников среди нас нет.

        Вот там говорится, что цена без параметров удаляется, я так понимаю, при условии, что если цен больше, чем 1.
        А что это за параметры цены вообще, как они описаны в xml?
        Это <ХарактеристикиТовара> ?
        Если это характеристика товара, например
        Код
        <ХарактеристикиТовара>
        <ХарактеристикаТовара>
        <Наименование>Размер</Наименование>
        <Значение>44</Значение>
        </ХарактеристикаТовара>
        <ХарактеристикаТовара>
        <Наименование>Цвет</Наименование>
        <Значение>Коричневый</Значение>
        </ХарактеристикаТовара>
        </ХарактеристикиТовара>

        Тогда непонятно...Я, например, меняю характеристику цвет на "тип цены", а поле <Значение> лишь одно для этой характеристики, и то я не понимаю что туда писать, т.к. у меня есть название общей характеристики - Тип цены, мне так же нужны 2 характеристики внутри нее - цена 1, цена 2, соответственно к ним нужны значения.
        И вот выгружаю я это, и вижу следующее:


        Что мне непонятно, как должен выглядеть XML файл, чтобы создалась характеристика "Тип цены", чтобы в нем было 2 поля с ценой и чтобы им можно было задать свои значения. Я уже хрен знает сколько сижу с этой задачей, не понимаю, что аж полез в сам 1с разбираться
      • 23 августа 2017 г.
      • Я, видимо, что-то фундаментальное упускаю, может быть в выгрузке 1С'ник у клиента что-то не учел, но в пришедшем XML 2 цены, и видимо, как то можно тогда без тотальной переделки методов цены это загрузить?
        • 23 августа 2017 г.
        • А вы 2 цены для чего делаете? Покупатель в итоге по какой цене покупает на сайте - по которой ему больше нравится? Или же вы хотите потом "порог" делать, например, при заказе до 20000 будет цена1 учитываться, если больше 20000, то срабатывает цена2?
          • 23 августа 2017 г.
          • На сайте будет дележка по ролям пользователей, если залогинен дилер, то ему продавать по опту, а нет - тогда в розницу
  • 23 августа 2017 г. , редакция: 23 августа 2017 г.
  • Правильно ли я понимаю следующее?!...

    Чтобы диафан начал принимать несколько цен, нужно в 1С настроить товары таким образом, чтобы они выгружались как бы отдельными дополнениями-предложениями к товару, т.е. являлись вариациями того самого искомого товара, а эта вариация в ИД товара в файле выгрузки обозначается через решетку #?
    Т.е.,

    Имеем две вариации товара в предложении:
    1) <Ид>dee6e178-55bc-11d9-848a-00112f43529a#3df1947e-7886-11df-b33a-0011955cba6b</Ид>
    2) <Ид>dee6e178-55bc-11d9-848a-00112f43529a#3df1947d-7886-11df-b33a-0011955cba6b</Ид>
    И у каждой вариации имеется общая характеристика "Тип цены", но у первой значение "Оптовая", у второй "Розница", а цену для такой сборки товара он берет из <цены>?

    Пример
    Код

    <Предложения>
    <Предложение>
    <Ид>dee6e178-55bc-11d9-848a-00112f43529a#3df1947d-7886-11df-b33a-0011955cba6b</Ид>
    <Штрихкод>2000000013091</Штрихкод>
    <Наименование>Женские модельные туфли</Наименование>
    <ХарактеристикиТовара>
    <ХарактеристикаТовара>
    <Наименование>Тип цены</Наименование>
    <Значение>Розничная</Значение>

    Показать весь код
    </ХарактеристикаТовара>
    </ХарактеристикиТовара>
    <Цены>
    <Цена>
    <Представление>7 000 RUB за пар</Представление>
    <ИдТипаЦены>ec19169a-c400-11e3-853d-00248cae1f0f</ИдТипаЦены>
    <ЦенаЗаЕдиницу>7000.00</ЦенаЗаЕдиницу>
    <Валюта>RUB</Валюта>
    <Единица>пар</Единица>
    <Коэффициент>1</Коэффициент>
    </Цена>
    </Цены>
    </Предложение>
    <Предложение>
    <Ид>dee6e178-55bc-11d9-848a-00112f43529a#3df1947e-7886-11df-b33a-0011955cba6b</Ид>
    <Штрихкод>2000000013138</Штрихкод>
    <Наименование>Женские модельные туфли</Наименование>
    <ХарактеристикиТовара>
    <ХарактеристикаТовара>
    <Наименование>Тип цены</Наименование>
    <Значение>Оптовая</Значение>
    </ХарактеристикаТовара>
    </ХарактеристикиТовара>
    <Цены>
    <Цена>
    <Представление>3 000 RUB за пар</Представление>
    <ИдТипаЦены>9f591aa6-8ea2-11e3-b0fa-00248cae1f0f</ИдТипаЦены>
    <ЦенаЗаЕдиницу>3000.00</ЦенаЗаЕдиницу>
    <Валюта>RUB</Валюта>
    <Единица>пар</Единица>
    <Коэффициент>1</Коэффициент>
    </Цена>
    </Цены>
    </Предложение>
    </Предложения>


    Такая вот конструкция файла XML мне в итоге выгрузила нормально - ниже скрин



    Одно но...Как бы, на каждую такую модификацию, т.е. вариацию товара, идет отдельный учет кол-ва, к примеру, у нас 5 синих футболок, и 3 зеленых.
    А как быть, если нужно, чтобы кол-во товара было одно на все эти вариации, и при покупке не минусовалась одна синяя или одна зеленая, а минусовалась общее кол-во?
    • 23 августа 2017 г.
    • Можно иметь несколько характеристик и набирать сочетания зависимостей, добавив туда к типу цены и цвет, но я навскидку не скажу, как должно быть в файле выгрузки.
      Но там количество разное будет, если цвета, например, то это же разные товары.
      Или вообще отключите учет количества, или надо алгоритм править
      • 23 августа 2017 г.
      • Ну да, то что можно набирать их сочетания - это я подглядел, действительно можно...
        А вот учет кол-ва, я бы и рад, конечно, убрать, это сразу бы решило все проблемы, но клиенту такая штука необходима, и пока чет у меня нет идей, как подвести эти товарные предложения одного товара под один остаток.

        Это получается что то вроде - мы продаем серые чайники, но для вас покрасим его либо в синий, либо в зеленый, и при покупке у нас минусуется со склада, естественно, оригинальный товар, т.к. мы его покрасили, а не продаем уже покрашенный :)
        • 23 августа 2017 г.
        • Об этот же дубок я еще года три назад уеб--ся...
          А еще забегая в перед, - хрен выставишь тип цены (розничная, оптовая, с привязкой к клиенту или мелко-оптовая)

          Еще есть другая тема....
          К примеру на группу товаров есть скидка 5%
          И есть скидка на сумму товара - так вот = они суммируются ....

          Со скидками гибкости - ваапче нет.
          • 24 августа 2017 г. , редакция: 24 августа 2017 г.
          • Ну с типами цен я как раз, получается, вопрос уже решил, главное их все отдать через характеристики, получить в массиве, а дальше как их распределить, по ролям или еще что - это уже задача куда проще.
            Сейчас, по скольку у нас цены только две, не более, я прохожусь циклом по <цены>-><цена>, первая пишется как ни в чем ни бывало в цену товара, а вторую засовываю в
            Код
            $price_id = $this->diafan->_shop->price_insert($row["id"], $xml_variant->Цены->Цена->ЦенаЗаЕдиницу, $optPrice, (! empty($xml_variant->Количество) ? $xml_variant->Количество : 0), $params, $currency_id, $variant_id_1c);

            Как раз в тот параметр, который отвечает за "старая цена"...В этом случае, костылями, конечно, но получается вывести у товара две цены при условии, что кол-во остатка товара будет одно на товар, а не как в случае с характеристиками, где на каждую свой остаток...А вот если, не дай бог, типов цен понадобится у товара больше, чем 2 - тут я хрен знает даже, как поступить...

            Со скидками не работал, не знаю, даже трогать их не приходилось.
            • 24 августа 2017 г.
            • Как частное мнение: Ваш подход в корне не верен во всем. Нет смысла обсуждать частные вопросы, если в принципе все не так, как должно быть. Вы потеряете время в пустую. Лучше пересмотрите стратегию решения, иначе получится не сайт, а "катастрофа".

              В качестве примера, оставьте в покое "старая цена". У этого поля свое предназначение. Используйте возможности характеристик, влияющих на цену.

              Успехов.
              • 24 августа 2017 г.
              • Я не могу их использовать только потому, что не могу настроить общий остаток товара на все эти характеристики, и даже не прикидываю пока, в какую писанину это выльется.
            • 24 августа 2017 г.
            • В настройках модуля "Интернет-магазин" можно активировать возможность учета остатков. Соответственно каждой комбинации цен можно будет определить остаток. Легче определить общий остаток (всего лишь сумма частных остатков), чем ворошить интеграцию товаров с 1с.
              • 24 августа 2017 г. , редакция: 24 августа 2017 г.
              • Цитата
                каждой комбинации цен можно будет определить остаток

                Вооот, от чего я как раз и хочу избавиться, суть в том, что мне как раз таки нужно выпилить остаток у каждой из комбинаций отдельно, нужна одна на все комбинации.

                Может тогда проще будет записывать реальный остаток в одну из двух комбинаций, например, в комбинацию где указана розничная цена, а из нее на стороне диафана дублировать во вторую?
                Вообщем, как то сделать одну на двоих...

                Или убрать остаток из коробки вообще, и писать кол-во в свойство товара? Пусть будет параметр с типом число
  • 30 ноября, суббота
  • Здравствуйте.
    Пытаюсь настроить интеграцию 1С и сайт на Diafan
    Все хорошо работает, только не выводится цена.

    УТ 10.3
    Перечитал весь форум, но не помогает ничего
    В файл offers.xml цена выводится, вот код:

    <Предложение>
    <Ид>c1b48f9c-1214-11ea-968c-5cf370835fbc</Ид>
    <Наименование>Гель-лак Elpaza Magic 26</Наименование>
    <БазоваяЕдиница Код="796 " НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
    <Цены>
    <Цена>
    <Представление>110 руб. за шт</Представление>
    <ИдТипаЦены>2b2f17eb-251e-11e9-9764-a6ccba4960c4</ИдТипаЦены>
    <ЦенаЗаЕдиницу>110.00</ЦенаЗаЕдиницу>
    <Валюта>руб</Валюта>
    <Единица>шт</Единица>
    <Коэффициент>1</Коэффициент>
    </Цена>
    </Цены>
    </Предложение>

    Но на сайте ее нет.
    Прошу дать совет, что делать
    • 30 ноября, суббота , редакция: 01 декабря, воскресенье
    • Цитата
      2b2f17eb-251e-11e9-9764-a6ccba4960c4

      Эта цена должна называться "Розничная".
      Или версию DIAFAN.CMS поставьте свежее
      • 30 ноября, суббота
      • Изменил в 1С тип цены на "Розничные"

        <ТипыЦен>
        <ТипЦены>
        <Ид>2b2f17eb-251e-11e9-9764-a6ccba4960c4</Ид>
        <Наименование>Розничные</Наименование>
        <Валюта>руб</Валюта>
        <Налог>
        <Наименование>НДС</Наименование>
        <УчтеноВСумме>false</УчтеноВСумме>
        </Налог>
        </ТипЦены>
        </ТипыЦен>

        Цена не отобразилась на сайте.
        • 30 ноября, суббота , редакция: 01 декабря, воскресенье
        • Откройте modules/shop/shop.1c.php
          Нажмите ctrl+F
          Введите строку для поиска
          Цитата
          import_prices($xml)

          Там в
          Код
          foreach ($xml->ТипыЦен->ТипЦены as $xml_price_type)
          {
          switch($xml_price_type->Наименование)
          {
          case

          Что стоит? "Розничные"? Нет, там стоит "Розничная". Так и надо называть, в единственном числе
          • 01 декабря, воскресенье
          • Вот исправил в этом блоке, было "розничнач", исправил на "Розничные"

            case 'Розничные':
            $this->cache["session"]["price_type_id"] = (string) $xml_price_type->Ид;
            break;


            Все заработало! Спасибо огромное!
            • 01 декабря, воскресенье
            • Код править не надо было. Лучше в 1С переименовать
  • 01 декабря, воскресенье
  • Переименование в 1с ничего не дало
    • 01 декабря, воскресенье
    • Ахаха )))
      Ну когда в файле ищется "Розничная", а Вы переименовали в 1С на "Розничные", конечно не дало ;)
      Затем Вы оставили в 1С "Розничные" и поставили то же самое в файл. Заработало. Теперь и в 1С "Розничные" и в файле "Розничные". Это неправильно, так как и файл не будет обновляться и от стандарта 1С отступили. Нужно было не трогать файл, оставив там "Розничная" и в 1С изменить с "Розничные" на "Розничная".
      Ну как хотите, работает и ладно
  • 05 декабря, четверг , редакция: 05 декабря, четверг
  • Виталий, спасибо за помощь.
    Возникла еще проблема.

    При выгрузке заказов не грузятся данные о:
    e-mail
    телефон

    Грузится только "комментарий" в заказе и товары из заказа.
    Скажите, куда нужно копать?

    P.S. Версию CMS я обновил
    • 05 декабря, четверг
    • При выгрузке с сайта в 1С?
      Нужно только свериться, глянуть что уходит с сайта и что ожидается на стороне 1С. По сайту я Вам подскажу, а вот если с сайта уходит емайл и телефон, а 1С не обрабатывает их, надо будет с 1С разбираться.

      Но навскидку могу сказать сразу: идите в форму оформления заказа (в админке, в магазине, справочники) и смотрите, чтобы поле телефон имело тип "Телефон", а поле почты имело тип "Email". Потому, что бывает эти типы удаляют, когда форму переделывают.
  • 10 декабря, вторник
  • Спасибо, сработало.

    Есть такое поле, как "Адрес доставки" http://joxi.ru/bmoYdepF3pzM8A
    Из сайта эта информация приходит в поле комментарий:
    <Комментарий>Адрес доставки: Белы Куна 22-1-217 Комментарий : доставка необходима в субботу с 11-13 </Комментарий>
    Подскажите, как адрес доставки из сайта получить и назначить его адресом контрагента?

    2. Подскажите. как у товара поставить галку "наличие товара", при его наличии на складе?
    Из 1С информация приходит в норме, указывается количество на складе.
    Количество>4</Количество>
    • 10 декабря, вторник
    • Цитата
      Подскажите, как адрес доставки из сайта получить и назначить его адресом контрагента?
      В смысле "где"? С 1С работает только один файл, всё в нём. Открываете, ищете по слову <Комментарий> и видите, что в него передается. Можете поменять "Комментарий" на нужное поле, какое там оно в 1С, "Адрес контрагента" или как.

      2. Не понял. А она не ставится разве? То есть, из 1С выгружаются товары и всё неактивные?
      • 11 декабря, среда
      • 1. Вот данные, которые на сайте http://joxi.ru/Q2Ke43ESLVzQRr
        Вот данные, которые пришли в 1С http://joxi.ru/gmvYODoFq6pVLr

        2. Все товары, которые приходят с сайта активные, они на сайте отображаются, но они все имеют статус "нет" в наличии


Новости

  • 28 ноября, четверг
  • Необходимость обновления личного кабинета назревала давно. Предыдущая разметка уже давно не выдерживала того количества информации и функцональности, которая накопилась за последние пару лет. Плюс всем нужна полноценная адаптивность, ведь ЛК оставался последним проектом без адаптивности. Бета-версия кабинета работает с начала ноября, мы уже отладили большинство недочетов, и продолжим это делать в ближайшее время. Старая версия кабинета. Отзывы о новом кабинете, замечания, предложения пишите в теме на форуме

Блоги

  • 16.11.2019
  • Достаточно широкой проблемой, которая вызывает множество вопросов, обращений в тех.поддержку и тем на форуме, является обновление, а именно ошибки, с ним связанные. Корни проблем, возникающих при этом, совершенно различны, но наиболее часто причина в кастомизации. И хоть определение это слишком широкое, всё же процедура выявления проблемы вполне стандартизована и проста. Об этом и пойдёт речь в статье.