Разделы

[Revo] Магазин miniShop 1.0.1. beta1

Репозиторий MODX

Исходный код на Github

Демонстрационный сайт

Категории и товары


Все товары и категории располагаются в дереве ресурсов. Очень советую для отличия одних от других использовать разные шаблоны. Также, категории должны быть контейнерами.
Шаблоны для них должны быть указаны в системных настройках компонента (Переключите namespace на minishop).
Там же нужно изменить номер статуса для нового заказа (1 по умолчанию, уже установлен)
Отвечаю на вопрос, почему все хранится в ресурсах:
1. Можно использовать ТВ параметры.
2. Можно использовать контексты.
3. Можно использовать все стандартные сниппеты.
4. Можно использовать группы ресурсов и права доступа.
5. Из коробки работает кэширование.
6. Дружественные урлы для каждого товара.
Можно продолжить самостоятельно.

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

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

Склады.


Компонент поддерживает неограниченное количество складов.
Отдельно настраиваются параметры для каждого. Доставка, адрес, почта для приема сообщений о заказе и т.д.
Вы можете не использовать эту возможность, но как минимум один склад для работы должен быть (по умолчанию создается).

У товаров есть пока 4 основных свойства: артикул, изображение, цена и остаток. Все 4 свойства привязаны к соотношению склад-товар.

То есть, у вас как бы все товары одновременно есть на всех складах, но везде могут иметь разные свойства (или одинаковые). Это дает богатые возможности по управлению.

Отображать товар на сайте можно с помощью остатка на текущем складе. Если остаток 0 — не выводить товар, или не давать заказать.

Мультикатегории.


У каждого товара есть своя основная категория (контейнер, в котором он находится) и могут быть дополнительные — их вы задаете в его настройках. При выводе товаров через сниппет msGetGoods все позиции достаются в соответствии с категориями и передаются в getResources (он требуется, да).

Таким образом, один товар выводится в разных категориях.

Статусы.


Можно создать сколько угодно статусов для заказов и переключать их в любом порядке. Каждому статусу можно настроить уведомление на почту покупателя и менеджера (разные заголовки тела писем).

При установке создается статус «Новый» с включенными уведомлениями.
Уведомление менеджеру идет на почту склада (можно указать их там несколько, через запятую).

При переключение статуса заказа в компоненте это действие сохраняется в историю изменения заказа и высылается (или не) уведомление, в соответствии с настройкой этого статуса.

Каталог на сайте


Все операции с корзиной, добавлением\удалением товаров, оформлением заказа работают через Ajax.
Обязательны jquery 1.7+, jquery.form 2.8+ и friendly urls.

Вообще, на мой взгляд, фронтенд пока слабоват, но не понятно что народ хочет.
У всех разные требования к оформлению заказа, регистрации юзеров и т.д. Поэтому смотрите $_SESSION['minishop'] и пишите свои сниппеты, если что.

В моем варианте оформления заказа юзер идентифицируется по email, если его нет в базе, то он регистрируется со случайным паролем (потом можно сделать сброс и изменение на свой — вот и регистрация =)). Заказ и адрес доставки привязываются к этому юзеру. Адрес можно изменить в админке у свойств заказа. Кол-во товаров там же можно поменять.

В основном классе есть зачатки для выбора из этих адресов при заказе, но пока все закомментировано — ибо нестабильно.

После оформления заказа сессия юзера очищается.

При работе с корзиной возвращается json строка со статусом, сообщением, кол-вом товаров и суммой корзины.

Заключение.


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

Как их использовать я напишу позже (во всяком случае постараюсь), но вы всегда можете посмотреть на демонстрационный сайт.
Также смотрите описание чанка\сниппета, там указано зачем они.

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

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

P.S. Старую тему спрятал в черновики, полезные советы прочитал и запомнил, повторять не нужно =)
Еще очень прошу, перед задаванием вопросов смотреть на демонстрационный сайт — там все работает и я специально открыл просмотр чанков и сниппетов.

Ошибки прошу указывать на Github.

UPD.
На демонстрационном сайте забил 15000 товаров в БД, по 500 в одной категории.

Время загрузки страницы категории с получением параметров товара из отдельной таблицы 1-2 секунды. При том, что в чанке во всю импользуется phx.

По моему, неплохо.

UPD. 2
Версия 1.0.1 beta1
Добавил создание товаров сразу из компонента. При обновлении почистить кэш, чтобы админка обновилась.
  • +6
  • 10 февраля 2012, 21:44
  • bezumkin

Комментарии (238)

RSS свернуть / развернуть
+5
Замечаний пока нет, но хочется сказать спасибо за труд и публикацию :)
avatar

Neolot

  • 10 февраля 2012, 21:47
0
Супер! ++++
avatar

vanchelo

  • 10 февраля 2012, 22:01
0
Кстати, инструкция, как собирать свежую версию из github.

Заходим в корень сайта (там где assets и core), набираем:
git clone git://github.com/bezumkin/miniShop.git
Появляется директория miniShop. Переходим в нее, там в _build и запускаем:
php build.transport.php
Внимательно изучаем, что пишет сборщик.

Если нет ошибок — идем в менеджер пакетов, добавляем локальный пакет (предварительно нужно удалить старый, так как версия не изменилась) и устанавливаем.

Если есть ошибки (возможно, что-то с путями не совпадет) — смотрим где на что ругается и чиним.

Если что, собранный пакет должен быть в /core/packages.
avatar

bezumkin

  • 11 февраля 2012, 11:14
0
Cсылка на git побилась. Вот верная команда:

git clone git://github.com/bezumkin/miniShop.git
avatar

bezumkin

  • 11 февраля 2012, 11:15
0
спасибо. забираю ;)
avatar

viktormatush

  • 11 февраля 2012, 18:26
0
Можно здесь по подробнее?
Можно ли заполнять свойства товара при создании нового ресурса? чтобы каждый раз не ходить в компонент?
// Сессия и ТВ с ценой
$c['sess_name'] = 'minishop';
avatar

vanchelo

  • 13 февраля 2012, 02:15
0
Пока нельзя.

А этот кусок нигде не используется, забыл удалить.
avatar

bezumkin

  • 13 февраля 2012, 10:26
0
Вопрос о вложенности категорий!!! Если у меня в категории есть вложенные категории как мне отключить их вывод в компоненте во вкладке товары, а то получается что категории отображаются в списке товаров?
avatar

vanchelo

  • 13 февраля 2012, 23:30
0
Должны быть разные шаблоны у товаров и категорий. Плюс, у категории должен быть isfolder = 1, то есть она — контейнер.
avatar

bezumkin

  • 13 февраля 2012, 23:31
0
Спасибо, точно, шаблоны поменял все встало на места!
Еще вопрос теперь в выводе категорий у которой вложенная категория как сделать чтобы отображались только товары явл. непосредственными детьми, и чтобы другие категории в ней не отображались
avatar

vanchelo

  • 13 февраля 2012, 23:38
0
Получается если я перехожу в верхнюю категорию в ней отображаются все товары её дочерних категорий
avatar

vanchelo

  • 13 февраля 2012, 23:39
0
Ну да. Мне кажется, это логично, нет?
avatar

bezumkin

  • 13 февраля 2012, 23:46
0
Никак. Для этого и есть фильтр по категориям над таблицей + строка поиска. С помощью фильтра (у которого есть автодополнение) можно включать сразу нужную дочернюю категорию.

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

Кат1
  -- кат 2
    -- прод1
    -- прод 2 итд
  -- кат 3
    -- прод 15
  -- кат 4
Кат 20


Посмотрю, сколько людей будут на это ругаться =)
Если много — буду думать как оптимизировать.
avatar

bezumkin

  • 13 февраля 2012, 23:43
0
Ясно! Надо что-т самому думать как вывести список товаров во фронтенде относящийся только к текущей категории.
avatar

vanchelo

  • 13 февраля 2012, 23:45
0
&depth=`1`
avatar

bezumkin

  • 13 февраля 2012, 23:48
0
Сначала так и сделал = ))) Но это не помогло!
Чанк Content.category
<div id="content" class="category">
  <h1>[[*longtitle:default=`[[*pagetitle]]`]]</h1>
  
  [[!getPage?
    &element=`msGetResources`
    &tpl=`tpl.msGoods.row`
    &limit=`15`
    &sortby=`pagetitle`
    &sortdir=`ASC`
    &depth=`1`
    &where=`{"isfolder:=":"0"}`
  ]]
  
  <div class="pagination">
    <ul>
      [[!+page.nav]]
    </ul>
  </div>
</div>

&where=`{"isfolder:=":"0"}`

Чтобы только товары отображались
avatar

vanchelo

  • 13 февраля 2012, 23:57
+1
Верный способ. У вас же выходит подкатегории и есть первый уровень, вот на них &depth и не действует. Можно было, кстати, по шаблону отфильтровать.

Не думаю, что это ошибка. У вас в категории подкатегории — вы их и выводите. Или прячете. Все как обычно.

В этом преимущество хранения товаров в ресурсах — вы сами можете отфильтровать как захотите.

