Прайс excel на моем сайте

Никак не могу найти информацию, как вывести прайс excel на сайте в виде обычной html странички.
Суть задачи — менеджер загружает на сайт обновленный прайс (TV файл) — он обновляется на странице. Внешний вид на странице:

<table></table>

Николай Ланец

Просто так ничего не будет выводиться. Если загружаете экселевский файл, то он без лишних действий им же и останется. Если в HTML выводить, то его парсить надо. Есть два основных варианта:
1. Загружать именно как эксель (формат .xls или .xlsx), подключать php-библиотеку для работы с эксель-файлами, парсить данные и выводить их в нужном формате.
2. Сохранять эксель-файл в формате CSV. С ним проще работать как с простым текстовым файлом. В помощь функции
fgetcsv и str_getcsv.

Спасибо. Я подключал pxpexcel, делал по аналогии с Evo, но к сожалению так и не смог избавиться от ошибок.
С PHP я не настолько хорошо знаком. Думал, может у кого осталась ссылочка на мануал или заметка Evernote.

Попробую fgetcsv использовать.

Николай Ланец

думал там можно просто заменить getTemplateVarOutput на Revo-вские getObject

Так getTemplateVarOutput() возвращает значение ТВ-поля. В Рево это $modx->resource->getTVValue($tv_id);

Да, я так и получал TV, там у меня ошибки именно в PHPExcel. Спасибо.

Не помню. Были разные по мере работ. Буквально час назад заработало.
Поменял запись из примера:

$objReader = PHPExcel_IOFactory::createReader('Excel2007'); // $objPHPExcel = $objReader->load($xls);

$objPHPExcel = PHPExcel_IOFactory::load($xls);

$xls — tv путь к файлику экселя.
И сейчас всё работает.

Оставлю тут, может кому пригодится:
Скачиваем библиотеку
PHPExcel
Я положил ее в assets/lib/ там внутри уже папка Classes из скачанного архива, в сниппете будет виден путь.
Создал TV файл, назвал его xlsFile
Создал сниппет showXls, в нем присутствует отладочная информация:

<?php require_once 'assets/lib/Classes/PHPExcel/IOFactory.php'; // Подключаем библиотеку $xls = $modx->resource->getTVValue('xlsFile'); // Наш TV $objPHPExcel = PHPExcel_IOFactory::load($xls); // Скармливаем его библиотеке foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { $worksheetTitle = $worksheet->getTitle(); $highestRow = $worksheet->getHighestRow(); // Например, 10 $highestColumn = $worksheet->getHighestColumn(); // Например, 'F' $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); $nrColumns = ord($highestColumn) - 64; echo " В таблице ".$worksheetTitle." "; echo $nrColumns . ' колонок (A-' . $highestColumn . ') '; echo ' и ' . $highestRow . ' строк.'; echo ' Данные: <table border="0"><tr>'; for ($row = 1; $row <= $highestRow; ++ $row) { echo '<tr>'; for ($col = 0; $col < $highestColumnIndex; ++ $col) { $cell = $worksheet->getCellByColumnAndRow($col, $row); $val = $cell->getValue(); $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val); echo '<td>' . $val . ' (Тип ' . $dataType . ')</td>'; } echo '</tr>'; } echo '</table>'; }

И теперь в ресурсе, где надо вывести Excel и где мы загрузили в TV файлик, запускаем сниппет:
[[showXls?]]

Николай Ланец

Ну что, круто! И на вид даже универсально. Имело смысл не комментом дописать, а прям в топик, но и так пойдет, можно просто UPD-ссылку в топик дописать на решение. Наверняка кому-нибудь пригодится.

Николай Ланец

За полезный материал поднимаю статус до члена Клуба :)

И теперь в ресурсе, где надо вывести Excel и где мы загрузили в TV файлик, запускаем сниппет:
[[showXls?]]

Решение действительно интересное. Один вопрос. Скажите, а не накладно, что при каждом обновлении страницы происходит обработка Excel-файла? А если прайс большой? У меня более 1000 строк? Или это все дело как-то кэшируется?

Николай Ланец

Илья, изучайте основы MODX, и чем отличается [[showXls?]] от [[!showXls?]].

Добавить комментарий

