Последние темы


Несколько взаимосвязанных параметров и характеристик товара

  • Добрый вечер. Хотел бы уточнить вопрос, возможности стандартными средствами shopkeeper (MIGX) сделать следующую вещь:

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

    1-ый селект: выбор магазина, и в зависимости от того, какой магазин выбран, выводятся возможные размеры (которые есть в этом магазине) во втором селекте, а в описании товара просто меняется его вес и цена.

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

    Понимаю, что можно например размер==цена||размер2==цена2||etc можно вывести через param-edit и в наборе параметров шопкипера в настройке changePrice поставит replace, но как можно увязать несколько tv.param между собой не представляю.

    Хотелось бы понять в какую сторону копать, или хотя бы на каике встроенные средства желательно обратить внимание. Прекрасно понимаю как это сделать SQL запросом, но не могу понять как это всё прибить к шопкиперу.

    В данный момент реализован рабочий магазин shopkeeper (MIGX) 1 Товар в 1 магазине, с 1 размером и с 1 описанием, 1 цена и так далее..

  • Пришлось опять вернуться к этому вопросу. Может кому пригодится, опишу как это реализовал в своём магазине.

    В общем есть магазин бижутерии, в котором есть изделия, например может быть 6 колец по одному артикулу, но с разным размером, весом и соответственно ценой, также они могут быть раскиданы по магазинам. Нужно было вывести два селекта:

    1-ый - вывод всех магазинов есть в которых есть это кольцо
    2-ой - вывод размеров, которые есть в этом магазине

    Схема такая: открывается карточка товара --> выводится минимальная цена изделия (а так же все характеристики, цена производитель и т.д.) --> выбираешь магазин --> выбираешь размер который есть в этом магазине --> цена меняется --> добавляешь в корзину дальше как обычно

    Товары все выгружается из 1C по ftp на сервер в *.txt, а оттуда в базу

    ......
    $db->exec("LOAD DATA LOCAL
    INFILE '/home/s/shop/new/public_html/ostatki.txt' INTO TABLE `modx_shop_content`
    COLUMNS TERMINATED BY '^'
    (shops, category, articul, material, proba, weight, size, price, oldprice2, sale, image,param1,param2);	
    ");
    ......
    

    1 строка - 1 товар
    в колонку shops выгружаются с базы просто список магазинов в которых есть этот артикул изделия

    ТЦ Центр 1||ТЦ Центр 2||ТЦ Центр 3||ТЦ Центр 4
    

    в колонку param1 выгружаются уже параметры изделий с этим же артикулом
    Магазин==Цена==Размер==Вес

    ТЦ Центр 1==12500==17==1.36||ТЦ Центр 2==13500==18==2.16||ТЦ Центр 3==14500==19==2.26||ТЦ Центр 4==15500==20==2.36
    

    В шаблоне карточки товара подключаю Chained Selects Plugin for jQuery

    <script src="js/jquery.chained.min.js"></script>
    <script type="text/javascript" charset="utf-8">
         $(".sizes").chained(".shops");
    </script>
    

    с помощью param_edit_table вывожу 1-ый необходимый селект с магазинами

    [[param_edit_table?
    &tvValue=`[[*shops]]`
    &tpl=`@CODE:
    <select class="shops">
         <option value="">Выберите магазин</option>
         [[+inner]]
    </select>
     <!--tpl_separator-->
    <option  value="[[+field1]]" name="[[+field1]]">[[+field1]]</option>
    `
    ]]
    

    И так же с помощью param_edit_table вывожу уже размеры

    [[param_edit_table?
    &tvValue=`[[*param1]]`
    &tpl=`@CODE:
    <select class="shk_param sizes" name="param1__[[*id]]" id="param1[[*id]]" onchange="SHK.additOpt(this)">
        <option value="">Выберите размер</option>
        [[+inner]]
    </select>
    <!--tpl_separator-->
    <option  value="[[+idx]]__[[+field2]]" name="[[+field1]]" class="[[+field1]]"[[+selected1]]>[[+field3]]</option>
    `
    ]]
    

    name="[[+field1]]" class="[[+field1]]" - нужны для работы плагина

    В принципе и всё. Если есть более изящные/правильные решения рад буду узнать.

 

Последние комментарии

  • C

    Если вдруг кто-то озадачится.
    В файле updateorderstatus.class.php

    //Формируем письмо $orderOutputData = $shopCart->getOrderData( $order_id ); $chunkArr = array( 'orderID' => $order_data['id'], 'orderDate' => $order_data['date'], 'statusName' => $status_data['label'], 'orderCurrency' => $shopCart->config['currency'], 'orderOutputData' => $orderOutputData, //добавляем строку 'status' => $status_data['color'], );

    Читать далее
  • Участник @Vladislava написал в Проблема с giftCards:

    @Andchir Спасибо большое! А не скажете ещё, где можно скачать Compare? Тоже не могу найти.

    Сравнение товаров
    https://e-store.shopkerx.net/katalog/modx_extras/compare

    Читать далее
  • V

    @Andchir Спасибо большое! А не скажете ещё, где можно скачать Compare? Тоже не могу найти.

    Читать далее
  • Дополнение "Paykeeper2 - онлайн-оплата и электронные товары" теперь стало бесплатным.

    0_1574706584028_Chash Register.png

    Сниппет для продажи электронных товаров, а так же оплаты заказов в интернет-магазине на основе Shopkeeper 3.x.
    Компонент для управления электронными товарами (Фронт-енд написан на Angular2 + TypeScript).
    Используется библиотека Omnipay. Эта библиотека позволяет делать единый API для разных платежных систем.
    Сайт проекта: http://omnipay.thephpleague.com/

    В состав входят готовые обработчики для платежных систем:
    Yandex.Kassa (агрегатор), WebMoney, PayPal.

    Скачать можно здесь:
    https://e-store.shopkerx.net/katalog/modx_extras/onlayn-oplata-dlya-modx-paykeeper2

    Читать далее