А в админке я поправлю проблему с выводом категорий в товарах.
avatar

bezumkin

  • 14 февраля 2012, 00:03
0
Спасибо за мгновенную реакцию =)
avatar

vanchelo

  • 14 февраля 2012, 00:05
0
Понял в чем косяк!
[[!getPage?
    &element=`msGetResources`
    &tpl=`tpl.msGoods.row`
    &limit=`15`
    &sortby=`pagetitle`
    &sortdir=`ASC`
    &depth=`0`
    &where=`{"isfolder:=":"0"}`
  ]]

Глубину нужно было 0 ставить. 1 — опускается на уровень ниже
avatar

vanchelo

  • 14 февраля 2012, 00:02
0
Точно!

Вечно путаю. У Wayfinder &level=1 а у getResources &depth=0 =)
avatar

bezumkin

  • 14 февраля 2012, 00:04
0
вот и я так спутал =)
avatar

vanchelo

  • 14 февраля 2012, 00:04
0
Поспешил! Не помогает! Если выбираю категорию из списка в ней отображаются другие категории! Шаблон «Категория» и галка контейнер стоит!
avatar

vanchelo

  • 13 февраля 2012, 23:42
0
Ну, это какой то баг =)

Дадите доступ к админке, поглядеть?
avatar

bezumkin

  • 13 февраля 2012, 23:44
0
дам
avatar

vanchelo

  • 13 февраля 2012, 23:46
0
Когда один склад. И я в свойствах товара ставлю галку для всех складов, галка дожна оставаться активной?
avatar

vanchelo

  • 14 февраля 2012, 00:14
0
Неа. Это просто переключатель, чтобы при сохранении данные записались во все склады. То есть, это не свойство товара, это сигнал форме. Там при наведении во всплывашке расписано.

Вам она вообще не нужна, при одном то складе.
Это надо когда 2 и более склдаов, при заведении товара, чтобы не прописывать несколько раз одно и тоже (ну если везде цены одни и артикул).
avatar

bezumkin

  • 14 февраля 2012, 00:17
0
спасибо за разъяснния)
avatar

vanchelo

  • 14 февраля 2012, 00:26
0
При добавлении товара в корзину вываливается ошибка в консоле
JSON.parse: unexpected character

В чем косяк? Не могу понять
avatar

vanchelo

  • 14 февраля 2012, 02:53
0
$.post(url, {action: 'addToCart', gid: 9}, function(data) {
alert(data);
})
Результат выполнения этого кода почему-то вся страница целиком, вместо строки JSON! Где может быть косяк?
avatar

vanchelo

  • 14 февраля 2012, 06:58
0
Разобрался в чем косяк был, не был вызван на странице сниппет [[!miniShop]]. Документации не хватает!

И еще в сниппете шаблон корзины назван как tpl.msCart.outer.
Но в чанках он назван tpl.msCart.
Так должно быть или нет не знаю, но я в сниппете переименовал его на tpl.msCart.

Кстати на демо сайте присутствуют два эти сниппета с идентичным содержимым!
avatar

vanchelo

  • 14 февраля 2012, 07:21
0
Спасибо, поправил.

Выложил beta3.
avatar

bezumkin

  • 14 февраля 2012, 11:25
0
установил минишоп 18, а пишет beta2 — это бета 3 или всё же бета 2? спасибо за компонент.
avatar

viktormatush

  • 22 февраля 2012, 23:34
0
* 18 февраля
avatar

viktormatush

  • 22 февраля 2012, 23:34
+1
Тут речь о 1.0.0 beta3

А сейчас 1.0.1 beta2
avatar

bezumkin

  • 22 февраля 2012, 23:36
0
17 — 18 строка /core/components/minishop/elements/snippets/minishop.php
// Сессия и ТВ с ценой
$c['sess_name'] = 'minishop';


Вроде бы как хотели удалить в новой бете?
avatar

vanchelo

  • 14 февраля 2012, 17:12
0
Да забыл. Она кушать и пить то не просит =)
avatar

bezumkin

  • 14 февраля 2012, 18:00
0
:)
avatar

vanchelo

  • 14 февраля 2012, 18:14
0
на первый взгляд просто восхитительно! не смог найти список принятых во внимание пожеланий, поэтому рискну пожелать:
— регистрация и логин юзеров через логинзу (в shopkeeper прикручивал без проблем)
— страница «мои заказы» для зареганных юзеров с отслеживанием статуса товара
— смс сообщения об изменении статуса
— создание каталога в отдельном контексте
avatar

Dronowar

  • 14 февраля 2012, 17:25
+1
— создание каталога в отдельном контексте
Помойму это реализуется вне зависимости от компонента?
avatar

vanchelo

  • 14 февраля 2012, 17:31
0
Да, так и есть. Просто хочется понять картину в целом, те. как лучше? Например в шопкипере для переключения контекстов используется отдельный плагин (хотя и с помощью создания папки и дублирования index.php работает, зачем тогда нагружать плагином...). Да и потом, я так и не смог логинить юзеров с помощью логинзы в оба контекста сразу. В общем хочется пощупать это в демо.
avatar

Dronowar

  • 14 февраля 2012, 18:09
0
Там отдельные параметры есть. loginContext и addContexts по примеру сниппета Login. Можно в исходник посмотреть и поправить, если что.

Исследовательской работой мне сейчас заниматься некогда, если честно.

avatar

bezumkin

  • 14 февраля 2012, 18:13
0
— У меня есть целое расширение Loginza.
— Это будет, но позже.
— Это как-нибудь пока без меня. На мой взгляд, емайла за глаза.
— Товары-ресурсы. Делайте хоть 10 контекстов, от компонента никак не зависит.
avatar

bezumkin

  • 14 февраля 2012, 18:03
0
ясно, еще вопрос данные о заказе и контакте хранятся в базе в отдельной таблице или в modResource?
avatar

Dronowar

  • 14 февраля 2012, 18:22
0
Вы видите заказы в дереве ресурсов?
avatar

bezumkin

  • 14 февраля 2012, 18:25
0
в демо урезано все, может где спряталось )
я к тому что в шопкипере в таблице заказов хранится все в таком виде что нужно функцию вызывать и применять шаблон. Тыкнулся просто написать снипет личного кабинета юзера для шопкипера. Вот и интересно стало как заказы у вас хранятся.
avatar

Dronowar

  • 14 февраля 2012, 18:30
0
Все отдельно, конечно.

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

Смотрите на сниппеты, там подключается класс. После этого можно делать просто:
$order = $modx->getObject('ModOrder', $id);

avatar

bezumkin

  • 14 февраля 2012, 18:32
0
это ясно, просто в шопкипере в таблице заказов поле content (описание самого заказа):
a:1:{i:0;a:4:{s:5:"count";d:1;s:2:"id";s:1:"7";s:4:"name";s:10:"Товар";s:5:"price";i:0;}}

я надеюсь что у вас там попроще все
avatar

Dronowar

  • 14 февраля 2012, 18:48
0
Не факт =)

Тут json строка, а у меня заказы в ModOrders, товары заказа в ModOrderedGoods, а адрес заказа ModAddress.

Короче, развлекайтесь.
avatar

bezumkin

  • 14 февраля 2012, 18:50
0
Помогите разобраться) Установил чистую Modx 2.2, установил с репозитория пакет miniShop… создал два шаблона(один для категории, второй для товара), в настройках заменил на их id, создал в ресурсах категорию «Каталог» с шаблонам «категории» и в свойствах поставил контейнер. В этой категории создал обычный документ с шаблоном товаров… Но в админке компонента, во вкладке товары ничего не отображается?! Может я что не так делаю? Спасибо!
avatar

tist

  • 14 февраля 2012, 19:05
0
Либо это кэш, либо глюк.

Киньте в ЛС данные для админки, я гляну.
avatar

bezumkin

  • 14 февраля 2012, 19:08
0
У меня на локалке.
avatar

tist

  • 14 февраля 2012, 19:09
0
Тогда сверяйте свой настройки с настройками на демосайте, и почистите кэш.

avatar

bezumkin

  • 14 февраля 2012, 19:10
0
Кэш чистил! А к системным настройкам на демо доступа нету.
avatar

tist

  • 14 февраля 2012, 19:24
0
Там и никаких настроек практически нет! Они вам не помогут!
avatar

vanchelo

  • 14 февраля 2012, 20:08
0
тогда я без понятия что за магия…
avatar

tist

  • 14 февраля 2012, 20:10
0
Так кто-нить может что-нибудь посоветовать?
avatar

tist

  • 14 февраля 2012, 20:14
0
Неа. У нас работает.
avatar

bezumkin

  • 14 февраля 2012, 20:20
0
Ошибка в коде коннектора /goods/getlist.php
$c->where(array('modResource.deleted' => false, 'modResource.template:IN' => $goods_tpls, 'ModGoods.wid' => $warehouse));

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

Если нет ни одной записи в таблице ModGoods — то ничего не выводится. Должен быть хоть один товра, для срабатывания поиска.

