Mam produkty skonfigurowane identycznie (o ile wiem) i wszystkie zostały zaimportowane za pomocą uniwersalnego szablonu CSV.
- Cena konfigurowalna to 29,99
- Powiązany prosty produkt z krótkim rękawem to 29,99
- Powiązany prosty produkt z długim rękawem to 39,99
Niedawno wystawiono fakturę za produkt z długim rękawem ( ZTWS-SBLS-XL ), który ma cenę 39,99, a cena produktu z możliwością konfiguracji 29,99. Jak zmusić prostą cenę produktu, aby zastąpiła konfigurowalną cenę produktu? Oba poniższe produkty są skonfigurowane identycznie z nadrzędnym produktem konfigurowalnym i jako produkty proste.
Faktura:
Item Sku Qty Subtotal
Item one ZLOB-SBLS-XL 1 $39.99
Item Two ZTWS-SBLS-XL 1 $29.99
EDYCJA: Nadal pracuję nad rozwiązaniem tego problemu. Co sprawiłoby, że Magento wolałoby prostą cenę produktu niż konfigurowalna cena produktu lub powiązana cena atrybutu produktu?
Odpowiedzi:
Kiedy tworzysz konfigurowalny produkt, nie ma znaczenia, jaka jest cena prostych produktów - ceny te są całkowicie ignorowane. Więc jeśli chcesz sprzedać prosty produkt A, który ma cenę 29,99 USD i prosty produkt B (39,99 USD), musisz utworzyć produkt konfigurowalny, ustawić jego cenę na 29,99 USD i otworzyć kartę Powiązany produkt . Dodaj produkty, które chcesz powiązać z tym konfigurowalnym produktem. Po ich dodaniu pojawia się blok o nazwie Konfiguracja atrybutów Super produktu, który zawiera opcje i różnice cenowe. Pozostaw produkt A cenę pustą i umieść 10 (+ 10 USD) w polu ceny produktu B i voila: różne proste produkty mają inną cenę.
W rzeczywistości istnieje rozszerzenie, które pozwala korzystać z prostych cen produktów zamiast różnic cen, ale konfiguracja jest dość trudna. Ponieważ jest to bezpłatne rozszerzenie, mam nadzieję, że nikt nie narzeka, że wkleiłem tutaj jego link:
https://github.com/organicinternet/magento-configurable-simple
źródło
Tak więc używam poniższego kodu w połączeniu z rozszerzeniem, takim jak proste produkty organiczne z możliwością konfiguracji w Internecie.
Poniższy kod jest przeznaczony dla procesu koszyka / kasy, w gruncie rzeczy jest to aktualizacja konfigurowalnego modelu cen, który przekazuje kalkulację ceny do prostego produktu w przypadku, gdy produkt został dodany do koszyka --- to rozwiązanie NIE wyświetla ceny na samej stronie produktu (jednak istnieje wiele rozszerzeń, które już to robią).
Zaktualizuj aplikację / code / core / Mage / Catalog / Model / Product / Type / Configurable / Price.php (najlepiej używasz rozszerzenia lub zastąpienia lokalnego w app / code / local)
Zaktualizuj metodę: getFinalPrice, zmień na
Następnie dodaj tę funkcję bezpośrednio pod getFinalPrice:
Możesz zobaczyć, że w przypadku, gdy użytkownik „dostosował” produkt (IE, wybrane opcje konfigurowalne), określamy powiązany prosty produkt i przekazujemy kontrolę nad jego modelem cenowym, w przeciwnym razie, jeśli produkt nie będzie „dostosowany” (tj. przeglądamy na stronie produktu) postępujemy jak zwykle
źródło
Korzystanie z Magento w wersji 1.9.2.2
Może być nieco lepsze rozwiązanie, użyj podejścia „obserwator” zamiast włamać się do rdzenia lub nawet przesłonić domyślną klasę ceny modelu, tj. App / code / core / Mage / Catalog / Model / Product / Type / Configurable / Price.php
Wszystko, co musisz zrobić, to użyć kodu Alana w swoim nowo utworzonym Observerie, jedyną różnicą jest zamiast powrotu
Zastąp go następującym:
Śledź ten Observer.php
Config.xml
Mam nadzieję, że rozwiązuje problem .. :)
źródło
Jeśli proste produkty mają inną cenę, ale są skonfigurowane w stosunku do produktu konfigurowalnego bez ustawienia ceny, stałego lub procentowego, wówczas zostanie wzięta cena produktu konfigurowalnego. Bez względu na to, jakie proste produkty są kupowane, ich cena nie jest brana pod uwagę.
Aby to zaktualizować, przejdź do produktu nadrzędnego w sekcji administratora, a następnie w zakładce
Associated Products
możesz zaktualizować cenę każdego produktu podrzędnego, aby dodać dodatkową cenę do ceny produktów nadrzędnych .źródło
Mam również ten sam problem i rozwiązałem go, używając poniższego kodu. Będzie działał również po stronie administratora, jeśli złożysz zamówienie od administratora (w przypadku zamówienia telefonicznego)
Obserwuj to wydarzenie,
i dodaj poniższy kod w swoim Observer.php
Otrzyma odpowiednią cenę produktu i zostanie zapisana w ofercie.
źródło
$item->setOriginalCustomPrice($sprice);
i$item->setOriginalPrice($price);
, co pozwala na wiele konfigurowalnych przedmiotów, które wskazują ten sam produkt, w koszyku, w różnych cenach.Postępuj zgodnie z poniższymi krokami, aby zmienić cenę super atrybutu
Najpierw skorzystaj z obserwatorów „katalog_produktu_get_final_cena” Ustaw obserwatorów w ten sposób:
Otwórz moduł config.xml i użyj poniższego kodu:
Teraz utwórz plik Observer.php w modelu i przeszłości poniżej kodu
Teraz otwórz aplikację / design / frontend / default / yourtheme / template / catalog / product / view / type / options / configurable.phtml i wklej poniżej kodu w dowolnym miejscu pliku
Teraz otwórz js / varien / configurable.js i zmień funkcję reloadPrice jak poniżej lub możesz zastąpić całą tę funkcję
Kod pochodzi z: http://chandreshrana.blogspot.in/2016/03/set-simple-product-price-instead-of.html
źródło