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

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

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


Сообщения - Veinard

Страницы: 1 [2]
16
Товарищи ЮМИводы. Кто может помочь с такой деликатной темой, как интеграция магазина и мойсклад?

Интеграция сама по себе работает, и очень хорошо. Но есть одно но. Мне бы очень хотелось что-бы в обе стороны переносились данные по опциональным свойствам товаров. В магазин со склада - остатки по опциональным свойствам, из магазина на склад - заказы (плюс - телефон и почта и адрес доставки, если есть).

Сейчас при импорте заказа из магазина в склад поля "телефон, почта и адрес доставки" приходится вносить вручную.

Писал в техподдержку ЮМИ, они даже пытались помочь. Но я честно не очень разобрался с шаблонами интеграции, просто боюсь их поломать.

Цитировать
Задача: синхронизация с мойсклад:

1. При поступлении заказа в магазин ЮМИ в мой склад импортируется только имя покупателя, без его емайла и телефона, приходится вбивать вручную

2. При поступлении заказа в магазин ЮМИ в мой склад импортируется товары без дополнительных характеристик (цвет), приходится править вручную

3. При импорте в магазин остатков товаров из МОЙСКЛАД не импортируются характеристики (цвет), а остатки просто суммируются по всем цветам. Хотелось-бы знать сколько кокого цвета осталось в ЮМИ.

Цитировать
Здравствуйте, Сергей.

Для решения описанных Вами проблем необходимо кастомизировать шаблон выгрузки данных для сервиса МойСклад. Данный шаблон находится в файле \xsl\export\ordersCommerceML.xsl. Вы можете добавить определение шаблонов в файл \xsl\export\custom\ordersCommerceML.xsl для того, чтобы переопределить шаблоны исходного файла. Например,  в файле \xsl\export\ordersCommerceML.xsl присутствует шаблон для вывода данных покупателя (245 строка):
<xsl:template match="object" mode="customer">
<Контрагент>
<Ид><xsl:value-of select="@id" /></Ид>
<Наименование><xsl:value-of select="//property[@name='fname']/value" />&#160;<xsl:value-of select="//property[@name='lname']/value" /></Наименование>
<ПолноеНаименование><xsl:value-of select="//property[@name='fname']/value" />&#160;<xsl:value-of select="//property[@name='lname']/value" /></ПолноеНаименование>
<Роль>Покупатель</Роль>
<Фамилия><xsl:value-of select="//property[@name='lname']/value" /></Фамилия>
<Имя><xsl:value-of select="//property[@name='fname']/value" /></Имя>
</Контрагент>
</xsl:template>
В данном шаблоне не выводится содержимое полей "e-mail" и "Телефон". Вы можете переопределить данный шаблон и выводить в нем содержимое данных полей.
Также, Вы можете переопределить шаблоны, отвечающие за выгрузку характеристик и остатков по каждой опции. Данные, которые будут отправлены в сервис МойСклад для импорта заказов можно посмотреть выполнив следующий запрос:

Есть ли тут те, кто действительно решал подобные задачи синхронизации? Как мне кажется, пункт 1 вообще простой. Пункты 2 и 3 наверное чуть сложнее, но не очень. Я бы даже готов посотрудничать на коммерческой основе =).

17
Ура, все получилось, спасибо =)

Вместо
<div class="text" id="description_{$site-info-id}_{generate-id()}" umi:element-id="{$site-info-id}" umi:field-name="description" umi:field-type="wysiwyg" umi:empty="&empty-page-content;">

Надо было
<div class="text" id="description_{page/@id}_{generate-id()}" umi:element-id="{page/@id}" umi:field-name="description" umi:field-type="wysiwyg" umi:empty="&empty-page-content;">

18
При попытке редактировать основное описание открывается редактор, все как положено.
После завершения редактирования и попытки "сохранить" получаю ошибку "поле не найдено: "description".
Причем, если из админки наполнить поле - то заполнение отображается. И даже возможность редактирования появляется, но редактор "глючит" и не позволяет адекватно работать с полем. Но в этом случае даже сохранение срабатывает.

Обработчик поле "описание"
	
<xsl:template match="property[@name = '&property-description;']">
<div class="descr" itemprop="description">
<div umi:element-id="{../../../@id}" umi:field-name="{@name}" umi:empty="&item-description;">
<xsl:value-of select="value" disable-output-escaping="yes" />
</div>
</div>
</xsl:template>

<xsl:template match="property[@name = '&property-description;' and value = '']">
<div class="descr" itemprop="description">
<div umi:element-id="{../../../@id}" umi:field-name="{@name}" umi:empty="&item-description;">

</div>
</div>
</xsl:template>

и его вызов
				<div class="text" id="description_{$site-info-id}_{generate-id()}" umi:element-id="{$site-info-id}" umi:field-name="description" umi:field-type="wysiwyg" umi:empty="&empty-page-content;">
<xsl:apply-templates select=".//property[@name = '&property-description;']" />
</div>
<!--Конец-->