Это мой косяк, вылезает только при чистой установке. Поправлю.
avatar

bezumkin

  • 14 февраля 2012, 20:53
0
спасибо!
avatar

tist

  • 14 февраля 2012, 20:54
0
А что, если для параметры товаров использовать TV — то бишь для каждого типа товаров создавать отдельный шаблон? Тогда, конечно, будет куча шаблонов, но всё будет средствами modx и можно будет делать неограниченное количество параметров.
avatar

qwedy

  • 22 февраля 2012, 00:29
0
Правда мультикатегории тогда придётся использовать как тэги…
avatar

qwedy

  • 22 февраля 2012, 00:31
0
И много у вас уникальных типов товаров? Может, вам нужен специализированный движок-магазин, а не расширения для MODX?

В последней версии магазина для товаров добавлены 3 дополнительных поля.

Одно можно использовать для указания типа, второе — для хранения свойств в виде json-массива. Третье еще и про запас остается.

Я не знаю особенностей вашей задачи, но попробуйте так.
avatar

bezumkin

  • 22 февраля 2012, 05:26
0
подскажите в этом массиве можно хранить и передавать в корзину данные, например, о выбранном размере товара или нескольких параметров?
avatar

viktormatush

  • 28 февраля 2012, 20:22
+1
Конечно, хранить в нем можно все, что угодно, только нужно будет отдельно доставать и обрабатывать.

В новой (сегодняшней) версии все свойства товаров выводятся сразу в корзину — но у вас там выведется недекодированный json массив. Это можно легко решить собственным простым фильтром.

Например, вывод цвета из такого массива: [[+add3:get_color]]
if ($arr = json_decode($input, 1)) {
  return $arr['color'];
}

Понятен принцип?

Учтите, что вы можете хранить сразу текстовые значения во всех трех дополнительных параметрах. А вот если их уже не хватает — тогда можно и массивы в add3 пихать.
avatar

bezumkin

  • 28 февраля 2012, 20:30
0
сегодня днём проапдейтился, значит я могу этот массив add3 смело использовать?
avatar

viktormatush

  • 28 февраля 2012, 21:08
+1
Я выложил обновление часа 2 назад.

Можно было и раньше использовать, просто приходилось доставать через msGetGoodsPlaseholder — не очень удобно.

В общем, попробуйте — у меня на демо сайте посмотрите новые чанки для корзины, если что.
avatar

bezumkin

  • 28 февраля 2012, 21:19
0
Пробуем сделать так
jQuery.post("/cart.html", {
                "action": "addToCart",
                "gid": pid,
	        "add3": {
		  "size": psize,
		  "color": pcolor,
		  "butic": pbutic
	      }

Делаю 1 в 1 [[+add3:get_size]]
<?php
if ($arr = json_decode($input, TRUE)) {
  return $arr['size']; // ключ для размера
}
Товары добавляет, размер не выводит. Можете подсказать в чём ошибка?
avatar

viktormatush

  • 2 марта 2012, 01:33
0
Товары хранятся в корзине так:
id, цена, кол-во.

При изменении корзины возвращается кол-во товаров и их сумма.

Если у вас размер — это свойство товара — просто добавьте соответствующий плейсхолдер в чанк вывода строки с стоваром в корзине.
avatar

bezumkin

  • 2 марта 2012, 06:30
0
Как можно сделать чтобы в компоненте при двойном клике открывалось не окошко редактирования товара, а редактирование конкретного поля по которому кликнули, так как это сделано при редактировании параметров сниппетов плугинов шаблово и всего остального
avatar

vanchelo

  • 22 февраля 2012, 06:15
0
Никак.
avatar

bezumkin

  • 22 февраля 2012, 06:20
0
И на этом спасибо)
avatar

vanchelo

  • 22 февраля 2012, 06:28
-1
В админке MODX по умолчанию сделано так:
1. Нужно кликнуть 2 раза на строке, на нужном поле.
2. Откроется инпут или комбобокс.
3. Вносите изменение.
4. Жмете ентер или кликаете в сторону.

Это неплохо, если нужно поменять только один параметр. А если 2? Тогда число кликов уже удваивается и явно проигрывает тому, что есть сейчас:

1. Два клика на строку левой кнопкой, либо один правой, потом левой.
2. Открывается окно, в котором можно менять любые параметры товара за раз, включая категории.
3. Сохранение либо по кнопке, либо shift+enter.

На мой взгляд, окно гораздо функциональнее и не менее эргономично. Поэтому, я сделал все манипуляции в магазине именно через окна.
avatar

bezumkin

  • 22 февраля 2012, 06:34
0
Как убрать/добавить дополнительные поля в оформлении заказ. И связать их с админкой и отчетом на email?
Возможность редактирования заказа в админке, убрать добавить товар, изменить дополнить сведения клиента
avatar

vanchelo

  • 22 февраля 2012, 06:18
-1
Написать свой интернет-магазин.
avatar

bezumkin

  • 22 февраля 2012, 06:20
0
Понял =)
avatar

vanchelo

  • 22 февраля 2012, 06:28
0
Кстати, возможность редактирования заказа то в админке присутствует во всей красе.

Изменить\дополнить адрес клиента для доставки также возможно.

avatar

bezumkin

  • 22 февраля 2012, 06:37
0
Это в последней версии можно?
avatar

vanchelo

  • 22 февраля 2012, 06:40
0
Это с самого начала.

awesomescreenshot.com/0009emb5
awesomescreenshot.com/05b9en54
avatar

bezumkin

  • 22 февраля 2012, 06:43
0
Версия 1.0.1 beta1 — можно изменить кол-во товара на 0, но удалить нет возможности (просто интересно как сделать).
Редактирование сведений клиента нашел! =)

Вы не обижайтесь что я в такой форме пишу свои замечания, они скорее просто мои желания.
avatar

vanchelo

  • 22 февраля 2012, 06:45
0
Попробуйте кликнуть правой кнопкой мыши, навести на строчку «Удалить товар» и там кликнуть левой.

Наверняка, вы увидите вот такое окно.

У вас как там, на мышке, с правой кнопкой все хорошо?
avatar

bezumkin

  • 22 февраля 2012, 06:48
0
Нет такого окошка, попробую переустановить пакет заново!
avatar

vanchelo

  • 22 февраля 2012, 06:56
0
Установил последнюю версию, сделал заказ, захожу в админку, свойства заказа, выбираю товары, кликаю правой кнопкой, контекстного меню нет
avatar

vanchelo

  • 22 февраля 2012, 07:02
0
Так вы хотите удалить товары из заказанного покупателем списка?!

Так нельзя. Я еще понимаю, изменить кол-во товаров в заказе (ну мало ли), но удалить вообще товар задним числом — зачем?!

Чтобы менеджеры с кривыми руками радовали хозяина сайта и покупателей?
avatar

bezumkin

  • 22 февраля 2012, 07:10
+1
Такое часто бывает что клиент либо что-то передумывает покупать либо что-то другое ему посоветуют.
Если статус заказа стоит Новый, то почему бы не удалить товара из списка, и после этого отправить сообщение повторно!
Многие леняться повторно делать заказ
avatar

vanchelo

  • 22 февраля 2012, 07:13
-1
Клиент товар заказал. Это сохранено в истории.

Если передумал (и такое часто бывает) — ставьте кол-во 0. Будет понятно, что товар он заказывал и передумал.
avatar

bezumkin

  • 22 февраля 2012, 07:15
+1
Да, редактирование товара — очень нужная штука. Вы правы.
avatar

Carw

  • 22 февраля 2012, 12:15
0
Кстати, в последней версии в админке компонетнта, на вкладке товары, при 2-ом клике на товаре открывается окошко с незаполненной ценой и т.д. т.е с пустыми значениями, по если через контекстное меню редактировать то все заполнено
avatar

vanchelo

  • 22 февраля 2012, 07:05
0
Исправлено 6 дней назад

Вы после обновлений кэш вообще чистите?
avatar

bezumkin

  • 22 февраля 2012, 07:07
0
Обязательно!!! Пробовал и через админку чистить кэш и через фтп содержимое папки cache удалял. Кэш браузера чистил.
avatar

vanchelo

  • 22 февраля 2012, 07:10
0
В хроме вообще пустое окошко, в лисе отображаются данные товара которого первым кликнуть
avatar

vanchelo

  • 22 февраля 2012, 07:16
0
На демо-сайте всегда стоит последняя версия из репозитория.

И сейчас там все ок.
avatar

bezumkin

  • 22 февраля 2012, 07:17
0
Починил
avatar

vanchelo

  • 22 февраля 2012, 07:22
0
А при выборе склада корзина и должна очищаться?
avatar

Zinich66

  • 22 февраля 2012, 15:18
0
Да.

На складах ведь могут быть совсем разные свойства у товаров. Да и в наличии чего-то может не быть.

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

bezumkin

  • 22 февраля 2012, 15:20
0
Ясно. Спасибо. Буду переписывать, если Вы не против.
avatar

Zinich66

  • 22 февраля 2012, 15:26
