Перейти к содержанию
Yesvik

[Поддержка] Яндекс.Маркет для ocStore 1.5.3

Рекомендуемые сообщения

Здравствуйте. Маркет выдает ошибку:

Предупреждение: Кодировка XML не определена (строка 0, столбец 0)
Фатальная ошибка: Prohibited XML Entity. publicId = -//W3C//DTD XHTML 1.0 Strict//EN, systemId = http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd

Вот сам файл:

http://wildskin.ru/index.php?route=feed/yandex_market

У меня тоже такое было!

Я в файле /catalog/controller/feed/yandex_market.php вручную прописал utf-8

И все заработало!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как заменить название товара, которое H1, на Title? Хочу чтобы в выгрузке в параметре Name был именно Title.

Нашел в коде строку, но пока ничего сделать не получается.

$data['name'] = $product['name'];

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста как изменить?!

В XML отображаются цены, которые указаны в админе (в товаре), а  мне надо чтобы они умножались на то значение которое выставлено в валюте.

Я так понимаю надо править эту строчку: 

$data['price'] = number_format($this->currency->convert($this->tax->calculate($product['price'], $product['tax_class_id']), $shop_currency, $offers_currency), $decimal_place, '.', '');

только как?

Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста как изменить?!

В XML отображаются цены, которые указаны в админе (в товаре), а  мне надо чтобы они умножались на то значение которое выставлено в валюте.

Я так понимаю надо править эту строчку: 

$data['price'] = number_format($this->currency->convert($this->tax->calculate($product['price'], $product['tax_class_id']), $shop_currency, $offers_currency), $decimal_place, '.', '');

только как?

Заранее спасибо!

Неужели никто не может помочь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В XML отображаются цены, которые указаны в админе (в товаре), а  мне надо чтобы они умножались на то значение которое выставлено в валюте.

 

Т.е. Вам нужно выводить цены в "местной" валюте и без курса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. Вам нужно выводить цены в "местной" валюте и без курса?

Чтоб учитывался курс!

У меня одна валюта "грн." В товаре забита цена в "евро" например 25, а в валюте стоит значение коэффициента 18. Соответственно на сайте выводиться 450 грн, а в xml 25 грн

 

Можно конечно сделать так: 

$data['price'] = number_format($this->currency->convert($this->tax->calculate($product['price'], $product['tax_class_id']), $shop_currency, $offers_currency), $decimal_place, '.', '')*18;

но это не очень хороший вариант т.к. курс меняется каждый день.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте:

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

2.В дополнениях - каналах продвижения - ЯндексМаркет выбрать её же (внизу)

3.Обновите кеш браузера проверьте, что выходит

 

З.Ы. так же я бы проверил в  в шапке Вашего yml, что б была прописана Ваша валюта (в данном случае UAH) 

если там будет другая, можно попробовать принудительно прописать в  \catalog\controller\feed\yandex_market.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

1. Скачал модуль

2. Через ftp загрузил в корневую папку сайта

3. Зашел в админ панель и включил вкладку "Каналы продвижения"

4. Модуля не видно 

 

Что сделал не так ? Версия ocstore 1.5.5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

1. Скачал модуль

2. Через ftp загрузил в корневую папку сайта

3. Зашел в админ панель и включил вкладку "Каналы продвижения"

4. Модуля не видно 

 

Что сделал не так ? Версия ocstore 1.5.5

Почистил кэш в админке и модуль появился. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мда, был тут один человек умный который исправил ошибку такого рода 
Notice: iconv(): Detected an illegal character in input string in /home/shemarke/public_html/catalog/controller/feed/yandex_market.php on line 440 She-market.by She-market.by http://she-market.by/ +375(33)305-23-33 ocStore 1.5.5.1.2 Äëÿ âîëîñ http://she-market.by/index.php?route=product/product&path=6&product_id=4 34400 BYR 6 http://she-market.by/image/cache/import_files/7f/7fa10392-4745-11e4-96de-e8113202b15d-100x100.png true BB-Ìàñêà äëÿ ñóõèõ è íîðìàëüíûõ âîëîñ/ MARKELL/ 200ìë Markell 130076 ÂÂ-ÌÀÑÊÀ ÄËß ÑÓÕÈÕ È ÍÎÐÌÀËÜÍÛÕ ÂÎËÎÑ Âåðíóòüñÿ: Markell HAIR EXPERT ÂÂ-ìàñêà äëÿ ñóõèõ è íîðìàëüíûõ âîëîñ. 6 â1! Óñòðàíÿåò ñóõîñòü è ëîìêîñòü Ïðåäîòâðàùàåò âûïàäåíèå Çàùèùàåò îò òåðìîâîçäåéñòâèÿ...............................и так далее......

Он сказал что тут проблема типа в описании товара, всё перелопатил, так и не понял в чем проблема...... :cry: 

 

Может кто поможет????

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ПРОБЛЕМА РЕШЕНА!!!!!

 

в yandex_market.php кодировку меняй

 

Код:
$field = iconv($this->from_charset, 'windows-1251//IGNORE', $field);

на

$field = iconv($this->from_charset, 'UTF-8//IGNORE', $field);

и заодно проверь, что бы файлы с картинками были все латинскими обозваны и без пробелов smile.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

установил модуль Яндекс.YML

Без картинок все работает хорошо. Загружается на Маркет без ошибок.

Как только в параметрах модуля включаю "кол-во картинок" = 1 или более

то при проверке yml Яндекс выдает такую ошибку:

 

Предупреждение: Кодировка XML не определена

Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Unknown tag: XML tag "b" (строка 1, столбец 3)

 

Сам Yml

ltbattery.ru/index.php?route=feed/yandex_yml 

