Помощь Поддержка или помощь c Prestashop - 2 часть

Статус
В этой теме нельзя размещать новые ответы.

vector

Постоялец
Регистрация
14 Янв 2007
Сообщения
679
Реакции
121
600 страниц в первой теме - многовато. Согласны?!?
Создана 2 часть самой актуальной темы в нашем разделе - ИМ / Prestashop
------------------------------------------------------------
Как автор темы, позволю задать свои вопросы, для знатоков Prestashop, свободных Фрилансеров.

Имеется интернет-магазин, на Prestashop 1.6.х.х. Магазин радиодеталей.
Необходима доработка нескольких блоков, модулей сайта

Мне(менеджер ИМ), в личном кабинете поступают запросы, после чего, Я вношу их в своем личном кабинете в виде таблички: название компании, и номер компонента с количеством.
Каждый поставщик также имеет свой личный кабинет, где он видит мои запросы только парт номера и кол-во, там он проставляет свои цены, которые вижу только я. Поставщики должны видеть только свои цены.

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

Имеется дамп категорий и товаров в формате .mysql (от cms drupal) - нужно переконвертировать в базу Prestashop.
--------------------------------------------
Какие модули, в т.ч. платные мне подойдут для реализации данного проекта?
Готов сотрудничать со знатоками, также за вознаграждение. Пишите в ЛК.
 
Что ж, так как суровые правила сайта не позволяют новичку создать полезную тему, то напишу здесь.

Делаем счётчик количества товара для добавления в корзину на странице категории (1.6.1.x).

Нам будет необходимо править всего 2 файла шаблона. В ядро даже лезть не будем.
Как создать работающее поле ввода количества товара описал Для просмотра ссылки Войди или Зарегистрируйся товарищ модератор сообщества PrestaShop.

Поэтому эту часть в двух словах переведу на русский.
Открываем /themes/default-bootstrap/product-list.tpl
В районе 149-й строки находим следующий код:
PHP:
{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.customizable != 2 && !$PS_CATALOG_MODE}
    {if (!isset($product.customization_required) || !$product.customization_required) && ($product.allow_oosp || $product.quantity > 0)}
        {capture}add=1&id_product={$product.id_product|intval}{if isset($static_token)}&token={$static_token}{/if}{/capture}
        <a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart', true, NULL, $smarty.capture.default, false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart'}" data-id-product="{$product.id_product|intval}" data-minimal_quantity="{if isset($product.product_attribute_minimal_quantity) && $product.product_attribute_minimal_quantity >= 1}{$product.product_attribute_minimal_quantity|intval}{else}{$product.minimal_quantity|intval}{/if}">
            <span>{l s='Add to cart'}</span>
        </a>
    {else}
        <span class="button ajax_add_to_cart_button btn btn-default disabled">
            <span>{l s='Add to cart'}</span>
        </span>
    {/if}
{/if}

И прямо перед первой ссылкой <a class="button ajax_add_to_cart_button..... добавляем код текстового поля:

PHP:
<input style="font-size:27px; text-align:center; width:30px;" type="text" name="qty" id="quantity_to_cart_{$product.id_product|intval}" value="1"/>

Сохраняем/грузим файл и переходим ко второму.
Открываем /themes/default-bootstrap/js/modules/blockcart/ajax-cart.js
В районе 137-й строки находим код:
Код:
ajaxCart.add(idProduct, null, false, this, minimalQuantity);

Расширяем его до вот такого:
Код:
ajaxCart.add(idProduct, null, false, this, $('#quantity_to_cart_'+idProduct+'').val());

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

Теперь добавляем кнопки увеличения/уменьшения этого самого количества. Можно пойти легким путем и просто добавить нашему input-у атрибут type="number". Но если хотим редактировать стили кнопок и сделать их отдельно, то необходимо внести следующие правки в вышеперечисленные файлы.

В product-list.tpl:

PHP:
<div class="incr-decr-buttons">
   <a href="#" data-field-qty="qty_{$product.id_product|intval}" class="product_quantity_incr">
     <span><i class="icon-chevron-up"></i></span>
   </a>
   <a href="#" data-field-qty="qty_{$product.id_product|intval}" class="product_quantity_decr">
     <span><i class="icon-chevron-down"></i></span>
   </a>
</div>
<input type="text" min="1" name="qty_{$product.id_product|intval}" id="quantity_to_cart_{$product.id_product|intval}" class="cat-prod-qty" value="1" />
<a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart', true, NULL, $smarty.capture.default, false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l
s='Add to cart'}" data-id-product="{$product.id_product|intval}" data-minimal_quantity="{if isset($product.product_attribute_minimal_quantity) && $product.
product_attribute_minimal_quantity >= 1}{$product.product_attribute_minimal_quantity|intval}{else}{$product.minimal_quantity|intval}{/if}">
   <span>{l s='Add to cart'}</span>