Плагин содает на сайте новый раздел, в котором можно скачать прайс-листы в формате *.xlsx (стандартный формат для Microsoft Excel начиная с версии Excel 2007). Также имеется возможность скачивать прайс-лист из панели управления сайтом по каждой категории в отдельности.

Плагин может работать вместе с другими плагинами, что расширяет его возможности.

Возможности:

  • Скачивать все товары единым файлом
  • Скачивать категории отдельным файлом
  • Экспортируются все товары и их вариации. При неходимости можно отклучить наименование варирианта товара.
  • Добавление колонок с характеристиками.
  • Группировка товаров по брендам.
  • В экспортируемом файле присутсвует группировка строк (можно сворачивать и разворачивать группы строк, управление котороми находится слева от нумерации строк)
  • Вывод цен в указанной валюте, все цены ковертируются в указанную валюту
  • Остаки указываются суммой со всех складов, с возможностью устанавливать количество «много» при превышении определенного количества.
    Также есть возможность выводить остатки по складам в отдельных столбцах.
    При выводе остатков по складам, возможна настройка другой видимости и последовательности складов для прайс-листа.
  • Редактирование содержимого и Title раздела
  • Редактирование шапки прайс-листов, включая возможность выводить ссылку на сайт
  • Возможность настройки цвета ячеек и размера шрифта
  • Ссылка на раздел легко встраивается в любую тему дизайна
  • Возможность вставки в произаольное место в блоке и на старанице приложения
  • Вывод в бэкенде закупочной цены
  • Вывод разных цен в разных колонках (цена продажи, зачеркнутая цена, другие цены при использовании соотвествующего плагина). Поддерживаются плагины: «Настраиваемые цены», «Мультицены», «Оптовые цены», «Гибкие скидки». При необходимости возможно расширить список поддерживаемых плагинов.
  • При использовании плагина «Настраиваемые цены», можно настроить вывод в прайс всех цен, даже не доступных пользователю для заказа на фронте.
  • Вывод колонки с штрихкодом при установленном плагине «Штрихкод» или «Ярлык товара».
  • Вывод колонки с кодом, который генерируется плагином «Код» (при его наличии)
  • Вывод колонки с картинкой с функцией отключения для определенных категорий, что важно при большом количестве товаров (например для основных товаров выводить картинки, а для аксессуаров не выводить). Размер картики можно задавать из настроек магазина.
  • Вывод колонки с ссылкой на картинку
  • Вывод колонок с количеством и суммой для заказа
  • Возможность переименовывать любую колонку прайс-листа
  • Возможность задавать порядок следования колонок прайс-листа
  • Вывод колонки с кодом 1С (при установленном соответствующем плагине), может использоваться для загрузки в «Мой склад»
  • Есть возможность переназначить URL для плагина относительно приложения «Магазин» в настройках (по умолчанию используется идентификатор плагина и URL страницы плагина выглядит http://сайт/mpices/, но можно переназначить, чтобы получилось, например: http://сайт/price-list/ )
  • Возможность задавать ставить формирования прайс-листа в cron (при использовании плагина «Мульти цены» генерируются прайсы для всех вариаций цен, используемых у покупателей)
  • Возможность управлять доступом к прайс-листа определенным пользователям
  • Возможность принудительно установить домен для URL-адресов в прйс-листе
  • Возможность создавть набор прайс-листов с индивидуальными настроками, используя профили
  • Возможность вывода товаров на разных языка при использовании приложения MyLang

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

Инструкция по настройке и детальное описание возможносте: https://wa-pa.ru/plaginy-dlya-shop-script/prays-list-v-excel/

В плагине используется сторонняя библиотека PHPExcel, которая распространяется по лицензии LGPL.
Ознакомиться с текстом лицензии (eng).

В плагине используется сторонняя библиотека PhpSpreadsheet, которая распространяется по лицензии LGPL.
Ознакомиться с текстом лицензии (eng).

Внимание!

Плагин очень требователен к ресурсам сервера. (При использования в фронтэнде можно бойти ограничения используя предварительное построение прайса по расписанию)
При большом количестве товаров, возможно потребуется увеличение настройки параметра memory_limit в php.ini.

Плагин может не работать, если у вас более 10 000 товаров. (При использовании cron можно строить прайсы с количеством товараов значительно превышающим указанное количество)

Минимальные требования:

  • PHP 7.2 и выше
  • расширение PHP XmlWriter

0

03.02.201703:1103.02.2017 03:11:25

Решение «

Экспорт в Excel

» теперь позволяет не только экспортировать данные из инфоблоков и highload-блоков, но и формировать прайс-листы для Ваших клиентов.

Основные преимущества:
1) Фильтр товаров, попадающих в прайс лист.
2) Возможность разбивки прайса на несколько листов.
3) Настройка отображаемых в прайсе полей товара.
4) Возможность вставки изображений и ссылок на товар в Excel-файл.
5) Вывод торговых предложений.
6) Гибкий функционал преобразования выводимых значений.
7) Настраиваемая шапка файла с возможностью вставки изображений.
8) Обновление прайс-листа по расписанию.

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

