Категория ‘Интернет-магазин’

Импорт csv в virtuemart для больших файлов

Virtuemart + joomla - неплохой и “бесплатный” инструмент для организации интернет-магазина. Для синхронизации, например с 1с (что требуется довольно часто), в virtuemart используется инструмент импорт-экспорт через CSV. Все бы ничего - после определенной настройки данные импортируются, но при солидных объемах магазина - несколько тысяч товаров в csv-файле, даже без описаний, скрипт импорта выполняется несколько минут. Площадки виртуального хостинга же, частенько, имеют ограничение на это самое время выполнения скрипта. Вот и получаем Читать целиком »

Опубликовано Май 13, 2009 | автор: levik  |  Комментарии (3) »

И снова бланки - работа с word средствами javascript и php

В очередной раз стала актуальной задача с подготовкой бланков. Однако, способ с бланком в формате rtf не подходит - файл .doc весит ~2 Мб, файл же rtf ~ 34 Мб. Видимо, зависит от хранения рисунков…

Работать с COM-объектом Word можно непосредственно из PHP:

// Код PHP
$word=new COM("Word.application") or die("Couldn't start Word!");
//после создания объект невидимый
//сделаем его видимым и активизируем (разумеется, для работы на сервере это необязательно)
$word->visible =1;
$word->Activate();
//Создать документ по шаблону:
$word->Documents->Add("c:\\template.dot");
// действия - найти-заменить и т.д. Описаны в документации по VisualBasic for Application - в справке MS Word (по умолчанию не устанавливается)
$word->ActiveDocument->SaveAs("C:\\".$fname);
$word->Quit();

Однако, подобный способ подходит только для Windows-серверов.

Еще один вариант - работа с COM-объектом на стороне клиента через Active-X при помощи JavaScript:


><script language="javascript">
// Создание объекта MS Word:
word = new ActiveXObject ("Word.Application");
// Создание документа и установка параметров страницы:
with (word) {
Documents.Open('c:\\0.doc');
ActiveDocument.Label1.Caption = < ?=$sum?>;
ActiveDocument.SaveAs ('c:\\1.doc');
Quit (); // завершает работу MS Word
}
</script>

Предварительно следует сохранить документ-шаблон на диск C:\ с именем 0.doc.
В шаблоне - создать “Label”-ы и расположить их в соответствии с нужным расположением текста.
С учетом специфики задачи - получаем еще один небольшой выйгрыш - “основной” файл не качается с сервера.
Технология, думаю, понятна. Вариации - насколько фантазии хватит.

ps. Не забудьте поставить разрешения в свойствах обозревателя.

( Свойства обозревателя - безопасность - Выбираем “Надежные узлы”. После чего, нажимаем “Другой..” - и устанавливаем все переключатели, где упоминается ActiveX в “Разрешено”.)

А в Надежные узлы следует добавить “Наш” сайт - где формируются бланки.

Опубликовано Март 18, 2009 | автор: levik  |  Нет комментариев »

Virtuemart напильником

Волей судьбы пришлось бороться с Virtuemart’ом. Сразу хочу отметить, что бОльшая часть файлов находится в каталоге administrator/components/com_virtuemart/.

1. меню из каталога товаров стандартное (mod_virtuemart) слишком сильно грузит магазин. Альтернативный вариант решения - меню “ручками”. Т.е. делаем меню, пунктами которого становятся ссылки на категории нашего магазина. Читать целиком »

Опубликовано Октябрь 13, 2008 | автор: levik  |  Комментарий (1) »

OsCommerce - замеченные глюки-баги

Решил собрать некоторые глюки Oscommerce (версии и сборки различные) , потому как порой, как оказалось, они встречаются чаще одного раза.. А когда помнишь, что ты уже это делал.. и не помнишь, как.. а поиск выдает что-то не то..

Возможно, окажется полезным не только мне..

OsCommerce не отображает некоторые товары

Поскольку в этом SHOP-монстре куча всевозможных настроек, следует убедиться, что “скрытый” от глаз посетителя товар не отключен этими настройками. Естественно, если один товар отображается, а другой - нет, следует… сравнить атрибуты/параметры этих товаров в админ панели Oscommerce или непосредственно в базе. В моем случае, для не отображаемых товаров просто не был указан производитель.

