Jump to content

Enhill

Пользователь
  • Content Count

    169
  • Joined

  • Last visited

Everything posted by Enhill

  1. Мне подсказали вот такое решение: ProductsView $discounted = new stdClass(); if ($this->request->get('discounted', 'integer')) { $discounted->disabled = false; $discounted->count = 0; } else { $temp_filter = $filter; $temp_filter['discounted'] = 1; $discounted->count = $this->products->count_products($temp_filter); if((int)$discounted->count > 0) { $discounted->disabled = false; } else { $discounted->disabled = true; $discounted->count = 0; } unset($temp_filter); } $this->design-
  2. Добрый день. Очень нужна ваша помощь. Вывожу акционные товары в шаблоне products.tpl с помощью GET параметра: if (!empty($type) && !$brand) { $query = $this->db->placehold(" SELECT c.name, count(pc.product_id) as products_count, c.parent_id, c.id, c.url FROM __products_categories pc LEFT JOIN __categories c ON c.id=pc.category_id INNER JOIN __products p ON p.id=pc.product_id AND pc.position=(SELECT MIN(pc2.position) FROM __products_categories pc2 WHERE pc.product_id=pc2.product_id) WHERE 1 AND p.visible=1 AND (SELECT 1 FROM __variants p
  3. Большое спасибо за помощь. 1. Это пример яндекса. Под этим параметром они хотят видеть количество товара в заказе. То есть $p->quantity это $purchase->amount
  4. Здравствуйте. Как мы знаем, наступила эра нового Федерального закона. Яндекс для отбития чеков в обязательном порядке запрашивает список товаров в таком формате: <input name="ym_merchant_receipt" value='{"customerContact": "+79001231212","taxSystem": 1, "items":[{"quantity": 1.154, "price": {"amount": 300.23}, "tax": 3,"text": "Зеленый чай \"Юн Ву\", кг","paymentMethodType": "full_prepayment ","paymentSubjectType": "commodity"},{"quantity": 2, "price": {"amount": 200.00}, "tax": 3,"text": "Кружка для чая, шт., скидка 10%","paymentMethodType": "full_prepayment ","paymentSubjectType": "
  5. Через файл обмена. Обязательно завтра напишу, спасибо за помощь. Попробую сначала уменьшить выборку, ведь такая проблема существует только с группированными товарами у которых есть гроуп ид.
  6. Вы говорите о индексе UNIQUE? Если сделать это поле уникальным, тогда после исправления ошибки в 1с, не будет создан правильный вариант, так как на сайте висит старый, с неправильным ид группы, но с таким же эксернал ид. Ошибки в 1с находим не сразу, к этому времени уже создаются варианты с неправильными данными. Часто бывает так, что вариант создается не в своем товаре и вычислить его потом очень трудно. В итоге второй созданный вариант является правильным, так как создается уже после исправления в 1с. Я вижу вариант с удалением, если найден дубль экстернал ид. АмМожет я вас неправильно по
  7. Как доберусь до компьютера обязательно попробую все предложенные варианты. тут загвоздка в том, что external_id это уникальный код из 1с, который присваивается вариантам при первой выгрузке. А еще у нас работает группировка товаров по другому id. Иногда наш закупщик путается и заводит в 1с неправильный id группы. После исправления ошибки, если товар успел выгрузиться на сайт с неправильным id группы, создается дублирующий вариант с тем же уникальным кодом external_id, по которому происходит обновление цен и наличия. Получается что созданный до этого первый вариант перестает обновлять наличи
  8. Добрый вечер. Возникла необходимость удалить все варианты у которых задублировано поле "external_id", кроме последнего. Получился запрос: DELETE n1 FROM s_variants n1, s_variants n2 WHERE n1.id < n2.id AND n1.external_id = n2.external_id Удаляет задублированное поле с меньшим id На тестовом магазине с маленьким количеством товара все ок. На магазине в 10000 товаров захлебывается. Помогите пожалуйста упростить запрос. Может есть альтернатива?
  9. Добрый день. Возникла необходимость вывести сумму остатков товара на складе. То есть посчитать все остатки у вариантов товара и вывести их сумму. Рабочий вариант (сомнительный): {assign var="sumstock" value="0"} {foreach $product->variants as $v} {$sumstock = $sumstock +$product->variant->stock} {/foreach} {if $sumstock >0}На складе: {$sumstock|convert}{/if} Есть сомнения на счет быстроты выполнения в шаблоне products.tpl Насколько это рациональный способ? У нас могут быть товары с 40+ вариантами. Может кто-то реализовывал другим способом?
  10. Осталось придумать, как скрыть категорию бренда, если мы туда уже зашли. - Фотоаппараты --- Ручные (присвоен бренд canon) --- Автозаводные (присвоен бренд canon) Если зайти в "Автозаводные" , все равно показывает ее в списке.
  11. Я не очень понятно задачу изложил. Имелся ввиду вывод категорий бренда из доработки: http://forum.simplacms.ru/topic/7909-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8-%D0%B2-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8-%D0%B8%D0%BB%D0%B8-%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0-%D0%B7%D0%B0%D0%B4%D0%BE%D0%BC-%D0%BD%D0%B0%D0%BF%D0%B5%D1%80%D0%B5%D0%B4/ Спасибо, то что нужно! Вот такой вывод почти идеален: {foreach $brand_cat as $bc} {if in_array($bc->id, $category->children)} <a href="catalog/{$bc->url}/{$brand->url}"> {$bc->name}</a>
  12. Зря я создал новую тему. Надо было поднять старую, тогда бы и контекст был понятен. Вывод категорий бренда: {if $brand} {foreach $brand_cat as $bc} <a href="catalog/{$bc->url}/{$brand->url}">{$bc->name}</a> {/foreach} {/if}
  13. Это условие "если есть детки у категории". Не сработает с таким вариантом событий: - Фотоаппараты --- Ручные (присвоен бренд canon) --- Автозаводные (присвоен бренд canon) - Пылесосы CANON (присвоен бренд canon) Если мы зайдем в бренд в фотоаппаратах: фотоаппараты/ручные/canon то получим вот такой список категорий: - Ручные - Автозаводные - Пылесосы CANON
  14. Добрый день. в симпле есть 2 места, где мы можем посмотреть товары привязанные к бренду: 1) http://demo.simplacms.ru/brands/canon 2) http://demo.simplacms.ru/catalog/fotoapparaty/canon Возникла необходимость во втором случае выводить категории, в которых лежат товары этого бренда. Есть замечательная доработка от ExtraBash и Noxter'a: http://forum.simplacms.ru/topic/7909-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8-%D0%B2-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8-%D0%B8%D0%BB%D0%B8-%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0-%D0%B7%D0%B0%D0%B4%D0%BE%D0%BC-%D0%BD%D0%B0%D0%BF%D0
  15. Maksclub, вот это оперативность =) Файл фида, отдающий максимальную информацию в поиск, включая все свойства. Его также можно использовать для выгрузки на яндекс маркет. <name>Наименование товара</name> <vendor>Бренд</vendor> <vendorCode>Артикул</vendorCode> <description>Описание $p->description : $p->annotation<description/> <param name="Свойство">значение свойства</param> <price>цена</price> <oldprice>старая цена</oldprice> yandex-search.php
  16. Согласен. Открываются невиданные возможности фильтрации результатов поиска. По поводу бренда. Наверное хорошо и артикул туда закинуть. // Товары $simpla->db->query("SET SQL_BIG_SELECTS=1"); // Товары $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, p.url, p.annotation, pc.category_id, i.filename as image, b.name as brand, b.url as brand_url FROM __variants v LEFT JOIN __products p ON v.product_id=p.id LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categorie
  17. Maksclub, ого! Даже не знаю как выразить свой восторг. По поводу фида. Стандартный фид в принципе имеет в себе все необходимое, кроме характеристик. Опять же все подряд характеристики туда пихать не очень рационально (их может быть очень много). Как думаете на счет такого варианта: Cразу после описания в <description> или в тег <param> выводим те характеристики, которые отмечены в фильтре (значит самые важные). Например вот так: if (!empty($features[$p->product_id])) { foreach($features[$p->product_id] as $feature) { print " <p
  18. Мы все знаем, что одно из самых узких мест в Simpla является ужасный поиск товаров. Но есть решение, которое может все изменить. Недавно команда Яндекса выпустила в бетатестирование новый полноценный поиск для интернет магазинов. https://tech.yandex.ru/sitesearch/shopsearch/ Он понимает запросы в свободной форме, исправит ошибки и опечатки, выводит подсказки, разберается с разными вариантами написания названий. Сам результат можно отфильтровать по категории, по наличию в продаже, по ценовому диапазону. Можно быстро и легко подключить страницу с поиском, но стилизованную яндексом. Для это
  19. Пробовал. Вся проблема в том, что они не сформируются пока не пройдешься руками по всем товарам, а прайс необходимо формировать автоматически.
  20. Пытаюсь добавить картинки в Excel-прайс с помощью библиотеки PHPExcel. Для добавления картинки нужно указывать адрес типа: /home/web/site.com/www/files/products/kartinka.250x250.jpg dirname (dirname ( __FILE__ ) ) . '/files/products/'.preg_replace('@\.([^\.]+)$@', '.250x250.\1', $p->image); Такая конструкция выдает вроде бы правильный путь, но картинка по факту не существует. То есть не сгенерирована. Генерация происходит уже после того как зайти по этому урлу. http://site.com/files/products/kartinka.250x250.jpg $simpla->design->resize_modifier($p->image, 250, 250) Вот так
  21. Добрый вечер, форумчане. Движок оброс множеством доработок, приличным трафиком и ~10000 товарами. Приключилось все еще на хостинге, что привело меня к переезду на VDS. Характеристики машины: CPU: 4 Core RAM: 4096 Mb Диск: 20 Gb,SSD А приключилось следующее: При неизвестных мне обстоятельтвах, mysql не хватает памяти выполнить некоторые запросы. Он сбрасывает кеш на диск и сбрасывает его до тех пор, пока не займет все пространство на диске, что приводит к блокировке всех сервисов, как mysql, так и php. В логе ошибок PHP - все кристально чисто. mysqltuner - говорит, что конфиги правильно
  22. Яндекс время от времени меняет свою верстку, что убивает наш любимый парсер. Это рабочий на данный момент парсер (надолго ли?) Скачать
  23. Вся загвоздка в том, что бы вывести поля находящиеся в таблице юзера(зарегистрированного),который сделал заказ, а не самого заказа. В order.tpl спокойно выводятся такие вещи как: {$user->company|escape} Как такое можно вывести в админке в orders.tpl ? Спасибо.
×
×
  • Create New...