тоже не открываться. Ошибка:

This page contains the following errors:

error on line 1 at column 14: Extra content at the end of the document

Below is a rendering of the page up to the first error.

Notice

 

 

Помогите!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте автор.

 

Скажите, можно ли доработать ваш модуль, чтоб выбор экспортируемых товаров был не по категории, а по производителю?

Т.е. выбираем только производителя и все его товары, даже если они в разных категориях, выгружаются в ЯМ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте автор.

 

Скажите, можно ли доработать ваш модуль, чтоб выбор экспортируемых товаров был не по категории, а по производителю?

Т.е. выбираем только производителя и все его товары, даже если они в разных категориях, выгружаются в ЯМ.

Скажите, а что мешает Вам добавить в сою структуру категорий ещё один уровень (категорию) с производителем? в середину и уже относительно этой категории править вывод

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите, а что мешает Вам добавить в сою структуру категорий ещё один уровень (категорию) с производителем? в середину и уже относительно этой категории править вывод

Если бы делал магазин с нуля, то так и сделал бы. Это правильное решение. Сейчас переделывать это значит потерять урлы и соответственно позиции в выдаче. Да возни не хочется, хоть и товаров не так много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А нету обратного функционала. по ссылке для Яндекс маркета загрузить товары в магазин на OCStore?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ставил на 1.5.4 все ок, Спасибо автору

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посоветуйте хороший рабочий модуль импорта из YML формата.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мой yml совсем без разметки и в первой строке сообщение об ошибке:

Detected an illegal character in input string in yandex_market.php on line 440Notice: iconv() [function.iconv]

подскажите пож

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

krashman уже писал на эту тему:

поменял:

 $field = iconv($this->from_charset, 'windows-1251//IGNORE', $field
на
$field = iconv($this->from_charset, 'windows-1251//TRANSLIT', $field);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день! Яндекс просит указать в прайс листе в теге sales_notes "предоплата", т.к. в магазине действует только предоплата. Как добавить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Яндекс.Маркет изображения товара отображают чёрный фон. Видимо потому что картинки в PNG. Как сделать белый фон?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте!

У меня проблема: при выгрузке yml файла появляется ошибка:

This page contains the following errors:

error on line 2 at column 6: XML declaration allowed only at the start of the document

Below is a rendering of the page up to the first error.

Хотя до этого модуль год работал без проблем.

Помогите исправить ошибку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От DRONGO
      У меня в магазине полное наименование товаров генерируются из рахных полей: название, производитель, объём (в гр, капс, млл, кг...) кол-во порций.
      Соответственно, когда я поставил модуль и выгрузил всё на яндекс маркет - название выгрузились вот так:
      BCAA Capsules
      вместо
      BCAA Capsules 120 капс/24 порций от Be First
       
      У меня стоит какой то самый простой модуль, для выгрузки в ЯМ, частично мне удалось сгенерировать заголовки вот такой конструкцией:
       
      $data['name'] = (''.$product['name'].' '.round($product['weight'], 2).''.$weight_class.' '.$product['manufacturer'].'');
       
      Но '.$weight_class.' - не работает, если выводить вот так '.$product['weight_class_id'].' - id выводится корректно!
       
      '.$weight_class.' -- я пытаюсь вывести вот таким кодом :
       
      if ($product['weight_class_id'] == 1){
      $weight_class = 'кг';
      }
      if ($product['weight_class_id'] == 2){
      $weight_class = 'гр';
      }
      if ($product['weight_class_id'] == 3){
      $weight_class = 'мл';
      }
       
      Целый код генерации ЯМ ниже. Всё затрудняется ещё тем, что после каждой правки - изменения видны только спустя время... файл почему то обновляется не сразу. Я уже задолбался, помогите пожалуйста
       
      Что нужно, чтобы '.$weight_class.'  выводил млл, капс и проч?  Опенкарт 1541
      <?php /** * Класс YML экспорта * YML (Yandex Market Language) - стандарт, разработанный "Яндексом" * для принятия и публикации информации в базе данных Яндекс.Маркет * YML основан на стандарте XML (Extensible Markup Language) * описание формата YML http://partner.market.yandex.ru/legal/tt/ */ class ControllerFeedYandexMarket extends Controller { private $shop = array(); private $currencies = array(); private $categories = array(); private $offers = array(); private $from_charset = 'utf-8'; private $eol = "\n"; public function index() { if ($this->config->get('yandex_market_status')) { if (!($allowed_categories = $this->config->get('yandex_market_categories'))) exit(); $this->response->addHeader('Content-Type: application/xml'); $filename = DIR_DOWNLOAD . 'offers.yml'; if (!is_file($filename) || time() - @filemtime($filename) > 60*30) { // one time per half of hour $fd = fopen($filename, 'w'); $this->load->model('export/yandex_market'); $this->load->model('localisation/currency'); $this->load->model('tool/image'); $this->load->model('catalog/product'); // Магазин $this->setShop('name', $this->config->get('yandex_market_shopname')); $this->setShop('company', $this->config->get('yandex_market_company')); $this->setShop('url', HTTP_SERVER); $this->setShop('phone', $this->config->get('config_telephone')); $this->setShop('platform', 'ocStore'); $this->setShop('version', VERSION); // Валюты // TODO: Добавить возможность настраивать проценты в админке. $offers_currency = $this->config->get('yandex_market_currency'); if (!$this->currency->has($offers_currency)) exit(); $decimal_place = $this->currency->getDecimalPlace($offers_currency); if (!$decimal_place) { $decimal_place = 2; } if ($product['weight_class_id'] == 1){ $weight_class = 'кг'; } if ($product['weight_class_id'] == 2){ $weight_class = 'гр'; } if ($product['weight_class_id'] == 3){ $weight_class = 'мл'; } if ($product['weight_class_id'] == 4){ $weight_class = 'капс'; } if ($product['weight_class_id'] == 5){ $weight_class = табл ; } if ($product['weight_class_id'] == 6){ $weight_class = 'шт'; } if ($product['weight_class_id'] == 7){ $weight_class = 'уп'; } $shop_currency = $this->config->get('config_currency'); $this->setCurrency($offers_currency, 1); $currencies = $this->model_localisation_currency->getCurrencies(); $supported_currencies = array('RUR', 'RUB', 'USD', 'BYR', 'KZT', 'EUR', 'UAH'); $currencies = array_intersect_key($currencies, array_flip($supported_currencies)); foreach ($currencies as $currency) { if ($currency['code'] != $offers_currency && $currency['status'] == 1) { $this->setCurrency($currency['code'], number_format(1/$this->currency->convert($currency['value'], $offers_currency, $shop_currency), 4, '.', '')); } } // Категории $categories = $this->model_export_yandex_market->getCategory(); foreach ($categories as $category) { $this->setCategory($category['name'], $category['category_id'], $category['parent_id']); } // Товарные предложения $in_stock_id = $this->config->get('yandex_market_in_stock'); // id статуса товара "В наличии" $out_of_stock_id = $this->config->get('yandex_market_out_of_stock'); // id статуса товара "Нет на складе" $vendor_required = false; // true - только товары у которых задан производитель, необходимо для 'vendor.model' $products = $this->model_export_yandex_market->getProduct($allowed_categories, $out_of_stock_id, $vendor_required); $yml = '<?xml version="1.0" encoding="utf-8"?>' . $this->eol; $yml .= '<!DOCTYPE yml_catalog SYSTEM "shops.dtd">' . $this->eol; $yml .= '<yml_catalog date="' . date('Y-m-d H:i') . '">' . $this->eol; $yml .= '<shop>' . $this->eol; // информация о магазине $yml .= $this->array2Tag($this->shop); // валюты $yml .= '<currencies>' . $this->eol; foreach ($this->currencies as $currency) { $yml .= $this->getElement($currency, 'currency'); } $yml .= '</currencies>' . $this->eol; // категории $yml .= '<categories>' . $this->eol; foreach ($this->categories as $category) { $category_name = $category['name']; unset($category['name'], $category['export']); $yml .= $this->getElement($category, 'category', $category_name); } $yml .= '</categories>' . $this->eol; $yml .= '<offers>' . $this->eol; fwrite($fd, $yml); $buffer = ''; $buffer_size = 128*1024; // 128Kb foreach ($products as $product) { $data = array(); // Атрибуты товарного предложения $data['id'] = $product['product_id']; // $data['type'] = 'vendor.model'; $data['available'] = ($product['quantity'] > 0 || $product['stock_status_id'] == $in_stock_id); // $data['bid'] = 10; // $data['cbid'] = 15; // Параметры товарного предложения $data['url'] = $this->url->link('product/product','path=' . $this->getPath($product['category_id']) . '&product_id=' . $product['product_id']); // USE THIS TO SPEED UP: $data['url'] = HTTP_SERVER . 'index.php?route=product/product&path=' . $this->getPath($product['category_id']) . '&product_id=' . $product['product_id']; $data['price'] = number_format($this->currency->convert($this->tax->calculate($product['price'], $product['tax_class_id']), $shop_currency, $offers_currency), $decimal_place, '.', ''); $data['currencyId'] = $offers_currency; $data['categoryId'] = $product['category_id']; $data['delivery'] = 'true'; // $data['local_delivery_cost'] = 100; $data['name'] = (''.$product['name'].' '.round($product['weight'], 2).''.$weight_class.' '.$product['manufacturer'].''); $data['vendor'] = $product['manufacturer']; $data['vendorCode'] = $product['model']; $data['model'] = $product['name']; $data['description'] = $product['description']; $data['sales_notes'] = 'Необходима 100% предоплата заказа!'; // $data['manufacturer_warranty'] = 'true'; // $data['barcode'] = $product['sku']; if ($product['image']) { //$data['picture'] = $this->model_tool_image->resize($product['image'], 500, 500); $image_path = 'image/' . $product['image']; if (strpos($image_path, ' ') !== false) { $new_image_path = str_replace(' ', '__', $image_path); if (!file_exists($new_image_path)) { $new_image_dir = dirname($new_image_path); if (!is_dir($new_image_dir)) { mkdir($new_image_dir, 0777, true); } copy($image_path, $new_image_path); } $image_path = $new_image_path; } $data['picture'] = HTTP_SERVER . $image_path; } $attribute_groups = $this->model_catalog_product->getProductAttributes($product['product_id']); if (!empty($attribute_groups)) { $data['param'] = array(); foreach ($attribute_groups as $attribute_group) { foreach ($attribute_group['attribute'] as $attribute) { $data['param'][] = array ( 'name' => $attribute['name'], 'value' => $attribute['text'], ); } } } /* // пример структуры массива для вывода параметров $data['param'] = array( array( 'name'=>'Wi-Fi', 'value'=>'есть' ), array( 'name'=>'Размер экрана', 'unit'=>'дюйм', 'value'=>'20' ), array( 'name'=>'Вес', 'unit'=>'кг', 'value'=>'4.6' ) ); */ $offer = $this->setOffer($data); $tags = $this->array2Tag($offer['data']); unset($offer['data']); if (isset($offer['param'])) { $tags .= $this->array2Param($offer['param']); unset($offer['param']); } $buffer .= $this->getElement($offer, 'offer', $tags); if (strlen($buffer) >= $buffer_size) { fwrite($fd, $buffer); $buffer = ''; } } if ($buffer != '') { fwrite($fd, $buffer); } $yml = ''; $yml .= '</offers>' . $this->eol; $yml .= '</shop>'; $yml .= '</yml_catalog>'; fwrite($fd, $yml); fclose($fd); } readfile($filename); // //$this->categories = array_filter($this->categories, array($this, "filterCategory")); } } /** * Методы формирования YML */ /** * Формирование массива для элемента shop описывающего магазин * * @param string $name - Название элемента * @param string $value - Значение элемента */ private function setShop($name, $value) { $allowed = array('name', 'company', 'url', 'phone', 'platform', 'version', 'agency', 'email'); if (in_array($name, $allowed)) { $this->shop[$name] = $this->prepareField($value); } } /** * Валюты * * @param string $id - код валюты (RUR, RUB, USD, BYR, KZT, EUR, UAH) * @param float|string $rate - курс этой валюты к валюте, взятой за единицу. * Параметр rate может иметь так же следующие значения: * CBRF - курс по Центральному банку РФ. * NBU - курс по Национальному банку Украины. * NBK - курс по Национальному банку Казахстана. * СВ - курс по банку той страны, к которой относится интернет-магазин * по Своему региону, указанному в Партнерском интерфейсе Яндекс.Маркета. * @param float $plus - используется только в случае rate = CBRF, NBU, NBK или СВ * и означает на сколько увеличить курс в процентах от курса выбранного банка * @return bool */ private function setCurrency($id, $rate = 'CBRF', $plus = 0) { $allow_id = array('RUR', 'RUB', 'USD', 'BYR', 'KZT', 'EUR', 'UAH'); if (!in_array($id, $allow_id)) { return false; } $allow_rate = array('CBRF', 'NBU', 'NBK', 'CB'); if (in_array($rate, $allow_rate)) { $plus = str_replace(',', '.', $plus); if (is_numeric($plus) && $plus > 0) { $this->currencies[] = array( 'id'=>$this->prepareField(strtoupper($id)), 'rate'=>$rate, 'plus'=>(float)$plus ); } else { $this->currencies[] = array( 'id'=>$this->prepareField(strtoupper($id)), 'rate'=>$rate ); } } else { $rate = str_replace(',', '.', $rate); if (!(is_numeric($rate) && $rate > 0)) { return false; } $this->currencies[] = array( 'id'=>$this->prepareField(strtoupper($id)), 'rate'=>(float)$rate ); } return true; } /** * Категории товаров * * @param string $name - название рубрики * @param int $id - id рубрики * @param int $parent_id - id родительской рубрики * @return bool */ private function setCategory($name, $id, $parent_id = 0) { $id = (int)$id; if ($id < 1 || trim($name) == '') { return false; } if ((int)$parent_id > 0) { $this->categories[$id] = array( 'id'=>$id, 'parentId'=>(int)$parent_id, 'name'=>$this->prepareField($name) ); } else { $this->categories[$id] = array( 'id'=>$id, 'name'=>$this->prepareField($name) ); } return true; } /** * Товарные предложения * * @param array $data - массив параметров товарного предложения */ private function setOffer($data) { $offer = array(); $attributes = array('id', 'type', 'available', 'bid', 'cbid', 'param'); $attributes = array_intersect_key($data, array_flip($attributes)); foreach ($attributes as $key => $value) { switch ($key) { case 'id': case 'bid': case 'cbid': $value = (int)$value; if ($value > 0) { $offer[$key] = $value; } break; case 'type': if (in_array($value, array('vendor.model', 'book', 'audiobook', 'artist.title', 'tour', 'ticket', 'event-ticket'))) { $offer['type'] = $value; } break; case 'available': $offer['available'] = ($value ? 'true' : 'false'); break; case 'param': if (is_array($value)) { $offer['param'] = $value; } break; default: break; } } $type = isset($offer['type']) ? $offer['type'] : ''; $allowed_tags = array('url'=>0, 'buyurl'=>0, 'price'=>1, 'wprice'=>0, 'currencyId'=>1, 'xCategory'=>0, 'categoryId'=>1, 'picture'=>0, 'store'=>0, 'pickup'=>0, 'delivery'=>0, 'deliveryIncluded'=>0, 'local_delivery_cost'=>0, 'orderingTime'=>0); switch ($type) { case 'vendor.model': $allowed_tags = array_merge($allowed_tags, array('typePrefix'=>0, 'vendor'=>1, 'vendorCode'=>0, 'model'=>1, 'provider'=>0, 'tarifplan'=>0)); break; case 'book': $allowed_tags = array_merge($allowed_tags, array('author'=>0, 'name'=>1, 'publisher'=>0, 'series'=>0, 'year'=>0, 'ISBN'=>0, 'volume'=>0, 'part'=>0, 'language'=>0, 'binding'=>0, 'page_extent'=>0, 'table_of_contents'=>0)); break; case 'audiobook': $allowed_tags = array_merge($allowed_tags, array('author'=>0, 'name'=>1, 'publisher'=>0, 'series'=>0, 'year'=>0, 'ISBN'=>0, 'volume'=>0, 'part'=>0, 'language'=>0, 'table_of_contents'=>0, 'performed_by'=>0, 'performance_type'=>0, 'storage'=>0, 'format'=>0, 'recording_length'=>0)); break; case 'artist.title': $allowed_tags = array_merge($allowed_tags, array('artist'=>0, 'title'=>1, 'year'=>0, 'media'=>0, 'starring'=>0, 'director'=>0, 'originalName'=>0, 'country'=>0)); break; case 'tour': $allowed_tags = array_merge($allowed_tags, array('worldRegion'=>0, 'country'=>0, 'region'=>0, 'days'=>1, 'dataTour'=>0, 'name'=>1, 'hotel_stars'=>0, 'room'=>0, 'meal'=>0, 'included'=>1, 'transport'=>1, 'price_min'=>0, 'price_max'=>0, 'options'=>0)); break; case 'event-ticket': $allowed_tags = array_merge($allowed_tags, array('name'=>1, 'place'=>1, 'hall'=>0, 'hall_part'=>0, 'date'=>1, 'is_premiere'=>0, 'is_kids'=>0)); break; default: $allowed_tags = array_merge($allowed_tags, array('name'=>1, 'vendor'=>0, 'vendorCode'=>0)); break; } $allowed_tags = array_merge($allowed_tags, array('aliases'=>0, 'additional'=>0, 'description'=>0, 'sales_notes'=>0, 'promo'=>0, 'manufacturer_warranty'=>0, 'country_of_origin'=>0, 'downloadable'=>0, 'adult'=>0, 'barcode'=>0)); $required_tags = array_filter($allowed_tags); if (sizeof(array_intersect_key($data, $required_tags)) != sizeof($required_tags)) { return; } $data = array_intersect_key($data, $allowed_tags); // if (isset($data['tarifplan']) && !isset($data['provider'])) { // unset($data['tarifplan']); // } $allowed_tags = array_intersect_key($allowed_tags, $data); // Стандарт XML учитывает порядок следования элементов, // поэтому важно соблюдать его в соответствии с порядком описанным в DTD $offer['data'] = array(); foreach ($allowed_tags as $key => $value) { $offer['data'][$key] = $this->prepareField($data[$key]); } //$this->offers[] = $offer; return $offer; } /** * Фрмирование элемента * * @param array $attributes * @param string $element_name * @param string $element_value * @return string */ private function getElement($attributes, $element_name, $element_value = '') { $retval = '<' . $element_name . ' '; foreach ($attributes as $key => $value) { $retval .= $key . '="' . $value . '" '; } $retval .= $element_value ? '>' . $this->eol . $element_value . '</' . $element_name . '>' : '/>'; $retval .= $this->eol; return $retval; } /** * Преобразование массива в теги * * @param array $tags * @return string */ private function array2Tag($tags) { $retval = ''; foreach ($tags as $key => $value) { $retval .= '<' . $key . '>' . $value . '</' . $key . '>' . $this->eol; } return $retval; } /** * Преобразование массива в теги параметров * * @param array $params * @return string */ private function array2Param($params) { $retval = ''; foreach ($params as $param) { $retval .= '<param name="' . $this->prepareField($param['name']); if (isset($param['unit'])) { $retval .= '" unit="' . $this->prepareField($param['unit']); } $retval .= '">' . $this->prepareField($param['value']) . '</param>' . $this->eol; } return $retval; } /** * Подготовка текстового поля в соответствии с требованиями Яндекса * Запрещаем любые html-тэги, стандарт XML не допускает использования в текстовых данных * непечатаемых символов с ASCII-кодами в диапазоне значений от 0 до 31 (за исключением * символов с кодами 9, 10, 13 - табуляция, перевод строки, возврат каретки). Также этот * стандарт требует обязательной замены некоторых символов на их символьные примитивы. * @param string $text * @return string */ private function prepareField($field) { $field = htmlspecialchars_decode($field); $field = strip_tags($field); $from = array('"', '&', '>', '<', '\''); $to = array('&quot;', '&amp;', '&gt;', '&lt;', '&apos;'); $field = str_replace($from, $to, $field); //if ($this->from_charset != 'windows-1251') { // $field = iconv($this->from_charset, 'windows-1251//IGNORE', $field); //} $field = preg_replace('#[\x00-\x08\x0B-\x0C\x0E-\x1F]+#is', ' ', $field); return trim($field); } protected function getPath($category_id, $current_path = '') { if (isset($this->categories[$category_id])) { $this->categories[$category_id]['export'] = 1; if (!$current_path) { $new_path = $this->categories[$category_id]['id']; } else { $new_path = $this->categories[$category_id]['id'] . '_' . $current_path; } if (isset($this->categories[$category_id]['parentId'])) { return $this->getPath($this->categories[$category_id]['parentId'], $new_path); } else { return $new_path; } } } function filterCategory($category) { return isset($category['export']); } } ?>  
    • От shyn
      1 699.00 руб
      Скачать/Купить дополнение


      Sela - Премиум шаблон для OpenCart
      Sela - шаблон для OpenCart, обладающий высокой производительностью и отвечающий современным тенденциям в дизайне. Максимальная проработка деталей, а также легкость и скорость загрузки страниц, не оставят равнодушными Ваших клиентов, что позволит вывести Ваш магазин на новый профессиональный уровень.
      Мы позаботились обо всём, предоствавив для Вас только самое необходимое. Ведь когда хромает качество, прибегают к количеству. Основная цель при разработке данного шаблона заключалась в удовлетворении спроса тех покупателей, которые устали от однотипных, безликих предложений перегруженных модулями и давно жаждут по-настоящему свежей, современной, обладающей ярким характером и при этом интуитивно понятной технически темы.
      Получите лучшее и наслаждайтесь выполненым на качественном уровне продуктом!

       
      Шаблон поддерживает OpenCart 2.3.x, OpenCart 3.x, ocStore и OpenCart "Русская сборка" соответствующих версий.
       
      ДЕМО МАГАЗИН
       
      Основные особенности
      - Простая установка
      - Макет занимает всю ширину экрана
      - Адаптивный дизайн
      - Цветовые опции
      - 3-х уровневое меню
      - Боковая панель для поиска и меню пользователя
      - Эффект плавной загрузки страницы
      - Ленивая загрузка и анимация при загрузке изображений
      - Анимированные клики на элементах шаблона
      - Опция защиты от копирования изображений
      - Эффект увеличения для изображения на странице товара
      - Превью для подкатегорий
      - Поддержка мультиязычности
      - Стильные иконки от Google
      - Современные шрифты
      - Bootstrap
      - Фиксированный хедер для категорий
      - Поддержка разных браузеров (Chrome, Firefox, Safari, Opera, Edge)
      - Отличные показатели производительности
      - Оптимизированный и структурированный код
      - Подробная документация
       
      Совместимость
      - OpenCart 3.0.x.x
      - OpenCart 2.3.0.x
      - ocStore 2.3.x
      - OpenCart (Русская сборка) 3.0.x
      - OpenCart (Русская сборка) 2.3.x
       
      Список изменений
      13.11.2018
      - Добавлена возможность вывода изображений для опции "Переключатель"
       
      30.10.2018
      - Исправлено отображение количества на странице корзины (Мобильная версия)
       
      28.09.2018
      - Добавлена опция "Макет фиксированной ширины"
       
      24.09.2018
      - Исправлено отображение модуля "Витрина" при масштабировании страницы в браузере
      - Исправлена ошибка в модуле "Фильтр" (OpenCart 3)
       
      25.07.2018
      - Исправлена недоработка при добавлении товаров в корзину через модули (OpenCart 3)
       
      20.07.2018
      - Существенно улучшен режим просмотра изображений "Всплывающее окно"
      - Центрирование элементов модуля "Карусель" (Мобильная версия)
       
      12.06.2018
      - Исправлено отображение сетки превью подкатегорий при использовании длинных заголовков
       
      08.06.2018
      - Добавлена ссылка "Читать полностью" для краткого описания
      - Исправлено формирование превью подкатегорий (ocStore 2.3)
       
      24.05.2018
      - Улучшено отображение превью подкатегорий
       
      22.05.2018
      - Добавлена опция отображения краткого описания товара
      - Исправлено отображение тегов (OpenCart 3)
      - Исправлено отображение атрибутов (OpenCart 3)
       
      18.04.2018
      - Исправлено отображение кнопок в корзине (мобильная версия)
      - Добавлена иконка социальной сети "Одноклассники"
      - Удалена иконка Skype
       
      Поддержка
      Поддержка осуществляется по электронной почте или через личные сообщения на форуме.
      В поддержку входят ответы на вопросы, обсуждение деталей связанных с шаблоном, обнаружение и устранение ошибок, пожелания в новой функциональности.
      Установка, настройка, изменение функциональности и доработки не входят в поддержку и могут быть предоставлены в качестве дополнительной услуги, за отдельную плату.
       
      Лицензия
      Шаблон продается с лицензией на один сайт, одна покупка = один домен.
      Перепродажа, выкладывание в публичный доступ и прочие действия подобного характера запрещены и являются нарушением авторских прав.
       
      Добавил shyn Добавлено 18.03.2018 Категория Платные шаблоны Системные требования Сайт разработчика http://themefiber.com Старая цена 2199 Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3 ocStore 3.0
      2.3 OpenCart.Pro, ocShop Несовместим  
    • От shyn
      Sela - шаблон для OpenCart, обладающий высокой производительностью и отвечающий современным тенденциям в дизайне. Максимальная проработка деталей, а также легкость и скорость загрузки страниц, не оставят равнодушными Ваших клиентов, что позволит вывести Ваш магазин на новый профессиональный уровень.
      Мы позаботились обо всём, предоствавив для Вас только самое необходимое. Ведь когда хромает качество, прибегают к количеству. Основная цель при разработке данного шаблона заключалась в удовлетворении спроса тех покупателей, которые устали от однотипных, безликих предложений перегруженных модулями и давно жаждут по-настоящему свежей, современной, обладающей ярким характером и при этом интуитивно понятной технически темы.
      Получите лучшее и наслаждайтесь выполненым на качественном уровне продуктом!

       
      Шаблон поддерживает OpenCart 2.3.x, OpenCart 3.x, ocStore и OpenCart "Русская сборка" соответствующих версий.
       
      ДЕМО МАГАЗИН
       
      Основные особенности
      - Простая установка
      - Макет занимает всю ширину экрана
      - Адаптивный дизайн
      - Цветовые опции
      - 3-х уровневое меню
      - Боковая панель для поиска и меню пользователя
      - Эффект плавной загрузки страницы
      - Ленивая загрузка и анимация при загрузке изображений
      - Анимированные клики на элементах шаблона
      - Опция защиты от копирования изображений
      - Эффект увеличения для изображения на странице товара
      - Превью для подкатегорий
      - Поддержка мультиязычности
      - Стильные иконки от Google
      - Современные шрифты
      - Bootstrap
      - Фиксированный хедер для категорий
      - Поддержка разных браузеров (Chrome, Firefox, Safari, Opera, Edge)
      - Отличные показатели производительности
      - Оптимизированный и структурированный код
      - Подробная документация
       
      Совместимость
      - OpenCart 3.0.x.x
      - OpenCart 2.3.0.x
      - ocStore 2.3.x
      - OpenCart (Русская сборка) 3.0.x
      - OpenCart (Русская сборка) 2.3.x
       
      Список изменений
      13.11.2018
      - Добавлена возможность вывода изображений для опции "Переключатель"
       
      30.10.2018
      - Исправлено отображение количества на странице корзины (Мобильная версия)
       
      28.09.2018
      - Добавлена опция "Макет фиксированной ширины"
       
      24.09.2018
      - Исправлено отображение модуля "Витрина" при масштабировании страницы в браузере
      - Исправлена ошибка в модуле "Фильтр" (OpenCart 3)
       
      25.07.2018
      - Исправлена недоработка при добавлении товаров в корзину через модули (OpenCart 3)
       
      20.07.2018
      - Существенно улучшен режим просмотра изображений "Всплывающее окно"
      - Центрирование элементов модуля "Карусель" (Мобильная версия)
       
      12.06.2018
      - Исправлено отображение сетки превью подкатегорий при использовании длинных заголовков
       
      08.06.2018
      - Добавлена ссылка "Читать полностью" для краткого описания
      - Исправлено формирование превью подкатегорий (ocStore 2.3)
       
      24.05.2018
      - Улучшено отображение превью подкатегорий
       
      22.05.2018
      - Добавлена опция отображения краткого описания товара
      - Исправлено отображение тегов (OpenCart 3)
      - Исправлено отображение атрибутов (OpenCart 3)
       
      18.04.2018
      - Исправлено отображение кнопок в корзине (мобильная версия)
      - Добавлена иконка социальной сети "Одноклассники"
      - Удалена иконка Skype
       
      Поддержка
      Поддержка осуществляется по электронной почте или через личные сообщения на форуме.
      В поддержку входят ответы на вопросы, обсуждение деталей связанных с шаблоном, обнаружение и устранение ошибок, пожелания в новой функциональности.
      Установка, настройка, изменение функциональности и доработки не входят в поддержку и могут быть предоставлены в качестве дополнительной услуги, за отдельную плату.
       
      Лицензия
      Шаблон продается с лицензией на один сайт, одна покупка = один домен.
      Перепродажа, выкладывание в публичный доступ и прочие действия подобного характера запрещены и являются нарушением авторских прав.
       
    • От vlad9bu
      Доброго времени суток, уважаемые форумчане.
       
      Есть у меня одна задача, нужно "сверстать" в шаблоне Journal 3 что-то похожее на https://www.victoriassecret.com/ 
       
      Работы начаты, понемногу продвигаются, но нужно ускорить этот процесс. Ищу человека для командной работы над проектом. Будет выделяться участок работы, к примеру "сделать футер", "добавить категории" и т.д. Что бы быстрее закончить проект. 
       
      Ищу общительного и адекватного. По всем вопросам пишите в Телеграм @vlad9bu. 
       
      После этого будет еще один проект. Надеюсь на сотрудничество долгосрочное.
       
      Прошу хейтеров и людей желающих удачи с этим шаблоном проходить мимо, спасибо за понимание
       
      Жду ваши заявки!
       
       
    • От invays
      650.00 руб
      Скачать/Купить дополнение


      Экспорт YML / XML и обмен данными по API LITE в Яндекс.Маркет для Opencart 2.x, 3.x
      Модуль формирует прайс-лист формата YML и XML для таких площадок как Яндекс.Маркет, torg.mail.ru, price.ru, nadavi.ru, e-katalog.ru и много других площадок. Модуль включает в себе возможность задавать пользователю формат прайс-листа без вмешательства программиста или автора модуля.Модуль обновляет цены по API Яндекс.Маркет. Плюс данного модуля в том, что обновление цен товаров происходит в течении ~5-10 минут, а не 30-45 минут. Вы сможете всегда опережать своих конкурентов и обновлять сведения гораздо быстрее.

      Покупая модуль, вы можете его использовать не более, чем на одном сайте и одном домене. Автор оставляет за собой право отказать в технической поддержке тем, кто использует купленный один раз модуль на нескольких сайтах. При возникновении технических проблем просьба указывать номер заказа, сайт, данные административной панели и ftp на официальном сайте разработчика - opencartmodul.ru

      Без вышеуказанных данных, не сможем решить проблему быстро и качественно!

      Демо версия на Opencart 23 пароль и логин: demo
       
      Указал так же услуги:

      1) Многопрофильность - пришло на замену клонам, вы создаете безграничное количество профилей с разным прайс-листом, с разными ссылками. В в LITE версии его нету, можно добавить по вашему желанию - стоимость 300 рублей.
      2) Переименование категорий на сайте в модуле - Иногда товарные позиции попадают не в те разделы торговых площадок которые нужно, и ответ поддержки этих площадок такой: - вы должны переименовать ваши категории на сайте. Это очень не удобно. Поэтому в модуле добавлена функция переименования категорий в модуле.  В в LITE версии его нету, можно добавить по вашему желанию - стоимость 1500 рублей.
      3) Опции под заказ -  в модуле на данный момент выгружаются все опции со статусом true. Не зависимо от количества. Но если Вам важно количество товарных позиций. То предлагаю такой вариант.. В модуле выбирать: Убрать опции если они с количеством 0 или под заказ если 0.  В в LITE версии его нету, можно добавить по вашему желанию - стоимость 1500 рублей.

      Если Вам нужны все функционалы указанные выше - можете ознакомиться с PRO версией.

      Внимание!
      Модуль устанавливает только Автор. Для подключения перейдите в раздел Обслуживание Модуль работает как индивидуально с каждой товарной позицией так и с большим количеством товаров. Если в вашем магазине от 100 тыс товарных позиций просьба сначала написать сообщение с указанием адреса сайта. Управление товарными позициями идет в модуле Управление торговлей. Если вы хотите использовать несколько вариантов доставок, рекомендуем модуль Мои способы доставки.
      По поводу установки - писать только в раздел обслуживания.  Не дублировать сообщения, не флудить, не спамить. Иначе сообщения будут игнорироваться и будут обработаны гораздо позже чем назначено.
       
      Данный модуль имеет огромное количество инструментов, которые помогут вам:
       
      Гибко настроить прайс-лист для той или иной торговой площадки. Постоянно быть с актуальной информацией. Индивидуально настраивать товарные позиции. Опережать конкурентов, обновляя цены по API. Теперь скорость обновления цен стала еще быстрее.  
      Важная информация:

      Модуль работает в двух режимах: автоматическая генерация и по планировщику задач.При автоматической генерации прайс-листа вам необходимо выключить все модули которые кешируют сайт, так как нарушается работа модуля.
      Обновление модуля по планировщику происходит по отдельной ссылке.
      Модуль предназначен только для одного языка, но поддерживает многовалютность с помощью модуля ВАЛЮТА ПЛЮС.- данная функция убрана возможна дальнейшая адаптация
      Если вы используете программы для автоматического обновления цен, то этот модуль как раз для вас, единственный ньюанс, вы сможете обновить в прайс листе, но не по API.

      Перед покупкой ВНИМАТЕЛЬНО ознакомьтесь с техническими характеристиками. 
       
      Обновление цены товарных позиций по средствам API Яндекс.Маркет(только для Яндекс.Маркет). Теперь не нужно ждать по 30-50 минут пока обновятся цены на Яндекс.Маркет. Теперь как только вы измените цену в Яндекс.Маркет сразу поступит информация о обновлении цены. Примерное ожидание ~10-15 минут. В фото можете посмотреть скришот действующего магазина. Теперь вам не нужно покупать на каждую площадку отдельно модуль, вы можете отправить запрос на получение копии модуля для площадки. Специалист установит вам после указания всех указанных ранее данных. Теперь вы сами выбираете нужный вам каталог для публикации. Новый маркет-плейс может добавляться по запросу. Управление товарными позициями происходит в модуле Управление торговлей.Каталог -Управление торговлей, там вы включаете необходимые теги. Там вы можете управлять как массово так и индивидуально с каждым товарным предложением. Работает фильтр тегов в правом верхнем углу. Фильтр колонок. Работает фильтр по производителям товаров. Данный модуль работает в связке с модулем "Валюта плюс" - Валюта плюс модуль для синхронизации валют по ЦБ РФ в автоматическом режиме. Новинка! Модуль отлично работает с модулем Автоматическая Обработка Прайс-листов. Модуль синхронизируется и обновляет цены в то же время в которое обновляет АОП. Новинка! Тег <manufacturer_warranty> - данный тег указывает имеется ли гарантия производителя на товаре или нет. Можно использовать как массово так и в индивидуальном порядке.  Тег <country_of_origin> - данный тег указывает в какой стране произведен товар. order-before - недавно на Яндекс.Маркет ввели систему в которой вы можете указать возможности своей доставки, т.е до какого времени ваша служба доставки может доставить в указанный срок, далее идет перескок на 1 день. Тег <oldprice> - тег для расчета скидок. Внимание! При использовании данного модуля стоимость перехода больше! По умолчанию выключено!  Возможность модуля огромны, вы можете использовать так же условие "на заказ", как массово так и в индивидуальном порядке, что очень подходит для предприятий которые тесно связаны с доставкой и складами. Тег <delivery> - данный тег указывает о возможности доставки товара, берет данные из карточки товара. Если указано, в карточке товара, что есть возможность доставки, то модуль покажет ее в прайсе. Можно изменять массово и индивидуально.  Индивидуальная стоимость доставки каждого товара или же массовая цена товара. Так же одна из особенностей данного модуля. Внимание для этого купите модуль "Мои способы доставки" где задается индивидуальная цена товара в корзине, ведь иначе если в YML указана цена 350, а в корзине 450, вы получите штраф от службы контроля качества. С ним вы можете ознакомиться в демо версии по той же ссылке. Возможность создавать несколько вариантов доставки!  Тег <barcode> - штрихкоды производителя, для быстрого нахождения товарных позиций в Яндекс маркет. Указывается для нахождения товарных позиций в маркете. Тег <pickup> - этот тег указывает о наличии товара на пункте самовывоза. Вы можете индивидуально изменять в товарных предложениях или массово.   Для товаров с опциями, отвечающими за "цвет" и "размер" в экспорте формируются несколько товарных предложений.   Добавлена размерная сетка для размеров товарных предложений. Модуль так же не публикует товары с количеством 0 на складе при включенном статусе. Тег <adult> - данный тег предназначен для товара имеющего отношение к удовлетворению сексуальных потребностей, либо иным образом эксплуатирующего интерес к сексу. Добавлен тег <typeprefix> - тип или категория товара, вы сами прописываете его. Прописываете индивидуально для того, чтобы улучшить выдачу своих товарных предложений. Напоминаю, название не должно быть обобщенным. Для примера вы можете посмотреть в документации от Яндекс.Маркет. Вы редактировать это массово или индивидуально. <sales_note> - данный тег размещает короткую заметку. К примеру о безналичной оплате или предоплате товара. Индивидуальна для каждого товарного предложения.  Экспорт Характеристик товара. Добавлен запуск по планировщику задач/ Покупая данный модуль вы получаете мощный комплект инструментов для успешной торговли на Яндекс.Маркет. Так же вы получаете БЕСПЛАТНУЮ техническую поддержку, которая своевременно будет обслуживать вас, и отвечать на интересующие вас вопросы.
      Добавил invays Добавлено 30.05.2018 Категория Обмен данными Системные требования версия php не ниже 5.4 Сайт разработчика opencartmodul.ru Старая цена Метод активации Через официальный сайт дополнения Ioncube Loader Нет OpenCart 3.0
      2.3
      2.1
      2.0 ocStore 3.0
      2.3
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.