0
Там одну строчку закомментировать в msChangeWarehouse на строке 5:


  	$_SESSION['minishop'] = array();


При обновлении сниппет перезапишется, так что лучше переименуйте его, чтобы изменения сохранялись.
avatar

bezumkin

  • 22 февраля 2012, 15:34
0
Спасибо. Я именно хочу переписать, для пересчета товаров со склада выбранного… а чего нет — в отдельную сессию. и сообщать, что эти товары будут дольше ехать.
avatar

Zinich66

  • 22 февраля 2012, 15:39
0
Ясно, удачи.
avatar

bezumkin

  • 22 февраля 2012, 15:40
0
Можете выложить архивом демо магазин и выгрузку из базы? Сложно понять что к чему без руководства и просмотра админки. Просмотр менеджера мало что даёт и сейчас туда не попасть даже. Спасибо.
avatar

viktormatush

  • 23 февраля 2012, 04:43
+1
Там в принципе все понятно, тупо копируйте код из 3-х шаблонов, подключите все скрипты, поменяйте шаблоны в настройках системы:

minishop.categories_tpl
minishop.goods_tpl

укажите айди Ваших шаблонов,

Дальше создайте ресурс с корзиной, и пропишите его в сниппете miniShop, укажите айди Вашей страницы с корзиной:

// Страницы работы с заказом
$c['page_cart'] = 12; (12 — айди моей корзины)

И еще один момент, в шаблоне корзины. на демо сайте он указан как Main, обязательно добавьте вызов сниппета [[!miniShop]], промучался целый день пока вкурил что да как.

На странице товара добавьте ссылку с атрибутами Корзина, чтобы динамически отображалось кол-во товаров в корзине, остальное, в принципе, все на демо сайте есть.

Меня же интересует другой вопрос, только начиная осваивать рево, как выполнить запрос, примерно такой:

SELECT `modx_ms_modOrders`.`id`, `modx_ms_modOrders`.`uid`, `modx_ms_modOrders`.`status`, `modx_ms_modOrderedGoods`.`gid`, `modx_users`.`username` FROM `modx_ms_modOrders` LEFT OUTER JOIN `modx_ms_modOrderedGoods` ON (`modx_ms_modOrders`.`id` = `modx_ms_modOrderedGoods`.`oid`) INNER JOIN `modx_users` ON (`modx_ms_modOrders`.`uid` = `modx_users`.`id`) WHERE `modx_ms_modOrders`.`status` = 2

Нужно ли для этого xPDO?

Суть такая, у меня клиент покупает не товар, а доступ к платному контенту (журналу), когда клиент сделал заказ и я его перевел в статус «выполнен», клиенту должен отображаться тот самый контент, в противном случае — какой-то месседж о необходимости покупки.

В принципе, это симбиоз miniShop и PasswordRequired от гуру Безумкина, может чего-то гуру подскажет? Спасибо.
avatar

Klim872

  • 23 февраля 2012, 05:50
0
спасибо за подсказки.
// Страницы работы с заказом
$c['page_cart'] = 12; (12 — айди моей корзины)
— вот это я бы долго догадывался.
Сейчас проблема — жму на «Добавить в корзину» и ничего не происходит. :(
avatar

viktormatush

  • 23 февраля 2012, 05:58
0
Подключите все библиотеки в хэде, я начал с того, что тянул все с демо-сайта. Попробуйте во всех шаблонах в хэде прописать:












Если работать не будет, то дело не в них =) Да, Фрэндли-урлы включили?
avatar

Klim872

  • 23 февраля 2012, 06:00
0
Сорри, вот код:

<head>
      <script src="http://minishop.bezumkin.ru/inc/js/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.fancybox.pack.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.mousewheel.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/assets/components/minishop/js/web/minishop.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/assets/components/minishop/js/web/jquery.stickr.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/jquery.form.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/main.js" type="text/javascript"></script>

    <link href="http://minishop.bezumkin.ru/inc/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.fancybox.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/assets/components/minishop/css/web/jquery.stickr.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/inc/css/main.css" rel="stylesheet">
</head>
avatar

Klim872

  • 23 февраля 2012, 06:01
0
В хеде вроде всё подключил: 1) jquery, 2) form, 3) strickr.
ЧПУ тоже включил.
Может cufon меняет классы и мешает работе? я хз. Нужно создавать видимо свой тестовый вариант, ванилла так сказать и смотреть почему не работает о_0
avatar

viktormatush

  • 23 февраля 2012, 06:06
+1
в шаблоне корзины. на демо сайте он указан как Main, обязательно добавьте вызов сниппета [[!miniShop]]

Плюс раскэшируйте все…

avatar

Klim872

  • 23 февраля 2012, 06:08
0
раскешировал вроде и вызов есть. Ладн, я спать. Спасибо за помощь.
avatar

viktormatush

  • 23 февраля 2012, 06:17
+1
В Рево для всего нужно использовать xPDO, это легко и приятно (после некоторой привычки).
Начать можно отсюда.

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

if (!isset($modx->miniShop) || !is_object($modx->miniShop)) {
	$miniShop = $modx->getService('miniShop','miniShop',$modx->getOption('minishop.core_path',null,$modx->getOption('core_path').'components/minishop/').'model/minishop/', $scriptProperties);
	if (!($miniShop instanceof miniShop)) return '';
}

А потом можно устраивать вот такие выборки:
$c = $modx->newQuery('ModOrders');

$c->leftJoin('ModOrderedGoods', 'ModOrderedGoods', array(
	"ModOrderedGoods.oid = ModOrders.id"
));
$c->where(array('ModOrders.status' => 2));
$res = $modx->getCollection('ModOrders', $c);
foreach ($res as $v) {
  print_r($v->toArray());
}

Контролировать получающиеся запросы можно вот так:
$c->prepare();
echo $c->toSql();
die;


В сниппетах и процессорах магазина еще очень много примеров =)
avatar

bezumkin

  • 23 февраля 2012, 08:59
0
Спасибо огромное! Буду разбираться…
avatar

Klim872

  • 23 февраля 2012, 14:02
0
Спасибо огромное, вроде сделал, создал сниппет test, в котором отобразил следующее:

if (!isset($modx->miniShop) || !is_object($modx->miniShop)) {
	$miniShop = $modx->getService('miniShop','miniShop',$modx->getOption('minishop.core_path',null,$modx->getOption('core_path').'components/minishop/').'model/minishop/', $scriptProperties);
	if (!($miniShop instanceof miniShop)) return '';
}

$c = $modx->newQuery('ModOrders');

$c->leftJoin('ModOrderedGoods', 'ModOrderedGoods', array(
	"ModOrderedGoods.oid = ModOrders.id"
));
$c->where(array('ModOrders.status' => $status));
$c->where(array('ModOrders.uid' => $uid));
$c->where(array('ModOrderedGoods.gid' => $gid));
$res = $modx->getCollection('ModOrders', $c);
foreach ($res as $v) {
  print_r($v->toArray());
}


На странице товара вызвал сниппет If с такими параметрами:

[[If?
    &subject=`[[!test? &gid=`[[*id]]` &uid=`[[+modx.user.id]]` &status=`2`]]`
    &operator=`isnotempty`
    &then=`[[$pdf]]`
    &else=`У вас нет прав для просмотра документа`
]]


Т.е. если при запросе что-то выводится, тогда ему открывается статья, если запрос пустой — ничего не выводится.

Подскажите, пожалуйста, грамотно ли это реализовано и какие тут могут быть подводные камни?

Спасибо огромное еще раз!
avatar

Klim872

  • 23 февраля 2012, 15:49
+1
Сниппет нужно упростить:
if (!isset($modx->miniShop) || !is_object($modx->miniShop)) {
	$miniShop = $modx->getService('miniShop','miniShop',$modx->getOption('minishop.core_path',null,$modx->getOption('core_path').'components/minishop/').'model/minishop/', $scriptProperties);
	if (!($miniShop instanceof miniShop)) return '';
}

$c = $modx->newQuery('ModOrders');
$c->leftJoin('ModOrderedGoods', 'ModOrderedGoods', array("ModOrderedGoods.oid = ModOrders.id"));
$c->where(array('ModOrders.status' => $status, 'ModOrders.uid' => $uid, 'ModOrderedGoods.gid' => $gid));

if ($modx->getCount('ModOrders', $c) > 0) {
echo 1;
}
else {
return 0;
}


И проверяем вывод сниппета на странице
[[!test:is=`0`:then=`Не купил`:else=`[[$pdf]]`]]
avatar

bezumkin

  • 23 февраля 2012, 16:13