</a>

В ajax-cart.js:

Код:
    // The button to increment the product value
     $(document).on('click', '.product_quantity_incr', function(e){
      e.preventDefault();
      fieldName = $(this).data('field-qty');
      var currentVal = parseInt($('input[name='+fieldName+']').val());
         quantityAvailableT = 100000000;
      if (!isNaN(currentVal) && currentVal < quantityAvailableT)
      $('input[name='+fieldName+']').val(currentVal + 1).trigger('keyup');
      else
      $('input[name='+fieldName+']').val(quantityAvailableT);
     });
      // The button to decrement the product value
     $(document).on('click', '.product_quantity_decr', function(e){
      e.preventDefault();
      fieldName = $(this).data('field-qty');
      var currentVal = parseInt($('input[name='+fieldName+']').val());
      if (!isNaN(currentVal) && currentVal > 1)
      $('input[name='+fieldName+']').val(currentVal - 1).trigger('keyup');
      else
      $('input[name='+fieldName+']').val(1);
     });


Теперь объясню, что мы сделали.
Сначала мы присвоили нашему полю идентификатор #quantity_to_cart_{$product.id_product|intval}, который в окончании возвращает уникальный идентификатор каждого товара. И связали это поле с кнопкой добавления товара в корзину.

Во второй части мы добавили в файл шаблона код самих кнопок на увеличение/уменьшение. Затем в .js добавили код, отвечающий за ту же самую функцию на странице отдельного товара, немного видоизменив его. Тут самое главное — обратить внимание на класс кнопок, повторяющихся в js
(.product_quantity_incr и .product_quantity_decr). Эти классы обязательно должны отличаться от классов аналогичных кнопок на странице товара. Иначе получим двойное срабатывание скрипта на странице товара, тем самым увеличивая/уменьшая количество на 2 за шаг.
Всё. Готов ответить на вопросы по теме. :)
P. S. Для просмотра ссылки Войди или Зарегистрируйся.
 
Я использовал для переноса с одного магазина в другой - сторонний софт eMagicOneStore manager, все отлично перенесло
Уважаемый, можете кинуть ссылку на гайд какой-нибудь или дать краткую инструкцию по переносу товаров?
 
Не могу понять, в чем дело.
Указываю для группы клиентов "по умолчанию" (то есть для зарегистрированных) скидку 5%. Делаю это прямо в свойствах группы.
Результат неадекватен: скидка 5% сразу становится доступной для всех, даже для гостей (не логиненных).
1.6.1.1, шаблон Panda (если это важно).
Буду благодарен за подсказку куда копнуть.

мощнее выглядит, если через Ценовые правила корзины сделать купон на 5% для нужной группы,
результат тот же - а визуализация маркетинга лучше
 
Кто-нибудь сталкивался с таким глюком.
Некоторым покупателем (только небольшой части) не дает в корзине сделать заказ с сообщением, что обязательно для заполнения поле "скидочного купона".
В Правилах корзины есть полтора десятка промо-кодов для групп постоянных клиентов, но обязательным то поле никак не является.
Версия престы 1.6.0.9
Тема: warehouse
В журнале событий никаких оповещений нет.
Непонятно как лечить такое.


группы покупателей копать...
Знать бы что там еще копать. Само по себе скидка - это же даже не модуль, а базовая функция. Все что можно в группах клиентов это назначать скидку и отключать отдельные модули.
 
Всем привет!
Хочу сменить шаблон и перейти с 1,5 на 1,6. Кто может помочь за вознаграждение? Пишите в лс.
И такой вопрос для тех кто знает: повлияет ли на сео смена шаблона? Не просядет в поиске магаз?
 
если через Ценовые правила корзины сделать купон на 5% для нужной группы
То же поведение. Незалогиненным показываются старые зачеркнутые цены и новые со скидкой 5%.
Да что ж такое...
 
То же поведение. Незалогиненным показываются старые зачеркнутые цены и новые со скидкой 5%.
Да что ж такое...
вообще в самом дистрибутиве 1.6.1.1 и 2 есть проблемы. Чистая установка или нет?
 
Нет, апгрейд 1.4 - 1.6 - 1.6.1.1
попробуй дефолтную установку, возможно баг, если нет - перебрасывай товары, клиентов и т.п. У меня были проблемы с 1.6.1.1 и 1.6.1.2 - корзина барахлила, все то же самое на 1.6.0.14 - корзина работает без проблем.
 
подскажите, как сделать что бы выводилось две цены Специальная и зачеркнутая старая цена в списке и в карточке товара? Если указывать скидку суммой или в %, тогда две цены появляются, а если указать просто специальную цену то выдается только одна специальная цена....
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху