ilo?? w kategorii i info o braku towaru

Jeśli masz problemy z instalacją dodatkowych modułów takich jak wysyłka, płatność, język, itd.

ilość w kategorii i info o braku towaru

Postprzez adam.skrzynka2 » 29 maja 2016, o 21:58

Witam, próbuję dostosować opencart 2.2.0.0. do swoich potrzeb i przeszukałem wszystkie fora ale nie znalazłem rozwiązania i może ktoś by mi pomógł (przy okazji może się komuś także przydać)


Sprzedaję towary w dużych ilościach i chciałbym aby już w wyborze kategorii można było wpisać ilość sztuk. Rozwiązałem to za pomocą znalezionego kodu. Musiałem w pliku catalog.tpl dokonać następujących zmian:

zamiast:

<div class="button-group">
<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>


wkleić:

<input type="text" value="1" size="2" class="item-<?php echo $product['product_id']; ?>" />
<div class="button-group">
<button type="button" value="<?php echo $button_cart; ?>" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>

oraz dodatkowo wkleić na końcu przed linijką footer ? lininka footer będzie wyglądać:

<script type="text/javascript"><!--
function addQtyToCart(product_id) {
var qty = $('.item-' + product_id).val();
if ((parseFloat(qty) != parseInt(qty)) || isNaN(qty)) {
qty = 1;
}
cart.add(product_id, qty);
}
//--></script>
<?php echo $footer; ?>

i to działa. Drugą sprawą chciałem aby już w widoku kategorii pokazywało że czegoś nie ma na stanie. Nie wiem dlaczego w orginalnym kodzie dopiero po wrzuceniu do koszyka, w koszyku klient dowiaduje się że czegoś nie ma - ale i z tym sobie poradziłem bo znalazłem rozszerzenie vqmod o kodzie:

<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>Out of Stock Button</name>
<version>2.1</version>
<code>out_of_stock</code>
<author>REDS</author>
<link>//www.agenciaprai.com</link>