Показать скрытое содержание

Настройки прайса выглядят следующим образом:

Шаг 1. Создание профиля экспорта, выбор формата файла и инфоблока с товарами.
Обратите внимание, что полный список возможностей по настройке прайс-листа возможен только при выборе xlsx-формата.

export_step1.png

Шаг 2. Выбор отображаемых полей, листов файла, а также настройка фильтрации выводимых товаров.

export_step2.png

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

conversions.png

Полное описание решения и ссылки на видео-инструкции по экспорту Вы сможете найти на странице модуля «

Экспорт в Excel

«.
По вопросам функционала и настройки модуля пишите на адрес техподдержки:

app@kabubu.org

.

Видео по настройке прайс-листа

На чтение 5 мин Просмотров 1.4к. Опубликовано 17.05.2021

В этой статье я хочу рассмотреть популярный, на мой взгляд, модуль для обновления цен и остатков от автора usergio – Автоматическая обработка прайс-листов (АОП). Цена модуля на сегодняшний день – 2900 рублей. Дороговато, но оно того стоит, поверьте. Модуль позволяет очень гибко настроить синхронизацию цен по Excel прайсу.

Модуль совместим со следующими версиями: OpenCart 1.5.3.1, OpenCart 1.5.4.1, OpenCart 1.5.5.1, OpenCart 1.5.6, OpenCart 1.5.6.1, OpenCart 1.5.6.2, OpenCart 1.5.6.3, OpenCart 1.5.6.4, OpenCart 2.0, OpenCart 2.1, OpenCart 2.2, OpenCart 2.3, OpenCart 3.0, OCStore 1.5.3.1, OCStore 1.5.4.1, OCStore 1.5.5.1, OCStore 1.5.5.1.1, OCStore 1.5.5.1.2, OCStore 2.1, OCStore 2.3, OCStore 3.0, OcShop 1.5.6.4.х, Opencart.pro 2.0.3.х, Opencart.pro 2.1, Opencart.pro 2.3.

Работает даже на хостинге с тайм-аутом для выполнения php скриптов в 30 секунд.
Обновление может происходить:

  • в ручном режиме
  • по заданию cron в полностью автоматическом режиме с заданным вами интервалом
  • модуль может загружать прайс с внешнего ресурса по ftp или https.

Итак, начнем.

Подготовка прайс листа в Excel

Подготовить прайс-лист очень просто. Для этого необходимо выполнить следующие шаги:

  1. В первый столбец поместите название товара. Оно не обновляется, в данном случае, а необходимо для лучшей визуализации. Не всегда понятно какой артикул соответсвует тому или иному товару. А при наличии наименования легко понять и частично проверить корректность заполненных данных, проведя визуальную проверку сформированного Excel прайса.
  2. Во втором столбце должна быть артикул товара.
  3. В третьем столбце разместите цену товара.
  4. В четвертом столбце разместите количество товара на складе (остаток).

Этот вариант размещения информации в столбцах является примерным. Его можно изменить на любой удобный порядок и прописать нужные вам значения в нужных вам столбцах. Главное после изменения не забыть внести соответствующие корректировки в модуль обработки. Далее в настройке модуля будет рассматриваться именно этот порядок значений столбцов прайса Excel.

