Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Custom Options cena opcji zależna od ilości dodanej do kosza
 
seo9
Jr. Member
 
Avatar
Total Posts:  6
Joined:  2011-10-26
 

Jak w temacie potrzebuję zmodyfikować nieco funkcjonalność Custom Options (ostatniej zakładki w menu dodawania produktu).
A mianowicie potrzebuję żeby była możliwość wstawiania różnych cen za opcje dodatkowe.
W zależności od tego jaką ilość danego produktu klient wybierze (ilości są już zdefiniowane - mod. fixed quantity) cena za opcję dodatkową będzie dynamicznie dopasowana do danego nakładu.

Np:
przy nakładzie 10000szt - opcja dodatkowa kosztuje 1zł/szt, a przy nakładzie 500szt tego samego produktu, ta sama opcja dodatkowa kosztuje już 2zł/szt.

Zacząłem działać w tej kwestii i zamieszczam to co do tej pory udało mi się zrobić.
Co wy na to, jak to dalej ugryźć?

OK, widzę że trzeba zacząć coś działać. Krok po kroku postaram się opisać to co robię, może komuś się przyda, a może i ktoś pomoże - na co liczę smile

1. W bazie danych w tabeli catalog_product_option dodajÄ™ dwie nowe kolumny - from_qty i to_qty korzystajÄ…c z konsoli sql (najpierw zaznaczam tÄ… tabelÄ™):

ALTER TABLE  `catalog_product_optionADD  `from_qtyINT10 ) DEFAULT  '0' AFTER  `sort_order` ;

i jeszcze druga kolumna:

ALTER TABLE  `catalog_product_optionADD  `to_qtyINT10 ) DEFAULT  '0' AFTER  `from_qty` ;

OK tabele mamy gotowe, jeszcze z poziomu struktury tabeli catalog_product_option edytujÄ™ nowe kolumny ustawiajÄ…c atrybut: unsigned, komentarz:from_qty i to_qty i odznaczam NULL.

Baza danych gotowa, teraz kod. Zaczynam od modyfikacji layout-u adminhtml:

Go to:

\www\magento\app\design\adminhtml\default\default\template\catalog\product\edit\options

Tutaj mam plik option.phtml

Teraz wstawiam poniżej linii 43:

'<th class="opt-order"><?php echo Mage::helper('catalog')->__('Sort Order') ?></th>'+

następujący kod:

'<th class="opt-qty"><?php echo Mage::helper('catalog')->__('From Qty') ?><span class="required">*</span></th>'+
'<th class="opt-qty"><?php echo Mage::helper('catalog')->__('To Qty') ?><span class="required">*</span></th>'+

Następnie w tym samym pliku poniżej kodu około linii 55:

'<td><input type="text" class="validate-zero-or-greater input-text" name="<?php echo $this->getFieldName() ?>[{{id}}][sort_order]" value="{{sort_order}}"></td>'+

wstawiam ten kod:

'<td><input type="text" class="required-entry input-text" id="<?php echo $this->getFieldId() ?>_{{id}}_from_qty" name="<?php echo $this->getFieldName() ?>[{{id}}][from_qty]" value="{{from_qty}}"></td>'+
'<td><input type="text" class="required-entry input-text" id="<?php echo $this->getFieldId() ?>_{{id}}_to_qty" name="<?php echo $this->getFieldName() ?>[{{id}}][to_qty]" value="{{to_qty}}"></td>'+

Co zostało zrobione: dwie kolumny przetrzymujące przedział ilościowy - od ilości i do ilości, oraz zmodyfikowana została karta produktu, a dokładnie zakładka Custom Options - w której teraz podczas dodawania nowej opcji mamy możliwość zdefiniowania przedziału cenowego co ładnie nam się zapisuje do bazy.

W tym momencie funkcjonalność modyfikacji pozwala na zapisanie do bazy wartości from_qty i to_qty, ale jeszcze ich nie wyświetla.

Aby to naprawić, Go to:

\www\magento\app\code\core\Mage\Adminhtml\Block\Catalog\Product\Edit\Tab\Options

Otwieram plik Option.php

Pod liniÄ… 238:

$value['sort_order'$option->getSortOrder();

Dodajemy kod:

$value['from_qty'$option->getFromQty();
$value['to_qty'$option->getToQty();

Teraz w panelu w zakładce Custom Options edycji produktu ładnie wyświetlają się widełki od ilości i do ilości.

No i teraz chwila namysłu co dalej?
Fundament jest, trzeba go zastosować do frontend-u
jeśli ktoś wie jak to zrobić to niech pisze, ja myślę co dalej z tym, jak coś będę miał to się podzielę.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top