ms_cdek2 и несколько складов отправки

Есть интернет-магазин и два склада в разных городах. Доставка производится сдэком. Используется Modx+ms2+ms_cdek2. С какого склада поедет товар — зависит от города, куда будет доставка. Можно как-то для ms2_cdek менять город отправки на фронтэнде? В корзине покупатель выбирает свой город и в зависимости от этого выбирается, с какого склада поедет товар, и рассчитывается стоимость доставки исходя из этого. Так возможно сделать?

UPD. В /core/components/ms_cdek2/model/ms2/mscdekhandler.class.php в строке 54 из системных настроек берётся sender_index:
$from_location = $ms_CDEK2->getLocation(['postal_code' => $ms_CDEK2->config['sender_index']]);
Если заменить это к примеру на
$from_location = $ms_CDEK2->getLocation(['postal_code' => '450000']);
то расчет идет верно от города с индексом 450000.
Теперь вопрос: как передать это значение с фронта?
snowdog178
21 октября 2022, 18:47
modx.pro
663
0

csv загрузка

Здравствуйте, помогите пожалуйста.
Есть форма загрузки файла (создал документ)
И есть обработчик (создал статичный снипет)
код полность работает прсто на сервере но в (MODX не в какую)
<form action="upload.php" method="post" enctype="multipart/form-data">
      <div class="input-group">
        <div class="custom-file">
          <input type="file" class="custom-file-input" id="customFileInput" aria-describedby="customFileInput" name="file">
          <label class="custom-file-label" for="customFileInput">Select file</label>
        </div>
        <div class="input-group-append">
           <input type="submit" name="submit" value="Upload" class="btn btn-primary">
        </div>
      </div>
  </form>
