Próbuję utworzyć produkt z dwoma niestandardowymi polami tekstowymi: Długość i Szerokość. Gdy użytkownik wpisze zarówno długość, jak i szerokość, cena musi zostać obliczona za pomocą formuły niestandardowej.
Próbuję znaleźć właściwe zdarzenie, z którym można połączyć obserwatora - ktoś wie, co to może być?
Oto, co wiem i próbowałem
1) niestandardowe pole tekstowe w widoku produktu zawiera zdarzenie onchange, w którym jeszcze nie wymyśliłem, jak skorzystać z tego zdarzenia za pomocą zdarzenia obserwatora - „opConfig.reloadPrice ()
2) Jeśli zbuduję obserwatora na zdarzeniu sales_quote_add_item, mogę zmienić cenę za pomocą formuły, gdy zostanie dodana do koszyka. Dzięki tej metodzie wciąż potrzebuję sposobu, aby to zmienić w widoku produktu, zanim zostanie dodany do koszyka.
3) Próbowałem również zdarzenia catalog_product_get_final_price, ale wydaje się, że jest uruchamiane tylko po załadowaniu strony produktu, więc po dodaniu długości lub szerokości produktu nie jest uruchamiane ponownie.
Wszelkie pomysły będą mile widziane!
źródło
Odpowiedzi:
Użyłem tego przypadku użycia
sales_quote_collect_totals_before
:Po stronie klienta możesz po prostu użyć kilku wierszy JS, aby zaktualizować cenę?
źródło
catalog_product_get_final_price
jest prawidłowym zdarzeniem po stronie serwera, jest uruchamiane nie tylko po załadowaniu strony produktu, ale także po dodaniu produktu do koszyka. W takim przypadku masz wszystkie wybrane opcje niestandardowe dostępne z:(Zobacz także: Czy istnieje sposób, w jaki użytkownik może ustawić niestandardową żądaną cenę większą niż zero i przejść do koszyka dla dowolnego produktu? )
Ponowne obliczanie ceny na stronie produktu to kolejny temat i wymaga JavaScript.
reloadPrice
jest właściwą funkcją do podłączenia, chciałbym rozszerzyć ją w następujący sposób:źródło