Вот и весь прайс. Абсолютно ничего сложного. Модуль обмена данных может работать практически с любым количеством товаров. Проверялся на сайтах в несколько десятков тысяч товаров.

Прайс Excel

Пример составленного прайса

Очень важно, чтобы в теле прайса не содержалось лишних строк. Наименование склада или любой другой информации.

Как правильно составить прайс лист?

Логика работы модуля достаточно проста. Он идет построчно, перебирая артикулы и сопоставляет их с артикулом в базе данных на сайте магазина. Если модуль наткнется на строку отличную от того формата, в котором весь прайс, то он прекратит дальнейшее обновление цен и остатков.

Будьте внимательны!

1С очень часто в тело прайса добавляет наименование других складов. Перед загрузкой такого прайса в модуль, его необходимо проверить визуально с помощью сортировок Excel. Времени это занимает немного, но убережет вас от не полного обновления цен и остатков в вашем интернет магазине.

Настройки модуля для работы с прайсом.

Процесс установки модуля в магазин я пропущу, он достаточно прост и подробно описан в руководстве.

Перейдите к настройкам модуля АОП в админке магазина: Каталог — Постащики.

Хостинг AdminVPS

Расположение модуля

Расположение модуля в админке магазина

Перед вами откроется окно с уже готовыми алгоритмами для обработки прайсов от поставщиков.

Вид модуля при переходе в его настройки

Вид модуля при переходе в его настройки

Давайте создадим новое правило для обработки прайс-листа Excel от нового поставщика. Нажмите на «Плюс» в правом верхнем углу. Откроется страница настройки новой обработки.

Настройка параметров обработки прайса

Настройка параметров обработки прайса

Не пугайтесь этому многообразию полей ввода и чекбоксов. Вы должны понимать, что гибкий инструмент для работы всегда имеет много настроек. Хотите меньше настроек? Придется писать модуль самостоятельно под ваши задачи 😊.

Самые главные настройки, без которых не запустится обновление – отмечены красными звездочками. Для минимальной настройки нам и нужно заполнить эти поля. В них вписываем номер столбца в Excel с соответствующими данными. Смотрим наш пример в самом начале статьи:

  1. название товара.
  2. артикул товара.
  3. цену товара.
  4. количество товара на складе (остаток).

Артикул обязателен, по нему модуль понимает что ему обновить.

Вводим номер столбца с ценой

Вводим номер столбца с ценой
Номер столбца с артикулом
Номер столбца с артикулом
3й – цена
3й – цена
4й – количество
4й – количество

В самом низу выбираем ЧТО мы будем обновлять: в нашем случае остаток (количество) и цену товара.

Выбор способа обновления

Выбор способа обновления

Самое главное: не забыть нажать на кнопку сохранения метода обработки прайса. В правом верхнем углу. Только после этого можно проводить обновление.

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

Запуск модуля обработки прайс-листа Excel

Запуск модуля обработки прайс-листа Excel

Зачем ещё раз переходить в настройки? Смысл в том, что вы один раз создаете шаблон под определенного поставщика, а потом запускаете его когда угодно. У них у каждого свой формат таблицы. Также не всегда нужно обновлять остатки например. Сначала эти лишние шаги немного мешают, но после начинаешь ценить их смысл.

Проверяем еще раз наши настройки и нажимаем Start / Continue вверху или внизу страницы. Попадаем на страницу загрузки прайса. Загружаем и опять жмем Start / Continue.

Загрузка Excel прайса

Загрузка Excel прайса

Вот и всё. Модуль начнет загрузку данных в вашу базу данных. Если за 30 секунд модуль не успеет закончить всю работу и у вас сработает тайм-аут сервера, то запустите обновление ещё раз. Модуль продолжит с того места, где прервался в прошлый раз. Если же у вас VPS, то каких проблем быть не должно.

Благодаря этому методу я обновляю прайсы очень быстро. Также не забывайте про crone – всегда можно настроить полный автопилот без вашего участия.

Успехов в работе интернет-магазина!

Для чего часто используется Excel?

Эта программа, которая позволяет работать с электронными таблицами и .csv файлами.

Что это такое CSV?

csv файлы – это текстовые файлы, которые обычно используются для переноса данных между разновидными системами.