0
Спасибо большое! Но сниппет все возвращает 0 =(
avatar

Klim872

  • 23 февраля 2012, 17:20
0
потому, что я не указал в сниппете свои плэйсхолдеры наверное, вот балда, ща
avatar

Klim872

  • 23 февраля 2012, 17:21
0
Все, разобрался, надо было в вызов еще плэйсходлеры кинуть:
[[!test:is=`0`:then=`Не купил`:else=`[[$pdf]]`? &gid=`[[*id]]` &uid=`[[+modx.user.id]]` &status=`2`]]


Огромное Вам спасибо!
avatar

Klim872

  • 23 февраля 2012, 17:28
+1
Гораздо лучше определять переменные сразу в сниппете:
$gid = $modx->resource->id;
$uid = $modx->user->id;
$status = 2;
avatar

bezumkin

  • 23 февраля 2012, 17:38
0
Еще раз спасибо! Сделал так:

if (!isset($modx->miniShop) || !is_object($modx->miniShop)) {
	$miniShop = $modx->getService('miniShop','miniShop',$modx->getOption('minishop.core_path',null,$modx->getOption('core_path').'components/minishop/').'model/minishop/', $scriptProperties);
	if (!($miniShop instanceof miniShop)) return '';
}
$gid = $modx->resource->id;
$uid = $modx->user->id;
$status = 2;
$c = $modx->newQuery('ModOrders');
$c->leftJoin('ModOrderedGoods', 'ModOrderedGoods', array("ModOrderedGoods.oid = ModOrders.id"));
$c->where(array('ModOrders.status' => $status, 'ModOrders.uid' => $uid, 'ModOrderedGoods.gid' => $gid));

if ($modx->getCount('ModOrders', $c) > 0) {
echo 1;
}
else {
return 0;
}


Все работает =)

Планируется ли у Вас подключение платежных систем? ЛикПей, ИМХО, наиболее универсален — принимает по платежным картам.

Может я могу чем-то помочь Вам в разработке или в туториалах? Программер из меня никакой, только начинаю, но есть стремление. Если что — я всегда рад Вам помочь! Еще раз огромное спасибо!
avatar

Klim872

  • 23 февраля 2012, 17:49
0
Планируются платежные системы, но пока думаю как это сделать универсально, для всех сразу.

Помочь вы можете очень сильно написанием how-to с примерами. У меня совершенно нет на это времени, да и не очень ясно, что писать — мне изнутри не видно проблем.

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

Боб Рэй вон, целую книгу написал в итоге =)
avatar

bezumkin

  • 23 февраля 2012, 17:53
0
С удовольствием! Думаю в личке определимся что и как =)

По поводу онлайн-оплат — можно пойти по пути шопкипера — robokassa.ru

Они принимают кучу платежных систем, в том числе:
Webmoney — webmoney.ru
типов:
WMR (рубли)
WMZ (доллары)
WME (евро)
WMU (украинские гривны)
WMY (узбекские сумы)
WMB (белорусские рубли)
WMG (эквивалент золота)
Яндекс.Деньги — money.yandex.ru
Moneymail RUR — moneymail.ru
RBK Money RUR — rbkmoney.ru
EasyPay — easypay.by
Единый кошелек — w1.ru
LiqPay — liqpay.com
WebCreds — webcreds.com
Z-Payment — z-payment.ru

Подробней тут: www.robokassa.ru/ru/Currencies.aspx
avatar

Klim872

  • 23 февраля 2012, 18:04
0
Да щас все всё принимают. Отличия в процентах, договорах, личных отношениях и тд.

Поэтому делать надо так, чтобы хорошо было всем и сразу.

Чем я и займусь, в будущем.
avatar

bezumkin

  • 23 февраля 2012, 18:08
+1
Есть в планах выкладывать готовую сборку — но позже, сейчас нет времени.

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

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

P.S. демо-сайт переезжал на другой сервер, забыл открыть доступ к менеджеру. Уже поправил, можно заходить.
avatar

bezumkin

  • 23 февраля 2012, 08:48
0
<head>
      <script src="http://minishop.bezumkin.ru/inc/js/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.fancybox.pack.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.mousewheel.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/assets/components/minishop/js/web/minishop.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/assets/components/minishop/js/web/jquery.stickr.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/jquery.form.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/main.js" type="text/javascript"></script>

    <link href="http://minishop.bezumkin.ru/inc/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.fancybox.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/assets/components/minishop/css/web/jquery.stickr.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/inc/css/main.css" rel="stylesheet">
</head>
avatar

Klim872

  • 23 февраля 2012, 06:01
0
на всякий случай выкладываю рабочие шаблоны:

Шаблон Корзины:

<!DOCTYPE html>
<html>
<head>
      <script src="http://minishop.bezumkin.ru/inc/js/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.fancybox.pack.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.mousewheel.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/assets/components/minishop/js/web/minishop.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/assets/components/minishop/js/web/jquery.stickr.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/jquery.form.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/main.js" type="text/javascript"></script>

    <link href="http://minishop.bezumkin.ru/inc/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.fancybox.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/assets/components/minishop/css/web/jquery.stickr.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/inc/css/main.css" rel="stylesheet">
</head>
   
   <body>

   
	    
          </div>
        </div>
      </div>
    </div>
<div id="content" class="main">
  [[*id:gt=`1`:then=`<h1>[[*pagetitle]]</h1>`]]
[[!miniShop]]
  [[*content]]
</div>
      
    </div>
<footer>
	<div class="row">
	  <div class="span4">
	   
	    <p><small>Генерация страницы: [^t^]</small></p>
	    [[$Counters]]
	  </div>
	  <div class="span6 warehouse">
	    [[!msChangeWarehouse]]
	  </div>
	  <div class="span2 modx-logo">
	    <a href="http://www.modx.com" target="_blank">
	      <img src="/inc/img/icons/modx-logo-light.png" alt="MODX logo" title="">
	    </a>
	  </div>
	</div>
      </footer>
  </body>
</html>


Шаблон товара:

<!DOCTYPE html>
<html>
<head>
      <script src="http://minishop.bezumkin.ru/inc/js/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.fancybox.pack.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.mousewheel.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/assets/components/minishop/js/web/minishop.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/assets/components/minishop/js/web/jquery.stickr.min.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/jquery.form.js" type="text/javascript"></script>
    <script src="http://minishop.bezumkin.ru/inc/js/main.js" type="text/javascript"></script>

    <link href="http://minishop.bezumkin.ru/inc/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/inc/js/fancybox/jquery.fancybox.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/assets/components/minishop/css/web/jquery.stickr.css" rel="stylesheet">
    <link href="http://minishop.bezumkin.ru/inc/css/main.css" rel="stylesheet">
</head>
   
   <body>

    
<a href="/cart.html"id="cartLink">Корзина</a>
[[$Content.goods]]
      
    </div>
<footer>
	<div class="row">
	  <div class="span4">
	   
	    <p><small>Генерация страницы: [^t^]</small></p>
	    [[$Counters]]
	  </div>
	  
	 
	</div>
      </footer>
  </body>
</html>


Шаблон категорий не делал
avatar

Klim872

  • 23 февраля 2012, 06:10
0
как показать корзину с количеством товаров, как у вас на сайте сверху в меню? спасибо.
avatar

viktormatush

  • 23 февраля 2012, 23:13
+1
При операциях с корзиной (удаление, добавление) возвращается json-строка с массивом, с котором есть кол-во товаров, цена, статус и сообщение.

Что с ней дальше делать — вы можете посмотреть в скрипте (функция cartStatus)
avatar

bezumkin

  • 23 февраля 2012, 23:32
0
та я хотел по-простому
[[!miniShop? &tplCartOuter=`myOuterTpl`]]

где myOuterTpl:
В корзине [[+count]] шт. товара
avatar

viktormatush

  • 23 февраля 2012, 23:39
0
У сниппета miniShop есть &action=`getCartStatus`, который вернет php массив с ценой и кол-вом товаров.

Дальше можно выставить из него плейсхолдеры или сразу пропарсить какой-нить чанк.
avatar

bezumkin

  • 23 февраля 2012, 23:45
0
Например, вот такой маленький сниппет:
$arr = $modx->runSnippet('miniShop', array('action' => 'getCartStatus'));
return $modx->getChunk('вашчанк', $arr);

Чанк:
Кол-во товаров: [[+count]], цена: [[+total]]

Но такой вывод будет статичным, то есть, не будет реагировать на изменения корзины без перезагрузки страницы.

Поэтому мне больше нравится вариант с javascript, который я привел на демо-сайте.
avatar

bezumkin

  • 23 февраля 2012, 23:51
0
всё — разобрался
avatar

viktormatush

  • 23 февраля 2012, 23:37
0
Подскажите, как организовать импорт файлов, с помощью файла import_example.php?
avatar

Aplotnik

  • 24 февраля 2012, 20:22
0
Внимательно посмотреть внутрь файла. Там все довольно понятно, с комментариями. Нужно, конечно, немного понимать php.

Если вы там ничего не понимаете — то вам в топик "Объявления о работе"
avatar

bezumkin

  • 24 февраля 2012, 20:41
0
с пхп знаком, modx три дня как только начал смотреть. В файле параметры под себя подстроил, но вопрос, его использовать судя по всему нужно как сниппет… так как там вывод идет. Но несколько нюансов, куда пихать файл import.php, просматривал исходный текст бегло, поэтому каюсь, мог что то упустить…
avatar

Aplotnik

  • 24 февраля 2012, 21:18
