Jump to content

fattura e prodotti personalizzati.


Recommended Posts

Ciao un quesito molto intrigato che deve trovare soluzione .... spero.
Dunque io nello shop ho prodotti con campi personalizzati nello specifico:

1) campo per upload di una img (non obbligatorio)

2) 4 campi testo obbligatori.
I quesiti da risolvere sono 2 uno facile credo e uno un po + difficile.

Facile..: Come elimino le img che i clienti mi inviano tramite il campo del'upload? svuoto la cartella upload?

Difficile...: vorrei che comparissero nel file pdf della fattura i campi testo obbligatori magari come nota è possibile farlo se si cosa modifico?

PS
Poi volevo ricordare una cosa io non utilizzo le fatture di prestashop, per fatturare utilizzo un software gestionale che utilizziamo anche per la vendita al banco, quindi la fattura che genera prestashop che magari chiamero Riepilogo ordine mi serve solo come promemoria per me per preparare la merce, e per il cliente per visionare il tutto magari allego scontrino ed eventualmente se c'è richiesta fare in un secondo tempo la fattura, questo se compra un privato, se è una ditta a comprare e ovvio che invio la fattura direttamente ma fatta dal gestionale separatamente.
Per questo motivo l'importanza dell'inserimento in fatture di prestashop dei campi di testo dei prodotti personalizzati.

Non lasciate in bianco il post credo che sia importante e utile per molti, quindi "senza gridare" vi chiedo gentilmente a chi ha conoscenza e esperienza avanzata su Prestashop di risolvere tale richiesta.
Ringrazio tutti ma sopratutto chi mi da idee per risolvere la questione.
Grazie ancora per l'opportunità

Link to comment
Share on other sites

Grazie Ciroco per la segnalazione ma già con l'inglese sono una frana con il Francese direi che sono franato!!
qualcuno disposto a tradurmi il 3d sopra citato?
poi non capisco perche il telefono dei clienti sulle fatture non si visualizza?
Resto fiducioso e attendo sviluppi grazie a tutti.

Link to comment
Share on other sites

In questi giorni girovagando nel codice di ps ho visto che è possibile inseire anche prodotti personalizzabili, ma non so come attivare questa funzione. Se non sbaglio è possibile fare anche l'upload di un immagine. CIao

Link to comment
Share on other sites

ciao,

Ho tradotto il post ma non centra con le personalizzazioni ma sitratta degli attributi credo, le personalizzazioni sono diverse…
no.. il post che ti ho segnalato, risponde alla tua domanda;