Другие поля редактируются адекватно.
Вот не пойму в чем тут засада =(

19
Наполнение сайтов / Re:Интеграция с moysklad.ru
« : 14 Сентября 2014, 23:26:39 »
>> Никто не может подсказать, что и как и где можно подкрутить, что б и телефоны-емейлы тоже импортировались?

Тоже присоединюсь.

А еще вопрос - кто-нибудь знает как в Юми прописать для складов "внешний код", что-бы при синхронизации остатки правильно по складам распределялись?

20
Я правильно ли понимаю что в шаблонах как таковая скидка вообще не применяется и это надо пхп смотреть, что там происхдит?

21
admin, а от чего там original могла вообще исчезнуть? Может надо просто в типе данных что-то поправить?

22
Еще оказывается "скидка на цену заказа" работает корректно. Т.е. если например заказ больше 100 рублей, скидка 50% - то такое условие работает.

23
(там появиться варианты цен original и actual)

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

Попробовал. Вижу только <actual>600</actual>

Причем, есть секции с евро и долларами, там есть блоки:
<item name="Американский доллар" code="USD" rate="31.5" nominal="1" prefix="$">
<original>19.05</original>
<actual>19.05</actual>
<price-original>19.05</price-original>
<price-actual>19.05</price-actual>

а в рублях только вот:
<price name="Российский рубль" code="RUR" rate="1" nominal="1" suffix="руб">
<actual>600</actual>
</price>
<currencies>
<price>
<actual>600</actual>
</price>

24
Товарищи, а расскажите что делать, если скидка все-таки не хочет "работать"?

Настроил все как написанно тут: http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_internet-magazin/skidki/skidki_na_tovary/

Скидка должна действовать на группу товаров если в корзине лежит один из товаров другой группы. Но не получается создать вообще ни одной скидке, хотя раньше работало. В настройках модуля скидки включены.
Где-то можно проверить что модуль скидки точно работает?

25
Намек понял =). Спасибо. В документации тоже с большой буквы, я просто не обратил внимания значит %).

26
Ураааа! Спасибо! Сегодня проверю :).

PS
Кстати, в разрешениях он ведь тоже назван saveinfo с маленькой буквы. Может лучше в коде поменять на маленькую букву? %).

27
а почему вы проверяете upage/emarket/saveinfo ?

На всякий случай %). Скриншот с тем что происходит - тоже прикрепил =)

28
Но при нажатии на кнопку "Submit" происходит редирект на страницу мойсайт.ру/emarket/saveinfo/ на которой получаю ошибку об отсутствии страницы.


а как выглядит сообщение об отсутствии страницы? umi'вская 404 страница? или что-то другое?
:-\

Выглядит как отсутствующая страница на моем сайте страница.
upage/emarket/saveinfo
<udata xmlns:xlink="http://www.w3.org/TR/xlink" generation-time="0.006567">
<error code="not-found">Не найдено</error>
</udata>


29
Цитировать
происходит редирект на страницу мойсайт.ру/emarket/saveinfo/ на которой получаю ошибку об отсутствии страницы

это похоже на то, что у вас нет макроса saveinfo. Посмотрите наличие данной функции в файле /classes/modules/emarket/__purchasing.php

Если она есть, проверьте есть ли права на неё в /classes/modules/emarket/permissions.php

Если там все есть, пишите, будем думать дальше.

Функция есть, но описана в файле "__purchasing_one_step.php", разрешение тоже прописано следующим образом:
<?php
$permissions = array(
'purchasing' => array(
'price', .......... 'purchasing_one_step', 'saveinfo',
),

..............

30
Всем добрый день!
Подскажите с настройкой оформления заказа в один шаг.
Пользуюсь макросами из последней версии Юми, стандартными. Получилось вывести все формы. Но при нажатии на кнопку "Submit" происходит редирект на страницу мойсайт.ру/emarket/saveinfo/ на которой получаю ошибку об отсутствии страницы. Не могу понять что сделал не так :(, подскажите пожалуйста.


В файле purchasing_one_step.xsl:
	
<xsl:template match="result[@module = 'emarket' and @method = 'purchasing_one_step']">
        <xsl:apply-templates select="document('udata://emarket/purchasing_one_step')/udata" />
</xsl:template>

Далее там-же
<xsl:template match="udata[@module = 'emarket'][@method='purchasing_one_step']">
<!-- Запускаем ЭКШЕН SAVEINFO -->
<form method="post" action="{$lang-prefix}/emarket/saveinfo/">
<xsl:apply-templates select="onestep/customer" mode="personal"/>
<xsl:apply-templates select="onestep/delivery_choose" mode="delivery_choose"/>
<xsl:apply-templates select="onestep/delivery" mode="delivery_adres"/>
<xsl:apply-templates select="onestep/payment" mode="payment_choose"/>
<!--ТУТ ЕЩЕ КНОПКА -->
.....
</form>
</xsl:template>

Вывод форм делаю в шаблонах ниже примерно так:
<!-- Шаблон персональных данных -->	
<xsl:template match="customer" mode="personal">
<!-- Всяких хтмл -->
<fieldset class="site_form purchase_fields" >
<div class="customer onestep">
<xsl:apply-templates select="document(concat('udata://data/getEditForm/', @id))/udata" />
</div>
</fieldset>
<!-- Всяких хтмл -->
</xsl:template>

Аналогично - остальные:
<fieldset class="site_form purchase_fields" >
<div class="delivery_choose onestep">
<xsl:apply-templates select="items" mode="delivery-choose" />
</div>
</fieldset>

<fieldset class="site_form purchase_fields" >
<div class="delivery_adr onestep">
<xsl:apply-templates select="document(@xlink:href)/udata" />
</div>
</fieldset>

<fieldset class="site_form purchase_fields" >
<div class="payment onestep">
<xsl:apply-templates select="items/item" mode="payment_one_step" />
</div>
</fieldset>


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

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