снипет он видит точно так как выдает ошибку и так же знает что есть такая таблица
вот обработчик
<?php
if (isset($_POST['submit']))
{
$fileMimes = array(
        'text/x-comma-separated-values',
        'text/comma-separated-values',
        'application/octet-stream',
        'application/vnd.ms-excel',
        'application/x-csv',
        'text/x-csv',
        'text/csv',
        'application/csv',
        'application/excel',
        'application/vnd.msexcel',
        'text/plain'
    );
 if (!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'], $fileMimes))
    {
 
$csvFile = fopen($_FILES['file']['tmp_name'], 'r');
  fgetcsv($csvFile);
 while (($getData = fgetcsv($csvFile, 10000, ",")) !== FALSE)
            {
                $name = $getData[4];
 $data3 = array('name' => $name); 
    $table = 'modx_test';
    $query = $modx->prepare("INSERT INTO `$table` (`name`) values (:name)");
    $query->execute($data3);

            }
 fclose($csvFile);
}
    else
    {
        echo "Please select valid file";
    }
}
vit
vit
21 октября 2022, 00:11
modx.pro
492
0

Вызвать опцию товара в сниппете

Как получить одну опцию по ключу товара внутри шаблона через сниппет?

Из того что нашёл на просторах этого форума получилось так, но результат никакой
<?php
$product = $modx->getObject('msProduct', $modx->resource->get("id"));
$options = $product->getMany('options');
foreach($options as $option){
    if($option['key'] == 'type_food'){
        print_r($option['value']);
    }
}
Александр
20 октября 2022, 17:56
modx.pro
669
0

Почему не выводятся значения переменных в чанке сниппета на fenom?

Добрый день!

Имеется компонент Sendex. Переписываю его чанки на fenom и почему-то не могу вывести значения переменных с использованием синтаксиса fenom. Например, в стандартном синтаксисе [[+code]] переменная выводится, а через {$code} — нет. Как-то неграмотно вызывать сниппет на fenom, а переменные выводить через [[+]] Подскажите, пожалуйста, что я делаю не так?
Варианты {$_modx->getPlaceholder('code')}, {$_pls['code']} и {'code' | placeholder} пробовал. Не помогает.
Giant Dad
20 октября 2022, 12:37
modx.pro
501
0

Failed to load resource: the server responded with a status of 500

Всем привет.
месяц на сайте ничего не делали и внезапно при сохранении товара (любого) — бесконечно крутится лоадер сохранения.
При этом в консоли возникает ошибка:
Failed to load resource: the server responded with a status of 500 на файл: /connectors/index.php
Сергей Карпович
19 октября 2022, 17:30
modx.pro
813
0

[EasyComm+Swift] Загрузка фото и видео отзывов в облако Selectel.

Приветствую, делюсь с сообществом нюансами реализации такой задачи как загрузка файлов, прикрепляемых к отзывам, в облачное хранилище от Selectel.Возможно, эта заметка сэкономит кому-то немного времени.
Артур Шевченко
19 октября 2022, 12:36
modx.pro
1 153
+1

Discontrol скидка на товар + скидка на количество

Здравствуйте! Помогите пожалуйста с вопросомю
У меня есть дополнение Discontrol в котором я выставил на определенные позиции скидку в 7%.
Но так же я хочу, чтобы на эти позиции при определенной сумме этих позиций (в корзине могут быть и другие), польхователь получал еще +3%.
Можно ли и как это реализовать?

Сейчас я это сделал отдельно 7% на позиции и 3% на сумму корзины всех товаров и скидка +3% на все товары. Хочется только на указанные чтобы была скидка.
Роман
19 октября 2022, 07:22
modx.pro
712
0

Обзор фильтров для интернет-магазинов

Для MiniShop планируется сделать фильтры встроенные в него. Вопрос как и каким образом их делать? Я разбирался в фильтрах mFilter2, пробовал делать mapFilter и, сейчас, искал в интернете реализации фильтров. Насколько нашел есть 4 способа реализации фильтра. Под катом их обзор.
Александр Туниеков
18 октября 2022, 17:46
modx.pro
4
2 612
+4

Использование xpdo при вызове скрипта через cron

Здравствуйте! Возникла необходимость пробежаться по объектам в скрипте, запускаемом через cron.
Код примерно следующий:
<?php
  define('MODX_API_MODE', true);
  require_once '/var/www/site/core/config/config.inc.php';
  require_once MODX_BASE_PATH . 'index.php';

  global $modx;

  if (!$modx) echo 'failed load MODX object'; 
  else {
      $stat = $modx->getIterator('PageStatistics',array(
          'views_now:>' => 0,
      ));
      foreach($stat as $pageStat){
          $modx->log(1, $pageStat->get('user_key'));
      }
  }
Получаю ошибку на строке с foreach:
PHP Fatal error: Uncaught Error: Call to a member function prepare() on null
xPDOIterator->rewind()
Судя по всему, xpdo не понимает, что это за объект PageStatistics, тк с modResource это прекрасно работает. Как исправить ситуацию?
Giant Dad
18 октября 2022, 15:31
modx.pro
457
0

результат выполнения сниппета в параметре сниппета работает такое?

[[!msProducts? &tpl=`tovartplCat` &limit=`64` &parents=`2` &tvFilters=`[[!where]]` &includeTVs=`types,config,style,fasad` ]]
а вот сам сниппет where
<?php
$filterz = '';
if($_GET['types']) $filterz = $filterz.'types==%*'.$_GET['types'].'*%'.',';
if($_GET['config']) $filterz = $filterz.'config==%*'.$_GET['config'].'*%'.',';
if($_GET['style']) $filterz = $filterz.'style==%*'.$_GET['style'].'*%'.',';
if($_GET['fasad']) $filterz = $filterz.'fasad==%*'.$_GET['fasad'].'*%'.',';

if($filterz !=='') $filterz = substr($filterz,0,-1);


return $filterz;
так вообще работает или как то по другому надо?
Евгений
18 октября 2022, 15:17
modx.pro
418
0