Domanda

Ho creato una pagina stampabile di dettagli del prodotto e tutto sta funzionando bene. L'unica cosa che sta fallendo sta controllando se Prezzo di bambino del prodotto è fisso o percentuale;

entrare descrizione dell'immagine qui

Non ho opzioni personalizzate con successo recuperati e controllato per il tipo di prezzo come segue:

//get options                   
            $options = $product->getOptions();

        foreach ($options as $option)
        {
            $o = $option->getValues();

            foreach ($o as $v)
            {
                //if price_type fixed = echo price
                if ($v["price_type"] == "fixed")
                {
                    $optPrice = $v["price"];
                } //else percent = echo product price + %
                else
                {
                    $optPrice = $priceExcTax * ($v["price"]/100);
                }

                //number_format price
                $optPrice = number_format($optPrice, 2);

                //echo price and title

                $output .= $v['title'] . " (+ &pound;" . $optPrice . " + VAT)<br />";
            }
        }

speravo questo dovrebbe funzionare in modo simile per i prodotti per bambini, ma ho provato quanto segue senza fortuna;

$confAttributes = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
                        foreach ($confAttributes as $confAttribute)
                        {
                            echo "<em>Choose " . $confAttribute['store_label'] . "...</em><br />";

                            foreach ($confAttribute["values"] as $value)
                            {
                                echo $value["label"] . " (+ &pound;";

                                //if price_type fixed = echo price
                                if ($value["price_type"] == "fixed")
                                {
                                    $optPrice = $value["pricing_value"];
                                }
                                else //else percent = product price + %
                                {
                                    $optPrice = $priceExcTax * ($value["pricing_value"]/100);
                                }

                                $optPrice = number_format($optPrice,2);
                                echo $optPrice . " + VAT)<br />";
                            }
                        }

Avendo cercato un po 'ho anche provato;

if ($value["is_percentage"])

senza fortuna sia.

Il prezzo dei prodotti bambino è sempre visto come fisso, Chiunque può aiutare?


UPDATE:

Ho anche guardato il prodotto che sto testando nel database crudo e può vedere il campo 'is_percent' in modo non sono sicuro del perché tutto ciò che cerco non funziona.

È stato utile?

Soluzione 2

ho trovato la mia risposta, dopo un po 'di aiuto e l'ulteriore guardando il mio codice. Davvero @mageUz ha risposto alla mia domanda, ma quando l'ho provato, non ha funzionato come mi è stato completamente all'indietro in cui stavo mettendo il codice.

Per verificare il tipo di prezzo il campo $value['is_percent'] c'è e funziona.

lezione da imparare qui, assicuratevi di controllare il codice e che si sta mettendo le cose giuste nei posti giusti e in secondo luogo con echo '<pre>' . print_r(<the-var-you-want>) . '</pre>' è un ottimo strumento.

Altri suggerimenti

Usa if ($value["is_percent"]). Ecco campi $confAttribute["values"]:

Array
(
    [product_super_attribute_id] => 11
    [value_index] => 45
    [label] => 4a
    [default_label] => 4a
    [store_label] => 4a
    [is_percent] => 1
    [pricing_value] => 10.0000
    [use_default_value] => 1
)

E se si utilizza prezzo in percentuale che si deve introdurre il valore Thero non valida all'ingresso prezzo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top