Автор Тема: Вывод количества товаров, homecategoriesplus  (Прочитано 715 раз)

21 Февраль 2018, 14:17:55
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
модуль почему-то у меня видит, будто бы кол-во товара - 0, но в админке я их указал в кол-ве 10 шт.
{if $jquery == 0}
{if $categories}
  {foreach from=$categories item=categorie name=cats}
{assign var='categoryLink' value=$link->getcategoryLink($categorie.id, $categorie.link_rewrite)}                 
                    <div class="maim-page-catalog-main-block_elem maim-page-catalog-main-block_elem-first">
                                       
                        <div class="cat-overlay"></div>
                        {if $displaycatimg == 1}
                            <img src="{$img_cat_dir}{$categorie.id}.jpg" alt="" class="maim-page-catalog-main-block_elem-bg">
                        {/if}
                        <div class="main-page-catalog-categorie-name">
<h2 class="cat-name-heading">{$categorie.titre}</h2>
<a href="{$categoryLink}" class="cat-name-link">Посмотреть все</a>
                        </div>
                        <div class="main-page-product-main-wrapper">
                        {if $categorie.prod && $displayprod == 1}
                            {foreach from=$categorie.prod item=produc}
                              {assign var='getproductLink' value=$link->getproductLink($produc.id, $produc.link_rewrite)}
                               
                               <div class="product-card-main-wrapper">
                    <a href="{$getproductLink}" class="promuct-card-link">
                        <div class="producd-cart">
                        <div class="product-card-img">
                        <img src="{$link->getImageLink($produc.link_rewrite, $produc.id_image, '')}" alt="product image">
                        </div>
                        <div class="product-card-info">
                        <div class="proudct-cart-descr">{$produc.titre}</div>
                        <div class="product-card-quant">
                                                            {if $allow_buy_when_out_of_stock OR ($produc.quantity AND $produc.quantity > 0)}
                                                            В наличии
                                                            {else} Нет в наличии
                                                            {/if}
                                                        </div>
                        <div class="product-card-price">{$produc.price} {if $priceDisplay == 2} {l s='+Tx' mod='homecategoriesplus'} HT{l s='-Tx' mod='homecategoriesplus'}{/if} грн.</div>
                <div class="product-card-buy-button-block">

<a class="button ajax_add_to_cart_button btn btn-default" href="{$link->getPageLink('cart',false, NULL, 'add=1&amp;id_product={$produc.id|intval}', false)|escape:'html':'UTF-8'}" rel="nofollow" title="{l s='Add to cart' }" data-id-product="{$produc.id|intval}">
<span>{l s='Add ajax to cart'}</span>
</a>
                </div>
                        </div>
                        </div>
                                </a>
                    </div>
                               
                            {/foreach}
                        {/if}</div>
</div>
                                {/foreach}
                                {/if}
                    {/if}
переделал шаблон.
по итогу имею "нет в наличии"
21 Февраль 2018, 14:22:24
Ответ #1
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
и в базе выставлено кол-во - 0 :OOOO

21 Февраль 2018, 14:29:00
Ответ #2
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
при этом товар падает в корзину, судя по всему
и на самой странице товара отображается число, установленное в админке:
21 Февраль 2018, 16:29:54
Ответ #3
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
обнаружил, что на самой карточке товара кол-во товаров корректное (берется из админки, а именно - таблицы ps_stock_available).
вопрос, как решать? то ли в модуле sql переписывать, то ли как решить вопрос, почему в таблице ps_product у меня в кол-ве 0 стоит.
21 Февраль 2018, 17:17:43
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Количество товара хранится в нескольких таблицах. Настроить учет товаров можно в Настройки > товары - Запасы товаров.
21 Февраль 2018, 17:23:00
Ответ #5
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
не увидел, что мне там может помочь, если честн.
сделал костыль: поправил sql-запрос в модуле homecategoriesplus, выбрав кол-во товаров с таблицы ps_stock_available, заджоинив её по айдишке товара.
хотелось бы, конечно, без него, ибо у меня опасения, что что-то потом рухнет.
21 Февраль 2018, 17:34:38
Ответ #6
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Чтобы не думать о том, какую таблицу нужно выбрать, используйте методы движка.
Получить количество товаров можно с помощью getQuantity.

/**
   * Get available product quantities
   *
   * @param int $id_product Product id
   * @param int $id_product_attribute Product attribute id (optional)
   * @return int Available quantities
   */
public static function getQuantity($id_product, $id_product_attribute = null, $cache_is_pack = null)
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
21 Февраль 2018, 17:40:38
Ответ #7
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
круто. спасибо, хоть я и сделал тоже самое, что этот метод делает внутри себя
21 Февраль 2018, 17:42:50
Ответ #8
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
1 вопрос: сейчас столкнулся с тем, что у меня, например, 3 товара, но класть их в корзину я могу хоть до посинения.
т.е., при превышении имеющегося кол-ва товаров, я не получаю ошибок.
2 вопрос: в корзину добавляется аяксово, вот только кол-во товаров в корзине не изменяется таким же образом, только при обновлении страницы.
как решать? какие мысли? )
21 Февраль 2018, 18:33:14
Ответ #9
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Должна срабатывать функция обновления корзины при добавлении товара. В дефолтной теме
ajaxCart.updateCart(jsonData);
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
22 Февраль 2018, 17:51:40
Ответ #10
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
тема дефолтная, по клику вызывается ф-я:
$(document).off('click', '.ajax_add_to_cart_button').on('click', '.ajax_add_to_cart_button', function(e){
e.preventDefault();
var idProduct =  parseInt($(this).data('id-product'));
var idProductAttribute =  parseInt($(this).data('id-product-attribute'));
var minimalQuantity =  parseInt($(this).data('minimal_quantity'));
if (!minimalQuantity)
minimalQuantity = 1;
if ($(this).prop('disabled') != 'disabled')
ajaxCart.add(idProduct, idProductAttribute, false, this, minimalQuantity);
});
судя по всему, нужно допилить руками.
но что в аргумент jsonData пихать?
или, может, дайте свой вариант скрипта?
22 Февраль 2018, 18:41:55
Ответ #11
  • Старожил
  • ****
  • Сообщений: 366
  • Репутация: +0/-0
  • Skype: away4people
    • Просмотр профиля
решил. копнул методы объекта, подправил селекторы и всё.
730+ строчки