PDA

Zobacz pełną wersję : VM produkty w promocji



DannyM
13-06-2006, 12:13
Chce troche shakowac VM dodajac mu miniaturke albo w opisie albo w detalach opisu, ze dany produkt jest w promocji. Czy ktos wykonywal moze taka operacje?
Wiem, ze trzeba to zrobic w templetce sklepu i w detalach {product_special} i w opise oraz w shop.product_details.php


$template = str_replace( "{product_special}", $product_special, $template );

Ale dalej stanelem. Moze ktos pociagnie to dalej bo sadze, ze warto oznaczyc produkty promocyjne. :)

Zrobilem taki maly test: shop.product_details.php

/** ----------------- PRODUCT PROMOCJA ------------------- **/
$q = "SELECT * FROM #__{vm}_product WHERE product_id='$product_id' ";
if ($db->p("product_special")=="") {
echo "BEZ PROMOCJI";
} else {
echo "PROMOCJA";
}

No i niestety nie fika tak jak trzeba. Moze ktos to poprawic

comet
20-06-2006, 16:00
if ($db_product->f("product_special")=="Y") {
$product_special="Promocja";
} else {
$product_special="Bez promocji";
}

to wystarczy ( musi być gdzieś przed
$template = str_replace( "{product_special}", $product_special, $template ); )

DannyM
20-06-2006, 16:45
if ($db_product->f("product_special")=="Y") {
$product_special="Promocja";
} else {
$product_special="Bez promocji";
}

to wystarczy ( musi być gdzieś przed
$template = str_replace( "{product_special}", $product_special, $template ); )

No pieknie :)
Jednym slowem bylem blisko ale dzieki za pomoc :)

DannyM
21-06-2006, 11:00
Mam ten sam problem w wykazie produktow shop.browse.php
Sadze, ze to problem odwolania do bazy.

Czy w tym przypadku ma byc
if ($db_browse->f("product_special")=="Y") {
a moze
if ($dbp->f("product_special")=="Y") {

Nie do konca rozumiem jak to dziala.
Wynikiem tego jest puste miejsce. Moze byc tak, ze w zlym miejscu osadzilem kod ale malo prawdopodobne. Jeszcze bede testowal. Bede wdzieczny za podpowiedz :)

Dodam, ze jest dodana linia:
$product_cell = str_replace( "{product_special}", $product_special, $product_cell );

nieznamsie
29-08-2006, 11:50
I jak to się to skończyło?? Wkleiłem to do siebie w karcie produktu dziala, a na listach nie. Troche modyfikowałem i albo nic mi się nie wyswietla albo wszystko jest w promocji. Nie rozróżnia czy to jest w promocji czy nie jest w promocji, wyswietla jak leci...

Chciałbym poznac rozwiązanie tego problemu, prosze o pomoc jak ktos już to m.

pozd.

comet
03-09-2006, 10:19
powinno byc tak

$promocja=$db_browse->f("product_special");
if ($promocja=="Y")
$promocja="Promocja";

else

$promocja="Bez promocji";

ale ważne - trzeba dodac w pliku shop_browse_queries.php nazwę pola

$fieldnames = "product_name,products_per_row,category_browsepage, category_flypage,#__{vm}_product.product_id,#__{vm }_product.product_special,#__{vm}_category.categor y_id,product_full_image,product_thumb_image,produc t_s_desc,product_parent_id,product_publish,product _in_stock,product_sku";


innymi przydatnymi polami są :

cdate - aby zaznaczyc produkty które są ostatnio dodane
product_in_stock - ilosc w magazynie
product_availability - dostępnośc

nieznamsie
03-09-2006, 15:01
Dzięki za info, ale nie zadziałało... ale zacząłem kombinować i zrobiłem tak:
w shop.browse.php dodałem:

if ($db_browse->f("product_special")=="Y") {
$product_special="Promocja";
} else {
$product_special="Bez promocji";
}

oraz

$product_cell = str_replace( "{product_special}", $product_special, $product_cell );

w pliku shop_browse_queries.php dodałem to co jest na czerwono:

$fieldnames = "`#__{vm}_product`.`product_special`,`product_name` ,`products_per_row`,`category_browsepage`,`categor y_flypage`,`#__{vm}_product`.`product_id`,`#__{vm} _category`.`category_id`,`product_full_image`,`pro duct_thumb_image`,`product_s_desc`,`product_parent _id`,`product_publish`,`product_in_stock`,`product _sku`";

no i działa :)

Dzięki za wszystkie wskazówki...

mirekmc
16-02-2007, 22:37
Próbuję dodać słowo "promocja" do produktów wyświetlanych na listach, ale niestety mi nie podmienia {product_special} na słowo "promocja". Zrobiłem następująco:

Do pliku "shop_browse_queries.php" dodałem:

$fieldnames = "`#__{vm}_product`.`product_special`,`product_name` ,`products_per_row`,`category_browsepage`,`categor y_flypage`,`#__{vm}_product`.`product_id`,`#__{vm} _category`.`category_id`,`product_full_image`,`pro duct_thumb_image`,`product_s_desc`,`product_parent _id`,`product_publish`,`product_in_stock`,`product _sku`";

Do pliku "shop.browse.php" dodałem:

/** w promocji **/

if ($db_browse->f("product_special")=="Y") {
$product_special="Promocja";
} else {
$product_special="Bez promocji";
}

i dopisałem również do pliku "shop.browse.php"
$product_cell = str_replace( "{product_special}", $product_special, $product_cell );


Następnie do pliku "browse_1.php" dopisuję w szablonie wyświetlania listy produktów {product_special} i nie zamienia mi tego na słowo "promocja".

Co robię źle? Proszę o podpowiedź.

Leonardo
20-02-2007, 13:31
Mam pytanie o rozwinięcie tego tematu. Mianowicie uważam, że to dobry pomysł aby wyeksponować (ułatwić znalezienie) produktów w promocji. Jednakże może by łatwiej było, aby dodać do możliwości sortowania (w przeglądaniu wszystkich produktów) np. "sortuj wg. Pordukt w promocji". Czy to możliwe?
Albo (to drugi pomysł) dodać do modułu featured_products pasek nawigacji (pomysł ten byłby również dobry dla modułu latest_products) umożliwiający przeglądnięcie wszystkich promocji (kombinowałem, ale nie mogę dojść jak to zrobić).
Obecnie w standardzie nie ma takiej możliwości, ale wielu z nas proponuje po kilkadziesiąt lub kilkaset produktów w promocji (mając w sklepie np. kilka tysięcy).

mirekmc
20-02-2007, 13:37
Możesz zainstalować bota, za pomocą którego możesz wstawiać moduły w treść artykułu. Bot nazywa się "module bot". Następnie za pomocą odpowiedniego kodu wstawiasz w treści artykułu moduł, który wyświetla produkty w promocji, w menu dajesz link do artykułu, który nazywasz np. "produkty w promocji" i masz dział z produktami w promocji.

Przy okazji, odnośnie mojego poprzedniego postu.
Udało się zrobić ikonkę przy produktach w promocji. Kolejny raz tym samym sposobem dodawałem informacje do plików, i zadziałało. Chyba poprzednio jakaś literówka była i dlatego był problem.

Pozdrawiam,
Mirek

Leonardo
20-02-2007, 13:50
Ja mam tak zrobione, ale moduł pokazuje ci określoną liczbę produktów w promocji, ale nie wszystkie, bo nie masz możliwości przeglądania (po kolejnych stronach). Mając kilkaset produktów w promocji osiągniemy gigantyczną długość strony i właśnie problem w tym jak to podzielić?