0
Этот файл работает через консоль. Он инклудит нужные файлы и запускает движок сам, а не изнутри сайта. Это можно понять по следующим строчкам:
require_once dirname(dirname(dirname(dirname(__FILE__)))).'/core/config/config.inc.php';
include_once MODX_CORE_PATH . 'model/modx/modx.class.php';

$modx= new modX();

Соответственно, запускать его нужно из консоли сервера:
php import_example.php

Файл для иморта указывается тут:
$file = 'import.csv';	// Данные

На всякий случай — исходный код.
avatar

bezumkin

  • 24 февраля 2012, 21:37
0
Благодарю.
avatar

Aplotnik

  • 24 февраля 2012, 21:42
0
[[!getPage@mypageproperty?
&element=`msGetResources`
&parents=`[[!getReqParam? &name=`pol` &type=`GET`]]`
&tpl=`myTplGoodsRow`
&includeTVs=`1`
&processTVs=`1`
&tvFilters=`season==[[!getFilterSe]],warehouse==[[!getFilterWh]]`
&limit=`12`
&sortby=`pagetitle`
&sortdir=`ASC`
&depth=`0`
]]

Пытаюсь отфильтровать по переменным, сниппет неправильно работает, и очень тормозит. Можно ли как-то по-другому отфильтровать по переменным шаблона? Спасибо.
avatar

viktormatush

  • 1 марта 2012, 14:15
0
По складу все фильтруется автоматом — номер активного склада живет в сессии.

Season — это у вас есть такой ТВ у всех товаров? Вы фильтруете по ТВ.

По свойствам товара пока фильтровать кажется нельзя, еще не сделал.
avatar

bezumkin

  • 1 марта 2012, 14:21
0
да. я фильтрую по ТВ и в каждом товаре-ресурсе есть она. Жаль что не сделали. Думаю мне прямая дорога в &where, если и она не заработает, тогда xPDO =(((
avatar

viktormatush

  • 1 марта 2012, 14:23
+1
Вы можете все отработать на обычном getResources.

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

В ближайшее время сделаю, возможно даже завтра.

P.S. фильтрация по ТВ и вызов кучи сниппетов в кач-ве аргументов — это очень небыстрая задача. Старайтесь отказываться от ТВ — у товаров есть дополнительные поля.
avatar

bezumkin

  • 1 марта 2012, 14:28
0
А варианты доставки на странице оформления заказа как включить?
Смотрю что код связазнный с варинатами доставки почти везде закоментирван.
avatar

vanchelo

  • 1 марта 2012, 22:44
+2
магазин Безумкина настолько популярен, что его даже в бете разбирают как горячие пирожки =)
avatar

viktormatush

  • 1 марта 2012, 23:25
0
Да я пока сам не знаю, как включить =)

Но если есть хоть немного навыков в xPDO, то вы найдете объект ModDelivery =)
avatar

bezumkin

  • 1 марта 2012, 23:39
0
Мне пока сильно нравится ваша разработка! =)
avatar

vanchelo

  • 2 марта 2012, 00:24
+1
Очень рад!

Дальше будет только лучше.
avatar

bezumkin

  • 2 марта 2012, 00:25
0
Я и не сомневаюсь=)
avatar

vanchelo

  • 2 марта 2012, 01:30
0
Здравствуйте,
Делаю сайт одного известного бренда, у меня вопрос, я установил Babel для мультиязычности и получилось 10 контекстов, так как сайт содержит ещё дополнительные ресурсы, то с переводом на 10 языков проблем нету.
Теперь я не могу понять, подскажите в каком направлении мне идти.
1) Мне нужно весь тавар скопировать 10 раз — т.е. в разные контексты?
(Да, на каждый товар-ресурс около 9 TV)
2) как мне следить за товаром, ведь тавар один а id ресурсов 10?

Пока всё, заранее спасибо за ответ.
avatar

Gera

  • 4 марта 2012, 02:39
0
Понятия не имею, что вам посоветовать.

Думаю, тут miniShop просто не подойдет.
avatar

bezumkin

  • 4 марта 2012, 02:44
0
Спасибо за столь быструю реакцию на вопрос!
Жаль, я столько надежд на него имел.
Теперь нужно снова думать.
avatar

Gera

  • 4 марта 2012, 02:53
0
Если товар называется везде одинаково — то можно создать 10 складов и разрулить таким образом.

Даже если и разные названия — их можно хранить в дополнительном поле №3 json-строкой с массивом (контекст => название). А при заходе в контекст переключать склад в сессии и доставать всегда товары из одного, основного, контекста.

В принципе, может сработать.

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

bezumkin

  • 4 марта 2012, 03:07
0
Еще подумал.

10 складов не нужно. Достаточно одного склада.

В принципе, теперь мне кажется, что мой компонент вам может помочь.
avatar

bezumkin

  • 4 марта 2012, 03:13
0
Спасибо за советы.
Название везде одинаковые, только некоторые моменты в товарах отличаются языком, но я так понял, то, что часто используюется, можно записать в лексикон.
А вот описание разное. Но, спасибо за идеи, надеюсь что-то придумаю. Буду пробовать.
Сразу встречный вопрос, какие системы оплат уже есть? Меня интересует PayPal (если ещё нету, тогда поделюсь когда сделаю)
avatar

Gera

  • 4 марта 2012, 03:16
0
Оплат никаких нет, но сложностей не возникнет, я думаю.

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

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

Если описание разное — то создавайте 10 складов и на каждом складе у товара будут разные свойства, для длинного описания лучше использовать третье дополнительное поле, для короткого — первые 2, там строка до 255 символов.
avatar

bezumkin

  • 4 марта 2012, 03:20
0
спасибо, я уже немного разобрался.
С оплатой вы правы, там всё логично, прикрутить PayPal на мой взгляд проблем не будет.
С описанием, я подошел немного с другой стороны (сейчас ещё просмотрю ваш вариант), я создал дополнительную таблицу и модель, и по id товара думаю брать данные в зависимости от контекста.
В админки немножко нужно будет мне добавить в грид, дополнительные поля — т.е. мои контексты и связать их джоинами с моей дополнительной таблицей.
Извините, возможно не внятно объяснил, но идея родилась именно такая.
Сейчас посмотрю реализацию по вами предложенному варианту.
avatar

Gera

  • 4 марта 2012, 03:32
0
Так как вы говорите будет замечательно работать.

Но обновления магазина вы уже не поставите (ну или после апгрейда придется прописывать заново все свои добавки)

Просто имейте в виду, магазин еще активно развивается.
avatar

bezumkin

  • 4 марта 2012, 03:35
0
да, тоже об этом подумал. Обновление — это не маловажный параметр.
Спасибо за советы, буду думать как с наименьшим ущербом для себя всё это сделать.
avatar

Gera

  • 4 марта 2012, 03:39
0
Удачи, пишите если что сразу на мыло.
avatar

bezumkin

  • 4 марта 2012, 03:40
0
А еще я забыл про мультикатегории!

Итак:
1. Создаем товары в основном контексте.
2. Создаем категории во всех контекстах.
3. Каждому товару задаем категории везде где надо — msGetResources будет выводить без проблем.
4. В чанке для вывода в категории используем фильтры для показа свойств на разных языках (из ваших таблиц).
5. При переходе на страницу товара плагином по onPageNotFound выдаем содержимое страницы товара из основного контекста с нужными свойствами через фильтры.
6. Пишем отдельный компонент для задания описания товаров в свои таблицы.

Все работает, код магазина не меняется.
avatar

bezumkin

  • 4 марта 2012, 03:51
0
С фронтом да, а с админкой как? Наполнять товарами я буду сам, но в дальнейшем магазин должны поддерживать сам заказчик. То есть добавлять и изменять товары ( их на данный момент не слишком много, в порядке 5тыс товаров). Мне нужно, чтобы они из админки могли работать.
Сейчас думаю как свою таблицу связать по одной нитке с Вашим магазином в админки, чтобы меньше переписывать в дальнейшем.
avatar

Gera

  • 4 марта 2012, 04:15
-1
Hello developer miniShop.
How can I pay PayPal?..
I'm not looking to look.

Your servant
רישי (Rishi)
avatar

Rishi

  • 4 марта 2012, 04:07
0
Почему я пользуюсь гугл-транслейтом, когда посещаю ресурсы на незнакомых языках, а вы — нет?

Вот ответ на ваш вопрос, придется поднапрячься.
avatar

bezumkin

  • 4 марта 2012, 04:09
0
меня гугл платить не нужно.

Your servant
רישי (Rishi)
avatar

Rishi

  • 4 марта 2012, 04:18
-3
Не виден *.bezumkin.ru. Не пингуется, трассер мрет уже на Майями.
Может, это, конечно, только мне с острова ни черта не видно.
avatar

vbatushev

  • 4 марта 2012, 09:21
0
У Selectel авария.
habrahabr.ru/blogs/hosting/139368/
avatar

bezumkin

  • 4 марта 2012, 09:30
0
Плохо. Желаю скорейшего устранения сей аварии.

