Всем привет! Столкнулся с проблемой при загрузке товаров на СберМегаМаркет.
При проверке фида из CS-Cart, возникает ошибка:
3012
Элемент должен ссылаться на элемент из со значением ‘RUR’ или ‘RUB’ у фида https://veselosidim.ru/yml_get/8ghkx4tw9pfz , offerId: 261, currencyId: RUR
Поддержка СММ сообщила что атрибут “currency” прописан неверно. Атрибут “currency” должен иметь следующий вид:
Где currency id=“RUR” - это основная валюта товара, а rate=“1”/ - это курс обмена текущей
валюты на рубли.Вам необходимо скорректировать данный атрибут и загрузить фид повторно.
Может кто-то знает в чем проблема и как ее исправить?
сейчас RUB
а еще насколько помню, должна быть секция
currencies
Элемент с описанием валют, используемых в магазине. Каждая валюта описывается в отдельном элементе currency. У currency могут быть следующие атрибуты:
id – содержит код валюты (rur, usd, eur и т.д.)
rate – курс обмена текущей валюты на рубли Блок может присутствовать только в единственном экземпляре.
Желательно
id – латиница
rate – цифры. В качестве разделителя используется точка
<currencies>
<currency id="RUR" rate="1"/>
</currencies>
styan
02.Июнь.2023 13:24:31
3
на демо https://demo.cs-cart.ru/stores/d4792a32ac69bae2/yml_get/zy2cshx2pjxy и в последних версиях нет этих секций, а вот в 4.9.3.SP1 там это всё есть
1 лайк
В справке YML элемент конечно помечен как необязательный… Но кто знает? )
https://yandex.ru/support/partnermarket/elements/shop.html
в справке сбермегамаркета пометка - Желательно
кстати, там же, в справке сбермегамаркета, в offers - нет элемента currencyId
styan
02.Июнь.2023 13:40:06
5
кусок кода из 4.9.3 (где есть секции эти) файла /app/addons/yml_export/Tygh/Ym/Yml2.php
protected function body($file_body, $file_categories)
{
$this->generateOffers($file_body, $file_categories);
}
protected function bottom($file)
{
fwrite($file, '</shop>' . PHP_EOL);
fwrite($file, '</yml_catalog>' . PHP_EOL);
}
protected function sendResult($filename)
{
header("Content-Type: text/xml;charset=" . $this->options['export_encoding']);
readfile($filename);
exit;
}
protected function getShopName()
{
$shop_name = $this->options['shop_name'];
if (empty($shop_name)) {
if (fn_allowed_for('ULTIMATE')) {
$shop_name = fn_get_company_name($this->company_id);
} else {
$shop_name = Registry::get('settings.Company.company_name');
}
}
return SecurityHelper::escapeHtml($shop_name);
}
protected function buildCurrencies(&$yml2_data)
{
$currencies = Registry::get('currencies');
if (CART_PRIMARY_CURRENCY != "RUB" && CART_PRIMARY_CURRENCY != "UAH" && CART_PRIMARY_CURRENCY != "BYN" && CART_PRIMARY_CURRENCY != "KZT") {
if (!empty($currencies['RUB'])) {
$v_coefficient = $currencies['RUB']['coefficient'];
$default_currencies = 'RUB';
} elseif (!empty($currencies['UAH'])) {
$v_coefficient = $currencies['UAH']['coefficient'];
$default_currencies = 'UAH';
} elseif (!empty($currencies['BYN'])) {
$v_coefficient = $currencies['BYN']['coefficient'];
$default_currencies = 'BYN';
} elseif (!empty($currencies['KZT'])) {
$v_coefficient = $currencies['KZT']['coefficient'];
$default_currencies = 'KZT';
} else {
$v_coefficient = 1;
$default_currencies = CART_PRIMARY_CURRENCY;
}
$primary_coefficient = $currencies[CART_PRIMARY_CURRENCY]['coefficient'];
foreach ($currencies as $cur) {
if ($this->currencyIsValid($cur['currency_code']) && $cur['status'] == 'A') {
if ($default_currencies == $cur['currency_code']) {
$coefficient = '1.0000';
$yml2_data['currencies']['currency@id=' . $cur['currency_code'] . '@rate=' . $coefficient] = '';
} else {
$coefficient = $cur['coefficient'] * $primary_coefficient / $v_coefficient;
$yml2_data['currencies']['currency@id=' . $cur['currency_code'] . '@rate=' . $coefficient] = '';
}
}
}
} else {
foreach ($currencies as $cur) {
if ($this->currencyIsValid($cur['currency_code']) && $cur['status'] == 'A') {
$yml2_data['currencies']['currency@id=' . $cur['currency_code'] . '@rate=' . $cur['coefficient']] = '';
}
}
}
}
protected function currencyIsValid($currency)
{
$currencies = array(
'RUR',
'RUB',
'UAH',
'BYN',
'KZT',
'USD',
'EUR'
);
return in_array($currency, $currencies);
}
Т.е. CS-Cart убрал это за “ненадобностью”?)))
styan
02.Июнь.2023 13:57:01
7
скорее всего да.
Сравните со своим файлом и расширьте для этих секций.
После, скорее всего надо будет создать новый фид и сгенерировать его , старый работать не будет