nel post dice:
* nel file \classes\Product.php, sostituire il codice riga 2016-2038, relativa alla funzione getAllCustomizedDatas
con il codice seguente
static public function getAllCustomizedDatas($id_cart)
   {
       if (!$result = Db::getInstance()->ExecuteS('
           SELECT cd.`id_customization`, c.`id_product`, c.`id_product_attribute`, cd.`type`, cd.`index`, cd.`value`
           FROM `'._DB_PREFIX_.'customized_data` cd
           NATURAL JOIN `'._DB_PREFIX_.'customization` c
           WHERE c.`id_cart` = '.intval($id_cart).'
           ORDER BY `id_product`, `id_product_attribute`, `type`, `index`'))
           return false;
       $customizedDatas = array();
       $i=0;
       foreach ($result AS $row)
       {
           $customizedDatas[intval($row['id_product'])][intval($row['id_product_attribute'])][intval($row['id_customization'])]['datas'][intval($row['type'])][$i] = $row;


       if (($result2 = Db::getInstance()->ExecuteS('
           SELECT cfl.`name`
           FROM `'._DB_PREFIX_.'customization_field_lang` cfl
           INNER JOIN `'._DB_PREFIX_.'customization_field` cf ON (cf.`id_customization_field` = cfl.`id_customization_field`)

           WHERE cfl.`id_lang` = 2 AND cf.`id_customization_field` = '.intval($row['index']).'')) === false)
           return false;
       foreach ($result2 AS $row2)
           $customizedDatas[intval($row['id_product'])][intval($row['id_product_attribute'])][intval($row['id_customization'])]['datas'][intval($row['type'])][$i]['name'] = $row2['name'];
           $i++;
       }
       if (!$result = Db::getInstance()->ExecuteS('SELECT `id_product`, `id_product_attribute`, `id_customization`, `quantity`, `quantity_refunded`, `quantity_returned` FROM `'._DB_PREFIX_.'customization` WHERE `id_cart` = '.intval($id_cart)))
           return false;

       foreach ($result AS $row)
       {
           $customizedDatas[intval($row['id_product'])][intval($row['id_product_attribute'])][intval($row['id_customization'])]['quantity'] = intval($row['quantity']);
           $customizedDatas[intval($row['id_product'])][intval($row['id_product_attribute'])][intval($row['id_customization'])]['quantity_refunded'] = intval($row['quantity_refunded']);
           $customizedDatas[intval($row['id_product'])][intval($row['id_product_attribute'])][intval($row['id_customization'])]['quantity_returned'] = intval($row['quantity_returned']);
       }
       return $customizedDatas;
   }



* nel file \classes\PDF, sostiuire il codice dalla riga 616 alla 638 con il seguente:

if (isset($customizedDatas[$product['product_id']][$product['product_attribute_id']]))
               {
                   $custProd ='';
                   foreach ($customizedDatas[intval($product['product_id'])][intval($product['product_attribute_id'])] AS $customizationId => $customization)
                   {
                       foreach ($customization['datas'] AS $type => $datas)
                           if ($type == _CUSTOMIZE_TEXTFIELD_)
                           {
                               foreach ($datas AS $data)
                               {    
                                   $custProd .= ', '.$data['name'].' : '.$data['value'];
                               }
                           }
                   }
                   $productQuantity = intval($product['product_quantity']) - intval($product['customizationQuantityTotal']);
                   if ($delivery)
                       $this->SetX(25);
                   $before = $this->GetY();
                   $this->MultiCell($w[++$i], 5, Tools::iconv('utf-8', self::encoding(), $product['product_name']).' - '.self::l('Customized').' - '.$custProd, 'B');
                   $lineSize = $this->GetY() - $before;
                   $this->SetXY($this->GetX() + $w[0] + ($delivery ? 15 : 0), $this->GetY() - $lineSize);
                   $this->Cell($w[++$i], $lineSize, $product['product_reference'], 'B');
                   if (!$delivery)
                       $this->Cell($w[++$i], $lineSize, self::convertSign(Tools::displayPrice($unit_without_tax, self::$currency, true, false)), 'B', 0, 'R');
                   $this->Cell($w[++$i], $lineSize, intval($product['customizationQuantityTotal']), 'B', 0, 'C');
                   if (!$delivery)
                   {
                       $this->Cell($w[++$i], $lineSize, self::convertSign(Tools::displayPrice($unit_without_tax * intval($product['customizationQuantityTotal']), self::$currency, true, false)), 'B', 0, 'R');
                       $this->Cell($w[++$i], $lineSize, self::convertSign(Tools::displayPrice($unit_with_tax * intval($product['customizationQuantityTotal']), self::$currency, true, false)), 'B', 0, 'R');
                   }
                   $this->Ln();
                   $i = -1;
                   $total_without_tax = $unit_without_tax * $productQuantity;
                   $total_with_tax = $unit_with_tax * $productQuantity;
               } 



da una veloce prova funziona.. come da allegati

Ciroco05

23181_iX55mi6uIgMvDLwsLm9Z_t

23182_NmILVEpSIryolQaWCeKf_t

Link to comment
Share on other sites

Scusami hai ragione lo provato e modificato tutto su un file originale pdf.php, e ok, solo che precedentemente avevo sostituito il file pdf.php per far si che si visualizzasse il telefono del cliente e avevo preso questo file pdf.php in un post, solo che però mi è tornato il problema del telefono in fattura che non lo vedo come posso inserirlo?

Link to comment
Share on other sites

nella riga 422>428del file pdf.php trovo

/***********end Germanoufo*******************/
$pdf->Cell($width, 10, $delivery_address->phone, 0, 'L');
if (!empty($delivery_address->phone_mobile))
{
$pdf->Ln(5);
$pdf->Cell($width, 10, $delivery_address->phone_mobile, 0, 'L');
}

Credo che serva per il telefono ma sul file della fattura in pdf non trovo il telefono
Consigli?
Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...