Пользуясь случаем, кланяюсь земляку, ибо сам почти двадцать лет отработал в газете «Кузбасс» :)
avatar

vbatushev

  • 4 марта 2012, 09:36
0
Ответный поклон!
avatar

bezumkin

  • 4 марта 2012, 09:36
0
Уважаемый безумкин
у меня «коряво» работает обновление корзины. я думаю что дело в кэшировании
как это исправить??

в шаблоне вызываю чанк со следующим содержимым ссылки корзины
Корзина
эта ссылка выводится в шапке шаблона
далее вызываю [[!miniShop]] на странице корзины

cайт esupp.ru
Спасибо!
avatar

maxxus96

  • 5 марта 2012, 23:11
0
У вас куча ошибок в логе, и при обращении запросом к /cart.html — тоже ошибка.

Как минимум, устраните их.
avatar

bezumkin

  • 5 марта 2012, 23:49
0
Спасибо за подсказку
ошибок море
но в логе я не увидел
ошибок при обращении запросом к /cart.html
avatar

maxxus96

  • 6 марта 2012, 00:40
0
Bezumkin, подскажите, как в компоненте сделать копию товара со всеми данными (цена, артикул, все TV, изображение и т.д.)?
Заранее, благодарен!
avatar

vanchelo

  • 6 марта 2012, 08:56
0
Нет такой функции.
avatar

bezumkin

  • 6 марта 2012, 09:30
+1
Выпустил сегодня версию 1.2.0 — там есть копирование товара в админке со всеми свойствами, ТВ параметрами и прочим.

Копируется только на активный склад, если нужно продублировать свойства на все склады — придется открыть товар, отметить галочку про все склады и сохранить.
avatar

bezumkin

  • 21 марта 2012, 16:27
0
Классно)
avatar

vanchelo

  • 21 марта 2012, 17:56
0
Доброго вам здравия Bezumkin, убрал все ошибки кроме
(ERROR @ /index.php) Could not prepare context: x1 — ресурс контейнер /каталог/
(ERROR @ /index.php) Could not prepare context: x2 — ресурс /меню/
и эти ошибки повторяются при переходе по ссылкам.
p.s. в инете по данным ошибкам найти ничего не смог
корзина работает через раз /проверил все селекторы все как на демо сайте/
с главной отправляется в корзину только количество, опять через раз
другие ресурсы тоже работают через раз
дайте наводку где копать
я с модх всего месяц имею дело
Спасибо!

и наверно было бы полезно назначать товар конкретному складу или нескольким складам
avatar

maxxus96

  • 6 марта 2012, 18:59
0
p.p.s.
x1 — ресурс контейнер /каталог/
x2 — ресурс /меню/
это родители
avatar

maxxus96

  • 6 марта 2012, 19:00
0
У вас явно проблема с сервером и\или php.
Возможно включен php5-apc — надо выключить. Мне некогда разбираться с вашими проблемами, извините.

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

> и наверно было бы полезно назначать товар конкретному складу или нескольким складам

Если товара нет на складе — ставьте остаток -1 и не выводите в чанках товары с остатком < 0.
avatar

bezumkin

  • 6 марта 2012, 19:04
0
проблема была в последовательности вызова js
ВО КАК
avatar

maxxus96

  • 6 марта 2012, 21:06
комментарий был удален

0
а может и нет -(
avatar

maxxus96

  • 6 марта 2012, 21:09
0
Пытаюсь сделать поиск на сайте через SimpleSearch
Нашел такую возможность поиска по другим таблицам но не могу правильно настроить. Может кто-то нибудь подскажет
&customPackages=`ModGoods:price,article,img:minishop:{core_path}components/minishop/model/:ModGoods.wid = modResource.id`
avatar

vanchelo

  • 7 марта 2012, 18:18
0
Забыл, вот вызов SimpleSearch
[[!SimpleSearch?&hideMenu=`0`&showExtract=`0`&customPackages=`ModGoods:price,article,img:minishop:{core_path}components/minishop/model/:ModGoods.wid = modResource.id`]]
avatar

vanchelo

  • 7 марта 2012, 18:20
0
В ModGoods хранятся только дополнительные свойства, а сами товары — в ресурсах.

Вы ищите дополнительные свойства или товары?

Ну и wid — это id склада, а id товара — gid (WarehouseID или GoodsID), наверное тут ошибка?
avatar

bezumkin

  • 7 марта 2012, 21:36
0
В ModGoods хранятся только дополнительные свойства, а сами товары — в ресурсах.

Это я понимаю, но мне нужно при поиске вывести цены товаров и их картинки.
Ну и wid — это id склада, а id товара — gid (WarehouseID или GoodsID), наверное тут ошибка?

За это я не подумал, попробую иначе
avatar

vanchelo

  • 7 марта 2012, 22:34
+1
> Это я понимаю, но мне нужно при поиске вывести цены товаров и их картинки.

Это делается проще — использованием в чанке результата msGetGoodsPlaceholder.
[[+id:msGetGoodsPlaceholder=`price`]]


Ну, мне кажется, что это проще =)
avatar

bezumkin

  • 8 марта 2012, 00:51
0
точно!!! Спасибо, сейчас попробую =) Я что-то сам не смекнул, обидно(
avatar

vanchelo

  • 8 марта 2012, 00:59
0
Я начал писать документацию

modx-minishop.ru/documentation/
avatar

bezumkin

  • 8 марта 2012, 00:52
0
могу помочь с переводом на англ. как и обещал…
avatar

viktormatush

  • 8 марта 2012, 01:08
0
Если есть время и желание — присылайте перевод.

Размещу на сайте со ссылкой на вас.
avatar

bezumkin

  • 8 марта 2012, 01:18
0
каким образом можно добавить дополнительные поля select?
можно вписать в доп поля вызов чанка? [[$xxx]]
Спасибо!
avatar

maxxus96

  • 8 марта 2012, 01:15
0
> каким образом можно добавить дополнительные поля select?

Это про что? Не понял.

> можно вписать в доп поля вызов чанка? [[$xxx]]

Наверное, попробуйте. Я не знаю.
avatar

bezumkin

  • 8 марта 2012, 01:16
0
при обновлении minishop перезапишет свои чанки?
avatar

maxxus96

  • 8 марта 2012, 01:17
0
В последних версиях — нет.

Но забэкапиться никогда не помешает.

avatar

bezumkin

  • 8 марта 2012, 01:18
0
c beta1 на beta2 из админки не дает обновится видимо изза идентичной версии
добавление в корзину вроде заработало хотя я ниче не делал видимо чета с сервером было
вот если бы товар имел возможность создания дополнительных полей на усмотрение пользователя мне кажется это полезная штука
и еслиб их еще можно было связать между собой
avatar

maxxus96

  • 8 марта 2012, 01:25
0
> c beta1 на beta2 из админки не дает обновится видимо изза идентичной версии

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

> вот если бы товар имел возможность создания дополнительных полей

Ясен пончик.
На это нужно время и деньги. Закажите — доработаю.
avatar

bezumkin

  • 8 марта 2012, 01:29
0
скока?
avatar

maxxus96

  • 8 марта 2012, 01:30
0
3-4 дня работы.

15-20 тысяч
avatar

bezumkin

  • 8 марта 2012, 01:32
0
о_О
avatar

vanchelo

  • 8 марта 2012, 01:40
0
нееее… бедным студентам стока не потянуть
avatar

maxxus96

  • 8 марта 2012, 01:41
0
вот если руб 500
можно скинутся кто ЗА
avatar

maxxus96

  • 8 марта 2012, 01:41
+1
Ой, да прекратите.
Щас еще пожертвования будете мне собирать.

Магазин в разработке, как появляется время — я его дорабатываю бесплатно. Как ктото заказывает отдельную доработку — с его согласия она попадает в основной код.

Просто ждите.
avatar

bezumkin

  • 8 марта 2012, 01:44
+1
Бедные студенты могут поставить готовый двиг магазина и не парить себе мозг
avatar

vanchelo

  • 8 марта 2012, 02:26
0
денег
avatar

maxxus96

  • 8 марта 2012, 01:32
0
Не могу понять в чем косяк, оформляю заказ нормально. Но на почту и в админку приходит заказ с адресными данными, но без товаров, в чем подскажите пожалуйста в чем проблема?
avatar

vanchelo

  • 8 марта 2012, 10:31
0
в таблице ms_modOrderedGoodsпусто(
Где то по дороге в таблицу теряется?
avatar

vanchelo

  • 8 марта 2012, 10:49
0
Я не знаю, смотрите логи, может ошибки есть?

Переставьте компонент.
У меня на демо-сайте последняя версия всегда, без изменений — там все нормально с заказами.
// Сохранение товаров корзины
$cart = $_SESSION['minishop']['goods'];
$cart_sum = 0;
$oid = $order->get('id');
foreach ($cart as $v) {
	$res = $this->modx->newObject('ModOrderedGoods');
	$res->set('oid', $oid);
	$res->set('gid', $v['id']);
	$res->set('price', $v['price']);
	$res->set('sum', $v['price'] * $v['num']);
	$res->set('num', $v['num']);
	$res->set('data', json_encode($v['data']));
	$res->save();
	$cart_sum += $v['price'] * $v['num'];
}

Не вижу, где тут может быть ошибка. Исходник
avatar

bezumkin

  • 8 марта 2012, 11:08
0
Я починил, не хватало колонки data в таблице ms_modOrderedGoods, была версия 1.0.1 beta 1, обновился сегодня, а таблица получается не обновилась. Посмотрел в схеме параметры колонки data и в её ручную создал
avatar

vanchelo

  • 8 марта 2012, 11:12
0
Спасибо, благодаря вам нашел ошибку в скрипте обновления пакета.

Тупая опечатка поправлю.

Еще раз спасибо!
avatar

bezumkin

  • 8 марта 2012, 11:13
0
Может есть смысл писать с колонку data данные только когда они есть, а так туда пустая json строка записывается
[]
avatar

vanchelo

  • 8 марта 2012, 11:15
0
Тогда придется каждый раз проверять эту колонку при попытке раскодирования, иначе json будет падать с ошибкой?
Проще писать 2 лишних символа, чем при каждом обращении проверять на не пустоту.

Пакет в репозитории обновил.
avatar

bezumkin

  • 8 марта 2012, 11:20
0
Теперь понял смысл! Спасибо за пояснение)
avatar

vanchelo

  • 8 марта 2012, 11:21
0
вот еще только что в логе такую ошибку увидел
[2012-03-08 07:22:55] (ERROR @ /index.php) ModOrders: Attempt to set NOT NULL field delivery to NULL
avatar

vanchelo

  • 8 марта 2012, 11:23
0
На это можно забить — у вас не используется доставка.

Но поправлю потом.
avatar

bezumkin

  • 8 марта 2012, 11:26
0
ОК)
avatar

