Перейти к содержанию
Форум поддержки пользователей VamShop

Советы по оптимизации VaM Shop


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

  • Ответов 225
  • Created
  • Последний ответ

Top Posters In This Topic

  • support

    98

  • Makdak

    9

  • lodos

    8

  • Bububu

    8

Top Posters In This Topic

Popular Posts

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

Posted Images

Ещё можно в /includes/classes/product.php поменять:


function buildDataArray(&$array,$image='thumbnail') {
global $vamPrice,$main;

$tax_rate = $vamPrice->TAX[$array['products_tax_class_id']];

$products_price = $vamPrice->GetPrice($array['products_id'], $format = true, 1, $array['products_tax_class_id'], $array['products_price'], 1);

if ($_SESSION['customers_status']['customers_status_show_price'] != '0') {
if ($_SESSION['customers_status']['customers_fsk18'] == '1') {
if ($array['products_fsk18'] == '0') {
$buy_now = $this->getBuyNowButton($array['products_id'], $array['products_name']);
$buy_now_new = $this->getBuyNowButtonNew($array['products_id'], $array['products_name']);
}
} else {
$buy_now = $this->getBuyNowButton($array['products_id'], $array['products_name']);
$buy_now_new = $this->getBuyNowButtonNew($array['products_id'], $array['products_name']);
}
  }


$shipping_status_name = $main->getShippingStatusName($array['products_shippingtime']);
$shipping_status_image = $main->getShippingStatusImage($array['products_shippingtime']);


return array ('PRODUCTS_NAME' => $array['products_name'],
      'PRODUCTS_MODEL'=>$array['products_model'],
      'PRODUCTS_QUANTITY'=>$array['products_quantity'],
'COUNT'=>$array['ID'],
'PRODUCTS_ID'=>$array['products_id'],
'PRODUCTS_VPE' => $this->getVPEtext($array, $products_price['plain']),
'PRODUCTS_IMAGE' => $this->productImage($array['products_image'], $image),
'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($array['products_id'], $array['products_name'])),
'PRODUCTS_PRICE' => $products_price['formated'],
'PRODUCTS_PRICE_PLAIN' => $products_price['plain'],
'PRODUCTS_TAX_INFO' => $main->getTaxInfo($tax_rate),
'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink(),
'PRODUCTS_BUTTON_BUY_NOW' => $buy_now,
'PRODUCTS_BUTTON_BUY_NOW_NEW' => $buy_now_new,
'PRODUCTS_SHIPPING_NAME'=>$shipping_status_name,
'PRODUCTS_SHIPPING_IMAGE'=>$shipping_status_image,
'PRODUCTS_DESCRIPTION' => $array['products_description'],
'PRODUCTS_EXPIRES' => $array['expires_date'],
'PRODUCTS_CATEGORY_URL'=>$array['cat_url'],
'PRODUCTS_SHORT_DESCRIPTION' => $array['products_short_description'],
'PRODUCTS_FSK18' => $array['products_fsk18']);


}
[/code] на:
[code]
function buildDataArray(&$array,$image='thumbnail') {
global $vamPrice,$main;

if ($_SESSION['customers_status']['customers_status_show_price'] != '0') {
if ($_SESSION['customers_status']['customers_fsk18'] == '1') {
if ($array['products_fsk18'] == '0') {
$buy_now = $this->getBuyNowButton($array['products_id'], $array['products_name']);
$buy_now_new = $this->getBuyNowButtonNew($array['products_id'], $array['products_name']);
}
} else {
$buy_now = $this->getBuyNowButton($array['products_id'], $array['products_name']);
$buy_now_new = $this->getBuyNowButtonNew($array['products_id'], $array['products_name']);
}
  }


$shipping_status_name = $main->getShippingStatusName($array['products_shippingtime']);
$shipping_status_image = $main->getShippingStatusImage($array['products_shippingtime']);


return array ('PRODUCTS_NAME' => $array['products_name'],
      'PRODUCTS_MODEL'=>$array['products_model'],
      'PRODUCTS_QUANTITY'=>$array['products_quantity'],
'COUNT'=>$array['ID'],
'PRODUCTS_ID'=>$array['products_id'],
'PRODUCTS_VPE' => $this->getVPEtext($array, $products_price['plain']),
'PRODUCTS_IMAGE' => $this->productImage($array['products_image'], $image),
'PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($array['products_id'], $array['products_name'])),
'PRODUCTS_PRICE' => number_format($array['products_price']),
'PRODUCTS_PRICE_PLAIN' => $products_price['plain'],
'PRODUCTS_TAX_INFO' => $main->getTaxInfo($tax_rate),
'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink(),
'PRODUCTS_BUTTON_BUY_NOW' => $buy_now,
'PRODUCTS_BUTTON_BUY_NOW_NEW' => $buy_now_new,
'PRODUCTS_SHIPPING_NAME'=>$shipping_status_name,
'PRODUCTS_SHIPPING_IMAGE'=>$shipping_status_image,
'PRODUCTS_DESCRIPTION' => $array['products_description'],
'PRODUCTS_EXPIRES' => $array['expires_date'],
'PRODUCTS_CATEGORY_URL'=>$array['cat_url'],
'PRODUCTS_SHORT_DESCRIPTION' => $array['products_short_description'],
'PRODUCTS_FSK18' => $array['products_fsk18']);


}

У меня например после применения всех советов из темы + включение sql кэша + отключения всех боксов кроме разделов получаются на главной странице магазаина такие результаты:

Время генерации: 0.06 сек.

Количество запросов: 3.

Вот например скриншот карточки товара.

Правда на странице карточки товара данные такие:

