Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - nitoiti

Страницы: [1]
1
Тоже сижу над интеграцией с 1С и тоже все очень медленно, поскольку мне сами бухгалтеры толком никак не могут ответить, что и как у них работает сейчас и как все должно работать.

Есть вопрос.

Как мне при выгрузке(обновлении) товаров из 1С не менять название соответствующего товара на сайте.
пробовал в commerceML2.xsl Вот в этой части кода добавлять обрамляющий тег <default-value>:

...
<xsl:template match="Товары/Товар">
<xsl:param name="group_id" select="string(Группы/Ид)" />
<xsl:param name="name">
<xsl:choose>
<xsl:when test="string-length(ПолноеНаименование)">
<default-value><xsl:value-of select="ПолноеНаименование" /></default-value>
</xsl:when>
<xsl:otherwise>
<default-value><xsl:value-of select="Наименование" /></default-value>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
...

Код получался вот такой:

...
<xsl:template match="Товары/Товар">
<xsl:param name="group_id" select="string(Группы/Ид)" />
<default-value>
<xsl:param name="name">
<xsl:choose>
<xsl:when test="string-length(ПолноеНаименование)">
<default-value><xsl:value-of select="ПолноеНаименование" /></default-value>
</xsl:when>
<xsl:otherwise>
<default-value><xsl:value-of select="Наименование" /></default-value>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
</default-value>
...

Названия товаров действительно не менялись при выгрузке. Но это от того, что я их, видимо полностью отключил, поскольку, если на сайте нет товара из 1С, то он теперь и не создается при выгрузке. Помогите решить.

2
Сделал. Видимо надо было просто чуток передохнуть, а то совсем мозг не работал.
В файле __custom.php модуля каталог вот такой код
$user_id = permissionsCollection::getInstance()->getUserId();
$guest_id = permissionsCollection::getInstance()->getGuestId();
$block_arr['myPriceLabel'] = '<p class="myRrcLabel">Рекомендованная розничная цена, что бы увидеть оптовые цены, <a href="http://velo-deti.grey-cat.biz/users/registrate/">зарегистрируйтесь</a></p>';
if($user_id != $guest_id){
$user = umiObjectsCollection::getInstance()->getObject($user_id);
if( $user->tip_dogovora == '3552' ){
$block_arr['myPriceLabel'] = '<p class="myOtsrochkaLabel">Оптовая цена при договоре поставки с отсрочкой. Изменить тип договора поставки можно <a href="http://velo-deti.grey-cat.biz/users/settings/">в настройках</a><p>';
}
if( $user->tip_dogovora == '3553' ){
$block_arr['myPriceLabel'] = '<p class="myPredoplataLabel">Оптовая цена при договоре поставки по предоплате. Изменить тип договора поставки можно <a href="http://velo-deti.grey-cat.biz/users/settings/">в настройках</a><p>';
}
}

3
Здравствуйте. Моя первая тема, не пинайте слишком строго если что-то неправильно напишу, подскажите, как правильно описать проблему - обязательно учту и исправлюсь!

Вопрос следующий: Нужно было вывести три типа цен "отсрочка", "предоплата", "розница". Вывел по мотивам вот этой статьи: http://wiki.umisoft.ru/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85_%D0%A6%D0%B5%D0%BD_%D0%B4%D0%BB%D1%8F_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0

Чуть-чуть переделал, под свои нужды. Код в конечном счете выглядит вот так: (файл classes/modules/emarket/__custom.php)
 public function OnPriceValue($e) { 
// Объект для которого запрашивается значение из поля типа "Цена"
       $object_id = $e->getParam('object_id');
       // Значение цены
       $value = &$e->getRef('price');
       // Текущий id пользователя
       $user_id = permissionsCollection::getInstance()->getUserId();
       // Id Гостя.
       $guest_id = permissionsCollection::getInstance()->getGuestId();

       if($user_id != $guest_id && cmsController::getInstance()->getCurrentMode() != "admin"){
         $user = umiObjectsCollection::getInstance()->getObject($user_id);
         if( $user->tip_dogovora == '3552' ){
$object = umiObjectsCollection::getInstance()->getObject($object_id);
if($object instanceof umiObject) {
if ($object->getValue('cena2')!= 0 ){
$new_price = $object->getValue('cena3');
$value = $new_price;
}
else return false;
}
else return false;
}
if( $user->tip_dogovora == '3553' ){
$object = umiObjectsCollection::getInstance()->getObject($object_id);
if($object instanceof umiObject) {
if ($object->getValue('cena3')!= 0 ){
$new_price = $object->getValue('cena2');
$value = $new_price;
}
else return false;
}else return false;
}

else return false;



       }    
    }

Все работает, цены меняются в зависимости от типа договора. Теперь необходимо рядом с ценой в шаблоне товара и в шаблоне категории вывести подсказку (если цена предоплата - писать "предоплата") например вот тут http://velo-deti.grey-cat.biz/katalog/shlemy/srazy-safety-chesirecat/ подскажите, пожалуйста, как правильно это сделать.

Пробовал добавить переменную $myPriceLabel в этом же файле, но не могу понять, как ее вывести в нужном месте в шаблон.

Страницы: [1]