<!-- checks the stock in the controller //-->
<file path="catalog/controller/product/product.php">
<operation>
<search><![CDATA[if ($product_info['quantity'] <= 0) {]]></search>
<add position="before"><![CDATA[
$data['stock_quantity'] = $product_info['quantity'];
$data['text_out_of_stock'] = $product_info['stock_status'];
]]></add>
</operation>
</file>

<!-- search in product page position for raplace //-->
<file path="catalog/view/theme/*/template/product/product.tpl">
<operation>
<search><![CDATA[<button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button>]]></search>
<add position="replace"><![CDATA[<?php if ($stock_quantity < 1) { ?>
<button type="button" id="button-cart" disabled="disabled" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $text_out_of_stock; ?></button>
<?php } else { ?>
<button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button>
<?php }?>]]></add>
</operation>

<operation>
<search><![CDATA[<input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2" id="input-quantity" class="form-control" />]]></search>
<add position="replace"><![CDATA[<?php if ($stock_quantity > 1) { ?>
<input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2" id="input-quantity" class="form-control" />
<?php }?>]]></add>
</operation>

<operation>
<search><![CDATA[<label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label>]]></search>
<add position="replace"><![CDATA[<?php if ($stock_quantity > 1) { ?>
<label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label>
<?php }?>]]></add>
</operation>
</file>

<!-- search in category position for replace //-->
<file path="catalog/controller/product/category.php">
<operation>
<search><![CDATA[$data['products'][] = array(]]></search>
<add position="after"><![CDATA['quantity' => $result['quantity'],
'text_out_of_stock' => $result['stock_status'],
]]></add>
</operation>
</file>

<file path="catalog/view/theme/*/template/product/category.tpl">
<operation>
<search><![CDATA[<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>]]></search>
<add position="replace"><![CDATA[<?php if ($product['quantity'] < 1) { ?>
<button type="button" disabled="disabled" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-warning"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $product['text_out_of_stock']; ?></span></button>
<?php } else { ?>
<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>
<?php } ?>]]></add>
</operation>
</file>

<!-- note: You can duplicate this part for other modules to be used in the store //-->
<!-- search in module featured for replace //-->
<file path="catalog/controller/module/featured.php">
<operation>
<search><![CDATA[$data['products'][] = array(]]></search>
<add position="after"><![CDATA['quantity' => $product_info['quantity'],
'text_out_of_stock' => $product_info['stock_status'],
]]></add>
</operation>
</file>

<file path="catalog/view/theme/*/template/module/featured.tpl">
<operation>
<search><![CDATA[<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>]]></search>
<add position="replace"><![CDATA[<?php if ($product['quantity'] < 1) { ?>
<button type="button" disabled="disabled" onclick="cart.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-warning"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $product['text_out_of_stock']; ?></span></button>
<?php } else { ?>
<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>
<?php } ?>]]></add>
</operation>
</file>
<!-- note: You can duplicate this part for other modules to be used in the store //-->

<!-- search ins search store replace buttom //-->
<file path="catalog/controller/product/search.php">
<operation>
<search><![CDATA[$data['products'][] = array(]]></search>
<add position="after"><![CDATA['quantity' => $result['quantity'],
'text_out_of_stock' => $result['stock_status'],
]]></add>
</operation>
</file>

<file path="catalog/view/theme/*/template/product/search.tpl">
<operation>
<search><![CDATA[<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>]]></search>
<add position="replace"><![CDATA[<?php if ($product['quantity'] < 1) { ?>
<button type="button" disabled="disabled" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-warning"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $product['text_out_of_stock']; ?></span></button>
<?php } else { ?>
<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>
<?php } ?>]]></add>
</operation>
</file>
</modification>

i to też działa :D z tym że musiałem zamienić w pliku xml linijkę

<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>

na

<button type="button" value="<?php echo $button_cart; ?>" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?>

bo tak wygląda linijka po wprowadzeniu wyboru ilości do kategorii.

I problem polega na tym że :oops:

Guzik się blokuje gdy nie ma czegoś na stanie - działa , wybór ilości się pokazuje - ok ale już w wyborze ilości czy wpiszę 1 czy 100 i tak dodaje 1 :( - usunę plik xml wybór ilości działa, przy pliku xml przestaje działać wybór ilości = na pewno trzeba te dwa kody jakoś połączyć ze sobą tak, aby dodatkowy plik xml nie przeszkadzał w dodawaniu ilości.

Ma ktoś jakiś pomysł aby mi pomóc, albo ma inne prostrze rozwiązanie, wydaje mi się że to jakaś prosta sprawa ale nie jestem biegły w takich kodach.

Z góry byłbym wdzięczny bo siedzę już trzeci dzień i nie mogę się z tym uporać. Dziwię się że tak mało osób nie chcę aby się blokował guzik do koszyka gdy nie ma jakiegoś towaru na stanie...
adam.skrzynka2
 
Posty: 16
Dołączył(a): 23 kwi 2016, o 21:59

Re: ilość w kategorii i info o braku towaru

Postprzez adam.skrzynka2 » 1 cze 2016, o 21:37

Witam, tak dla kogoś w przyszłości kto będzie miał taki problem, poradziłem sobie ściągając inny dodatek o nazwie esgotado (sold old) , w tym pliku xml pozmieniałem wszystkie guziki button na nowe z pliku catalog (zmienione przez dodanie ilości produktu do kategorii), skopiowałem w nim język i dostosowałem na Polski i ten dodatek świetnie sobie radzi i współpracuje.

Temat do zamknięcia.
adam.skrzynka2
 
Posty: 16
Dołączył(a): 23 kwi 2016, o 21:59

Re: ilość w kategorii i info o braku towaru

Postprzez Igor555 » 7 lut 2017, o 09:10

Dzięki. Skorzystam z obu porad.
Igor555
 
Posty: 1
Dołączył(a): 13 sty 2017, o 14:37


Powrót do Pomoc przy modułach Opencart

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości

cron