Время генерации: 0.066 сек.

Количество запросов: 4.

Самое интересное, что вобщем-то весь функционал сохраняется магазина, кроме расчёта скидок, менеджера баннеров, кто в онлайне.

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

post-1-1304838320,1781_thumb.png

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

А что изменится в функционале? после замены этой?

И еще. по прошлой замене в product.php:

"я пробовал вносить изменения и в product.php  Но с этим вообще что-то не то... Что-то происходит с ценами.. То есть после того как переправляешь product.php, то на страницах где выводятся карточки товаров - цены сокращаются до 1-й цифры... При этом если войти уже в карточку товара, то там цены выводятся нормальные..."

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

Makdak

Не будет разного рода скидок: персональные скидки, скидки групп, скидки от количества.

Не будет баннеров из менеджера баннеров в админке, можно использовать любой внешний менеджер баннеров.

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

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

Не будет учёта налогов, так же не всем нужна такая возможности.

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

Попробуйте ещё раз перечитать советы, я там немного исправлений вносил, всё должно выводиться нормально, но только без символа валюты, т.е. если по умолчанию например 11 руб., будет 11.0000, примерно так.

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

Makdak

Не будет расчёта скидок и не будет форматирования цены, просто плоское число будет выводиться.

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

Makdak

Не будет расчёта скидок и не будет форматирования цены, просто плоское число будет выводиться.

Да)) уже проверил :) так и есть. Но все таки вернул на место. Как-то не очень - куча нулей))

У меня получается без изменения product.php  примерно так:  Время генерации:  0.889, запросов: 57

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

Я чуть поправил сообщение, теперь не будет нулей, будет просто цифра.

Для этого в /includes/classes/product.php нужно поменять:


'PRODUCTS_PRICE' => $array['products_price'],
[/code] на:
[code]
'PRODUCTS_PRICE' => number_format($array['products_price']),

Это не так и плохо.

Все эти советы в основном для крупных магазинов и для медленных хостеров.

У Вас и так всё довольно неплохо.

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

Я извиняюсь за такой пулемет вопросов... но они возникают)).

Вот только что сделал статическим меню. Но кол-во запросов не изменилось... может я как-то не так что-то делал? Я прост из шаблона убрал метку вызова меню -  {$box_CATEGORIES}

и вставил на ее место просто статическое меню.

Или не так надо делать?

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

Убрав метку из шаблона Вы не убираете подключение php файла.

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

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

Понял спасибо. отключил бокс, 7 запросов убавилось...

Хм... А как же этот файл тогда подключается, если я его не вызываю меткой...? Я думал что если метки нету, значит и файл не будет подключаться...

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

Что б страницы быстрее отдавались можно ещё gzip включить в Админке - Настройки - Gzip

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

Хм... А как же этот файл тогда подключается, если я его не вызываю меткой...? Я думал что если метки нету, значит и файл не будет подключаться...

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

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

1. В реализации не особо сложно.

2. Вы б на реализацию потратили меньше времени, чем на многочисленные подобные ответы в форуме.

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

4. Даст улучшение  быстродействия. Особенно если несколько шаблонов, и в каждом свой набор боксов.

5. Покажет пользователю, что тут не только дают ответы на простые вопросы, но улучшают систему каждодневно, что не замедлит сказаться на количестве продаж и не придется раскрутку заказывать.

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

А никто особо и не спорит, ясное дело, что так было бы идеально.

Хотя вобщем-то и сделано через Админку - Настройки - Боксы, проще ведь там отключать, чем лазить по файлам, удалять метки.

Но я например не знаю, как в php можно будет узнать, что в смарти шаблоне убрали какую-то метку?!

Соответственно, тогда не подключать php файл.

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

Но я например не знаю, как в php можно будет узнать, что в смарти шаблоне убрали какую-то метку?!

Соответственно, тогда не подключать php файл.

Прочесть текст шаблона и проанализировать его.

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

1. В реализации не особо сложно.

2. Вы б на реализацию потратили меньше времени, чем на многочисленные подобные ответы в форуме.

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

4. Даст улучшение  быстродействия. Особенно если несколько шаблонов, и в каждом свой набор боксов.

5. Покажет пользователю, что тут не только дают ответы на простые вопросы, но улучшают систему каждодневно, что не замедлит сказаться на количестве продаж и не придется раскрутку заказывать.

так всеж просто

делаешь свой fork

и туда добавляешь что хочешь

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

Заметил, что сайт грузит еще и бокс админки, особенно запрос:

$orders_status_query = vam_db_query("select orders_status_name, orders_status_id from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$_SESSION['languages_id'] . "'");
  while ($orders_status = vam_db_fetch_array($orders_status_query)) {
    $orders_pending_query = vam_db_query("select count(*) as count from " . TABLE_ORDERS . " where orders_status = '" . $orders_status['orders_status_id'] . "'");
    $orders_pending = vam_db_fetch_array($orders_pending_query);
    $orders_contents .= '<a href="' . vam_href_link_admin(FILENAME_ORDERS, 'selected_box=customers&amp;status=' . $orders_status['orders_status_id'], 'SSL') . '">' . $orders_status['orders_status_name'] . '</a>: ' . $orders_pending['count'] . '<br />';
  }
  $orders_contents = substr($orders_contents, 0, -6);[/code]

С ним на сервере

Parse time: 7.607, queries: 62

Без него

Parse time: 0.969, queries: 52

Как оптимизировать?

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

А сколько у Вас заказов, что так медленно?!

Тут вобщем-то особо страшного нет ничего, всё-таки бокс админ не выводится обычным посетителям.

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

×
×
  • Создать...