[Magento 1.4.0.1] Upsell id's bij product listing verkrijgen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DAMAGE
  • Registratie: December 2001
  • Laatst online: 13:55

DAMAGE

a.k.a. Rice_NL

Topicstarter
Hallo mensen!

Ik zit met een klein probleempje waar ik al 4 dagen mee bezig ben. Nu "programmeer" ik echt al jaaaaren in PHP en er is nog nooit echt iets geweest wat ik niet heb kunnen oplossen... Maar nu sta ik toch voor iets waar ik niet uit lijk te komen. Het gaat om iets dat ik graag in Magento zou willen doen, maar waar ik niet uit kom. Ik zal het even proberen te omschrijven.

Ik ben op dit moment bezig met een Magento webshop, en nu was mijn idee om in de productlisting onder het product, een aantal vierkante blokjes et maken met CSS opmaak in een bepaalde kleur, die de beschikbare kleuren weergeeft. Ik heb dit idee al helemaal uit gewerkt hoe het zou moeten gaan werken.

Elk product heeft een nieuw attribuut mee gekregen welke kleurcode heet. Hier in komt een HTML kleur code te staan. Dus elk product krijgt respectievelijk een kleurcode mee.

Nu wilde ik dus in de productlisting voor elk product gaan kijken of deze UpSells heeft. Als hij upsells heeft (dit kun je al standaard dus in de admin aangeven) dan zouden dit vast product id's zijn van de producten welke dus de up sells vertegenwoordigen van dat product. Nu je dus die product id's hebt, moet je lijkt mij vrij simpel de artributen kunnen opvragen van dat id toch? Dus dan kun je ook weer vrij makkelijk de kleur code op vragen, en zo dus voor elke upsell, de kleur code kunnen printen in een divje.

Nu lukt het mij dus maar niet om de upsell informatie per product in de product listing te krijgen. Vanzelf sprekend ben ik dan ook nog niet verder gekomen hier mee... Ik loop al 4 dagen achter elkaar in de source code te zoeken, ik heb google geprobeerd en zelfs een topic gemaakt op de Magento Forums waar niemand wat weet schijnt het...

Zitten hier wellicht mensen die mij hierbij een stapje in de goede richting kunnen geven? Ik blijf ondertussen lekker door googlen en proberen dingen in de source code te vinden, maar ik vind het allemaal maar erg ingewikkeld omdat je echt in duizenden files zit tegenlijk.. Dus mocht er hier iemand zijn, dan is mijn dank echt groot!

Lian Li O11 Dynamic EVO | Corsair HX1500i | Intel i9 13900K | ASUS Maximus HERO Z790 | 32GB GSkill Trident Z5 7200 DDR5 | Samsung 980 Pro 2TB | RTX 4080 | Simucube 2 Pro wheel


Acties:
  • 0 Henk 'm!

  • pderaaij
  • Registratie: Oktober 2005
  • Laatst online: 18-08 20:16
Magento... ben er sinds kort ook veel mee bezig en je kan er letterlijk uren in verzanden om iets te vinden.

Wat betreft je upsell probleem, wellicht kan dit je verder helpen: http://www.magentocommerc...roducts_based_on_grouping

Ik ben wel benieuwd naar je oplossing als je hem hebt!

Acties:
  • 0 Henk 'm!

  • DAMAGE
  • Registratie: December 2001
  • Laatst online: 13:55

DAMAGE

a.k.a. Rice_NL

Topicstarter
Inderdaad man! Echt een drama is het. Het zit echt prachtig in elkaar, don't get me wrong... En het maakt gebruik van een prachtig framework... Maar om er in te komen is echt wel even pittig. Ik ben namelijk zelf gewend om alles zelf te programmeren. Ik heb zelf veel gebruik gemaakt van OsCommerce en dat zit echt slecht in elkaar. Vandaar de overstap naar Magento.

Ontzettend bedankt voor je post. Ik hoop dat ik er wat mee kan en zulke links zijn zeker behulpzaam! Ik ga me er in verdiepen en ik laat het je wel even weten!