vanchelo

  • 8 марта 2012, 11:27
0
Проверяйте чанки почтовых уведомлений.

В новых версиях добавились префиксы к плейсхолдерам, типа [[+addr., [[+cart. и т.д.

Доступные плейсхолдеры
avatar

bezumkin

  • 8 марта 2012, 10:59
0
чанки в порядке.
avatar

vanchelo

  • 8 марта 2012, 11:02
0
вот что пишет в логах
[2012-03-08 06:57:21] (ERROR @ /index.php) ModOrders: Attempt to set NOT NULL field delivery to NULL
[2012-03-08 06:57:21] (ERROR @ /index.php) Error 42S22 executing statement:
INSERT INTO `ms_modOrderedGoods` (`gid`, `oid`, `num`, `price`, `sum`, `data`) VALUES (9, 20, 7, 1299, 9093, '[]')
Array
(
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'data' in 'field list'
)
avatar

vanchelo

  • 8 марта 2012, 11:02
0
я так понял что появилась новая колонка в таблице «data», а так как я обновился на новую версию, таблицы то не обновились?
avatar

vanchelo

  • 8 марта 2012, 11:04
0
Их можно как-то вручную обновить по схемах которые лежат в каталоге компонента?
avatar

vanchelo

  • 8 марта 2012, 11:04
0
Хм. А должна обновиться. Переставьте компонент.
avatar

bezumkin

  • 8 марта 2012, 11:09
0
Сделал простой сниппет на основе функции getCartStatus(), назвал cartStatus, вызываю не кэшруемым в шапке:
<a id="cartLink" href="cart.html"><span>[[!cartStatus]]</span></a>
Функция getCartStatus() из minishop.class.php
function getCartStatus() {
	$cart = $_SESSION['minishop']['goods'];
	if (empty($cart)) {$cart = array();}
		
	$arr = array();
	$arr['total'] = 0;
	$arr['count'] = 0;
	foreach ($cart as $v) {
		$arr['count'] += $v['num'];
		$arr['total'] += $v['price'] * $v['num'];
	}
	return $arr;
}
Закомментировал в minishop.js строки 5-9

Теперь при переходах по страницам сайта не яваскриптом обновляется состояние корзины, а сниппетом, сразу (т.е. до полной загрузки страницы) отображается состояние корзины
avatar

vanchelo

  • 11 марта 2012, 02:07
0
Вот сниппет cartStatus
<?php
$cart = $_SESSION['minishop']['goods'];

if (empty($cart)) {return 'Корзина пуста';}

else {
$ar = array();
$ar['total'] = 0;
$ar['count'] = 0;
foreach ($cart as $c) {
	$ar['count'] += $c['num'];
	$ar['total'] += $c['price'] * $c['num'];
}

$modx->setPlaceholders(array('goodsNum' => $ar['count'],'goodsSum' => number_format($ar['total'],(floor($ar['total']) == $ar['total'] ? 0 : 2),'.',' ')));

return $modx->getChunk('cartStatus',$ar);

}
Вот чанк cartStatus
товаров: [[+goodsNum]]<br />
на сумму: [[+goodsSum]] грн.
avatar

vanchelo

  • 11 марта 2012, 02:48
0
Можно конечно и без чанка сделать вывод прям в сниппете, но разработчики на modx пишут что так делать не нужно
avatar

vanchelo

  • 11 марта 2012, 02:52
0
avatar

bezumkin

  • 11 марта 2012, 06:14
0
Я это прочитал и решил что нет смысла постоянно грузить ядро минишопа чтобы просто вывести кол-во товара и сумму, или я не прав?
avatar

vanchelo

  • 11 марта 2012, 16:57
0
Прав.

Но если неожиданно обновится формат корзины — ваш сниппет об этом не узнает и после обновления компонента что-нить сломается.

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

bezumkin

  • 11 марта 2012, 17:11
0
Я понимаю что если изменится формат то придется сниппет переделывать.
avatar

vanchelo

  • 11 марта 2012, 18:31
+1
Мне ваш компонент очень нравится, все понятно и просто, не сложно что-то поправить под себя
avatar

vanchelo

  • 11 марта 2012, 18:35
0
Сайт лежит, уважаемый bezumkin.
avatar

vbatushev

  • 18 мая 2012, 03:58
0
печально… а что?, где?, когда?.. если не секрет?
причины?..
avatar

valikras

  • 18 мая 2012, 05:09
0
У bezumkin-а. Я, как всегда, подался за живительной энергией Цы — и вот на тебе: modx-minishop.ru/documentation/
Причин не знаю.
avatar

vbatushev

  • 18 мая 2012, 05:15
0
аааа… я о другом подумал… просто сегодня он фичу одну делал для общего дела, возможно из за неё сбой (он её ещё шлифует)…
Проснётся — починит :)…
А это не облако случайно упало?
avatar

valikras

  • 18 мая 2012, 05:22
0
хотя selectel.ru/ работает, шут его знает, будем ждать @bezumkin
avatar

valikras

  • 18 мая 2012, 05:24
0
Фичи это хорошо, я вот еще хотел опять же его потеребить на предмет рендера TV в компоненте, а то выпадающие списки в виде текстового поля — не айс как-то.
avatar

vbatushev

  • 18 мая 2012, 05:27
0
Этого нет и неизвестно когда будет.

А сервер лежит опять, да. Откатываюсь обратно на php 5.3.
avatar

bezumkin

  • 18 мая 2012, 07:22
0
После переезда на хостинг перестала работать корзина.
При нажатии на кнопку добавить, все хорошо — никаких ошибок. Перехожу в корзину — пусто.
Есть включаю в корзине [[!minishop? &debug=`1`]] появляется ошибка:
Uncaught SyntaxError: Unexpected token C jquery-1.7.1.min.js:2
e.extend.parseJSON jquery-1.7.1.min.js:2
(anonymous function) minishop.js:7
f.Callbacks.n jquery-1.7.1.min.js:2
f.Callbacks.o.fireWith jquery-1.7.1.min.js:2
w jquery-1.7.1.min.js:4
f.support.ajax.f.ajaxTransport.send.d jquery-1.7.1.min.js:4

7-я строка в minishop.js
data = $.parseJSON(data);


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

thedarki

  • 18 мая 2012, 14:00
0
В лог сервера посмотрите на предмет ошибок.

Если включен php-apc — отключите.
avatar

bezumkin

  • 18 мая 2012, 14:02
0
не подскажите, как?
avatar

thedarki

  • 18 мая 2012, 14:09
0
Такие вопросы — своему хостеру.
avatar

bezumkin

  • 18 мая 2012, 14:10
0
Я настраивал облако по вашей инструкции.
avatar

thedarki

  • 18 мая 2012, 14:12
0
sudo apt-get remove php-apc && sudo service php5-fpm restart
avatar

bezumkin

  • 18 мая 2012, 14:14
0
После service php5-fpm restart пишет:
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/apc.so' - /usr/lib/php5/20090626+lfs/apc.so: cannot open shared object file: No such file or directory in Unknown on line 0

Где отключить чтобы не искал apc.so?
avatar

thedarki

  • 18 мая 2012, 14:19
0
sudo rm /etc/php5/conf.d/apc.ini
avatar

bezumkin

  • 18 мая 2012, 14:46

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.