Leonardo
20-02-2007, 13:54
Znalazłem coś takiego, ale niestety dział tylko na jednej stronie :( http://virtuemart.net/index.php?option=com_smf&Itemid=71&topic=23495.0
Czy byłbyś w stanie to poprawić?

mirekmc
20-02-2007, 14:20
Próbuję dodać to do VM. sprawdzę jak działa.
Co do przeróbek nic nie mogę obiecać, ale postaram się coś w tym podłubać na tyle na ile znam php.

comet
20-02-2007, 15:04
no przecież masz wstawiony pasek nawigacji dla modułu featured_products

mirekmc
20-02-2007, 15:10
Ja mam moduł w którym nie widzę paska, albo przynajmniej nie mogę go znaleźć.

Pozdrawiam,

Leonardo
20-02-2007, 15:19
Cześć Comet, ale grzebię nad drugą stroną i tam nie mogę sobie z tym poradzić. Czy kopiując plik php osiągnę to samo na drugiej stronie www?
Mam problem z paginacją listy wszystkich produktów. Ustawiłem długość listy w konfiguracji strony na 10 pozycji, a i tak pokazuje mi się 30 (wartość domyślna). Przypuszczam że może chodzić tutaj o plik includes/pageNavigation ale zminiając paramtery (domyślnie jest for ($i=5; $i <= 30; $i+=5) ) nic nie osiągnąłem, bo ustawiając nawet wartość <= 30 na 10, nadal pokazuje się 30 pozycji

Leonardo
20-02-2007, 15:23
mirekmc wstaw łącze url do menu zobaczysz wtedy tą stronę, jest ona zrobiona na bazie shop.browse

mirekmc
20-02-2007, 16:07
Rzeczywiście działa, tylko musiałem dodać jakiś typ zniżki dla produktu, a ja miałem ustawione promocje przez opcję "product_special", dlatego nie działało mi to.

Leonardo
20-02-2007, 16:30
Kliknij na kolejną stronę, zobaczysz, że pokazują się już nie tylko produkty z promocją. Dlatego sądzę, że gdzieś tam jest błąd.

mirekmc
20-02-2007, 18:16
Rzeczywiście, jak kliknę na drugą stronę to wyświetla wszystkie produkty jakie są w sklepie.
Spróbuję przyjrzeć się tym plikom, jednak jeśli ktoś bardziej zorientowany może pomóc to byłoby super, bo średnio znam php.

Leonardo
21-02-2007, 08:46
Próbowałem w nocy zastosować rozwiązanie z mojej dotychczasowej strony z hackami od Cometa, ale też sprawa rozbija się o pasek nawigacji. Sądzę więc, że problem może tkwić w pliku includes/pageNavigation.php lub w tych wstawionych plikach shop.browse_discounted i shop_browse_discounted_queries, a dokładnie w odwołaniach nawigacyjnych na dole tych plików. Niestety nie znam się na php, a mam jeszcze jeden problem z kodem nad którym się głowię

mirekmc
21-02-2007, 21:59
Hej,
Leonardo, problem nie tkwił w pliku "includes/pageNavigation.php", tylko w pliku "administrator/components/com_virtuemart/html/shop.browse_discounted.php". Pogrzebałem w pliku i poprawiłem linię 151.

Po moich poprawkach wygląda ona tak

search_string = $mm_action_url."index.php?option=com_virtuemart&page=$modulename.browse_discounted&category_id=$category_id&keyword=".urlencode( $keyword )."&manufacturer_id=$manufacturer_id&Itemid=$Itemid";


Dopisałem to, co jest czerwonym kolorem. U mnie już działa, i wydaje mi się, że jest OK, ale sprawdź u siebie. Przetestuj, jakbyś znalazł jakiś błąd to będę próbował poprawić.

Pozdrawiam,
Mirek

Leonardo
21-02-2007, 23:13
Działa! To się chyba przyda innym. Przyszedł mi pewien pomysł do głowy, bo to się może bardzo przydać użytkownikom, którzy mają bardzo dużo produktów w sklepie. Może by spróbować dostosować to do nowości? Jutro spróbuję się pobawić i jak mi coś wyjdzie to dam ci znać.
Mam do ciebie jeszcze jedną prośbę jako, że potrafisz grzebać w kodzie. Chodzi mi mianowicie o hack (przyda się i tobie), który kiedyś zrobił mi Comet, ale widzę w nim błąd.
Masz tutaj link do strony testowej, gdzie stawiam drugą stronę:
http://www.leonardo-hurt.info/index.php?page=shop.product_details&flypage=shop.flypage&product_id=48&category_id=7&manufacturer_id=0&option=com_virtuemart&Itemid=47
spójrz na dół na dodatkowe zdjęcia (ładuje je się nie ręcznie, ale w pliku csv razem z produktami, czyli wszystko razem). Powinny wyświetlać się zdjęcia od z1 do z9, a na każdej stronie oprócz tej:
http://www.leonardo-hurt.info/index.php?page=shop.product_details&flypage=shop.flypage&product_id=17&category_id=7&manufacturer_id=0&option=com_virtuemart&Itemid=49
wyświetlają się wszystkie zdjęcia oprócz z1 i z3. Jak będziesz zainteresowany to podeślę ci kod, a po porawkach (o ile się udadzą;) ) wytłumaczę ci jak to zrobić z bazą danych i modyfikacją innych plików

mirekmc
22-02-2007, 09:28
Załączam poprawiony plik wyświetlający produkty, gdyby ktoś chciał go pobrać.
385


A zdjęciom chętnie się przyjrzę, tym bardziej, że też się rozglądam za jakimś sposobem dodawania kilku zdjęć do produktów.

Pozdrawiam,

Leonardo
22-02-2007, 10:19
Masz skypa? Mój adres leonardo-kalisz
Prześlę ci pliki przez skypa

robbertson
01-09-2008, 21:57
Witam
Czy ten kod powinien rowniez zadzialac w vm 1.1?
bo mi ja na razie nic z tego nie wychodzi :-(

Pozdrawiam
Robert


if ($db_product->f("product_special")=="Y") {
$product_special="Promocja";
} else {
$product_special="Bez promocji";
}

to wystarczy ( musi być gdzieś przed
$template = str_replace( "{product_special}", $product_special, $template ); )