Als er nog meer mensen zijn met zulk soort tips zijn die meer dan welkom...

Lian Li O11 Dynamic EVO | Corsair HX1500i | Intel i9 13900K | ASUS Maximus HERO Z790 | 32GB GSkill Trident Z5 7200 DDR5 | Samsung 980 Pro 2TB | RTX 4080 | Simucube 2 Pro wheel


Acties:
  • 0 Henk 'm!

  • DAMAGE
  • Registratie: December 2001
  • Laatst online: 13:55

DAMAGE

a.k.a. Rice_NL

Topicstarter
Ik ben er even mee bezig geweest en het is toch niet helemaal wat ik bedoelde.

De upsells staan namelijk al in de database, en als je kijkt bij het product op de product informatie pagina dan zie je ook gewoon de upsells staan. Dus dat gaat helemaal goed.

Wat ik dus wil, is die zelfde upsells die daar staan, wil ik verkrijgen op de product listing pagina, dus als je bij een categorie aan het kijken bent. Daar laat hij al de producten in de categorie zien in een lijst, dus daar moet hij voor elk product ook de upsells op halen zeg maar.

En hoe ik dat precies voor elkaar krijg is mij helaas niet duidelijk... Het klinkt heel erg simpel maar helaas niet. Ik heb geen idee hoe ik bijvoorbeeld zelf een query kan doen met het framework... Van alles geprobeerd maar loop steeds tegen fouten aan.

Lian Li O11 Dynamic EVO | Corsair HX1500i | Intel i9 13900K | ASUS Maximus HERO Z790 | 32GB GSkill Trident Z5 7200 DDR5 | Samsung 980 Pro 2TB | RTX 4080 | Simucube 2 Pro wheel


Acties:
  • 0 Henk 'm!

Verwijderd

Voor een custom query zal je bijv. Zend_Db_Adapter_Abstract moeten aanroepen via:

$write = Mage::getSingleton('core/resource')->getConnection('core_write');

$readresult = $write->query( // query );

Nu kan je custom queries aanroepen en uitvoeren.

Acties:
  • 0 Henk 'm!

  • DAMAGE
  • Registratie: December 2001
  • Laatst online: 13:55

DAMAGE

a.k.a. Rice_NL

Topicstarter
Ik had het inderdaad uitgevonden ondertussen!

Dus eindelijk kon ik queries doen... HE HE... Wat een drama :) Maar goed nu het eenmaal werkt, werkt het eigenlijk heel erg mooi! Dit is de code die ik er van gemaakt heb:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
            $db = Mage::getSingleton('core/resource')->getConnection('core_write');
            $table_prefix = Mage::getConfig()->getTablePrefix();
            $product_id = $_product->getId();
            $result = $db->query("SELECT linked_product_id FROM catalog_product_link WHERE product_id=$product_id AND link_type_id=4");
            
            #print_r($result);
            /*
            if(!$result) {
            return FALSE;
            }
            */
            $rows = $result->fetchAll(PDO::FETCH_ASSOC);


Dat is even een snippet uit mijn code hoe ik hem gebruikt heb.

Nou toen kwam het er op aan, veel spitten in de DB, en veel queries rammen in Navicat, maar uit eindelijk is het mij gelukt om van de producten de upsell producten op te halen. Daarna was het zaak om van die id's de attributen op te halen, en dan de values te tonen van store_id 1. Done!

Nu moet ik alleen nog uit zien te vinden hoe ik van mijn attribute "kleurcode" die ik dus zelf aangemaakt heb, de BACKEND value kan printen. dus van site_id 0. Dan is het helemaal perfect!

Voor mensen die willen weten waar in de database tabel de upsells staan:

Upsells staan in: catalog_product_link
link_type_id van upsells is 4.

Lian Li O11 Dynamic EVO | Corsair HX1500i | Intel i9 13900K | ASUS Maximus HERO Z790 | 32GB GSkill Trident Z5 7200 DDR5 | Samsung 980 Pro 2TB | RTX 4080 | Simucube 2 Pro wheel

Pagina: 1