OsCommerce не добавляет некоторые товары в корзину

Столкнулся с “чудесами” - все товары (все проверенные - порядка 30) в корзину добавляются нормально, один - ну никак не хочет. При попытке добавить в корзину происходит переход на пустую корзину.
Проблема оказалась в добавлении к атрибуту action в теге form дополнительного параметра &sid=id_sesion..

Oscommerce не дает войти в админ центр

Проблема оказалась в принудительной установке Cookies - поправил изменением значения в таблице configuration (непосредственно в базе). Искать в базе в таблице `configuration`
where configuration_key like '%cookie%'
менять с true на false и наоборот.

Oscommerce выдает ошибку при обновлении версии MySQL

При обновлении базы MySQL, используемой OsCommerce с версии 4 на версию 5, магазин “радует” нас англоязычными сообщениями об ошибках. Поиск по аглицким форумам помог решить проблему - в свое время  пару часов пришлось повозиться. Однако, сейчас уже и не вспомню… Если повторится - дополню…

На самом деле, несмотря на кажущуюся “громоздкость”, oscommerce , если разобраться, не такой уж сложный магазин. Наличие форумов, как русскоязычных, так и забугорных, дает возможность вникнуть и решить практически любую проблему.. (не путать с “проблему решат за тебя”.. хотя, обычно, вопрос цены…)

UPD
Oscommerce не добавляет товары в корзину

При попытке добавить товар в корзину (а также при регистрации) перебрасывает на страницу “включите Cookies” (cookie_usage.php) с сообщением:

Для работы с нашим магазином Вам необходимо включить поддержку cookies в Вашем браузере.

Из возможных вариантов:
1. неправильно указаны настройки в файле /includes/configure.php и admin/includes/configure.php (ситуация часто возникает при переездах oscommerce-магазина с одного хостинга на другой:
define('HTTP_SERVER', 'http://server.name'); // eg, http://localhost - should not be empty for productive servers
define('HTTPS_SERVER', 'https://server.name'); // eg, https://localhost - should not be empty for productive servers
define('ENABLE_SSL', false); // secure webserver for checkout procedure?
define('HTTP_COOKIE_DOMAIN', 'server.name');
define('HTTPS_COOKIE_DOMAIN', '');
define('HTTP_COOKIE_PATH', '/');

2. некоторые магазины на базе OSCommerce требуют включения директив php:
php_value register_globals on
php_value register_long_arrays on

3. если ситуация с cookies на локальном компьютере, то, возможно это из-за некорректного распознавания домена localhost некоторыми браузерами (они считают домен некорректным, если в нем нет точки). Или настраивать локальный web-сервер, или залезть в includes/application_top.php и подправить установку домена cookies: $cookie_domain = ” (при выкладке на сервер не забыть вернуть как было :)

Опубликовано Август 19, 2008 | автор: levik  |  Комментарии (4) »

Бланки на PHP.

Довольно часто для обеспечения удобства работы с интернет магазином требуется решить задачу оформления различных шаблонных документов - всевозможные бланки почтовых отправлений, квитанций на оплату, накладных… При этом, неплохо иметь возможность “на всякий случай” отредактировать получившийся документ.

Один из вариантов решения - подготовка шаблонов документов в формате RTF (в программе MS WORD). При подготовке шаблона туда, где должны располагаться подставляемые данные, например, сумма заказа, помещаем “оригинальную” последовательность символов, например, %SUM%.
Внимание! При подготовке шаблона аккуратнее со сменой языков. При работе в программе ворд следует выделить последовательность символов (%SUM%), выбрать пункт меню Сервис-Язык-Выбрать язык. Я выбирал Русский :)
Шаблон сохраняем на сервер (например, с именем template.rtf в каталог со скриптом)

В скрипте, при работе с шаблоном, просто заменяем последовательность символов:$file = file_get_contents('template.rtf');
$file = str_replace("%SUM%", ' '.$sum, $file);
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename=nakladnaya.rtf');

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

Опубликовано Апрель 12, 2008 | автор: levik  |  Комментарии (3) »