Вся информация представлена в текстовом виде, а поля разделяются специальными разделителями – это может быть ; или , или другой символ.

Фрагмент .csv файла

Название товара;Кол-во, шт.;Цена, рубл.
Товар 1;150;93
Товар 2;150;14
Товар 3;150;76
Товар 4;150;66

С помощью этого файла Вы можете перенести информацию с Интернет-магазина в любую программу, которая поддерживает этот тип файла.

А этот формат является промышленным “де-факто” стандартом обмена информацией между различными системами.

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

Также, ко мне часто обращаются клиенты, работающие с Интернет-магазином, с просьбой помочь решить вопросы, связанные с изменением большого количества позиций прайс-листа, использующегося в их он-лайн магазине.

Например, ваш поставщик регулярно присылает вам файл с перечнем товаров для продажи в Интернет-магазине:

Обычно этот файл имеют следующий формат:

  • Код товара
  • Название товара
  • Цена товара
  • Дополнительная информация о товаре

Представьте, что у вас около 5 000 товаров. И поставщик поднимает отпускную цену на 20 %. Следовательно, вам необходимо увеличить продажную цену товаров.
Если вы будете делать это руками, выйдет очень печальная арифметика:

Изменение 1 товара: 2 минуты (нужно пересчитать %, добавить его к товару и изменить цену)
5000 товаров х 2 минуты = 10 000 минут / 60 минут = 166 часов или около 7 рабочих дней, чтобы изменить цены на товары.

Единственным спасением в вашем варианте – это использование формул в Excel.

Позвольте пояснить, как можно автоматизировать процесс изменения.

Для примера, я привожу простой .csv файл

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

Пример CSV файла  Пример csv файла по статье

Пример Ексель файла прайса Пример Excel файла с формулами по данной статье

Чтобы посмотреть как связанны формула – дважды кликните на ячейку.

Как проверить формулу в Excel

Откроем .csv файл и добавим в Excel.

Как открыть файл CSV в Excel

Чтобы изменить цену товара, нам нужно использовать простые формулы Excel:

Лист программы разбит по принципу морского боя: строки – цифры, а столбцы – буквы. Так Вы можете ссылаться на нужную координату, строя формулу.

Размещение ячеек в листе Excel

В нашем примере это будет формула: =D6+$H$4

D6 – ячейка с текущей ценой

$H$4 – ячейка, где указывается добавочная цена. Знаки доллар – означают, что при изменении координат формул, всегда брать данные именно с этой ячейки по строке и столбцу. Это удобно, если вы хотите скопировать все формулы на листе.

Если же вы сделали такую формулу: D6+20 , то значение в ячейки действительно увеличилось на 20. Но если позже вам пришлось мы опять менять надбавку на другое число, то пришлось бы переписывать все ячейки.
В моем примере достаточно просто изменить значение ячейки Н4

Внимание: вам не нужно каждый раз писать формулу для нужной ячейки.
Формулу можно скопировать во все нужные ячейки, перетащив нужную ячейку. При этом, она автоматически изменят нужную нумерацию.

Копирование формулы в Ексель

Если Вы хотите добавить нужный процент можете использовать такую формулу:
=D6+(D6*($I$4/100))

В формулах очень удобно использовать текстовые константы для автоматического добавления текста:

Пример формулы: =”Чудесный “&B6&” от Интернет-магазина АБС всего за “&D6&” рубл.”

В этой формуле текст “Чудесный ” соединяется с ячейкой В6, потом с текстом ” от Интернет-магазина АБС всего за ” и ценой продукта (D6) и текст за ценой.

Цель этой статьи подсказать, как удобно можно работать с электронными таблицами.

Если Вы хотите попробовать себя с построением формул – пробуйте и читайте документацию.

Жалейте себя, экономьте время, не делайте рутинные операции руками.

Для этого у вас есть компьютер!

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

Пример CSV файла  Пример csv файла по статье

Пример Ексель файла прайса Пример Excel файла с формулами по данной статье

Понравилась статья? Поделить с друзьями:
  • Праздничные дни для excel
  • Прайс лист образец excel скачать бесплатно
  • Праздничные дни 2022 excel
  • Прайс лист на строительные материалы excel
  • Правый символ excel до символа