Jump to content

Références automatiques des déclinaisons


Recommended Posts

Bonjour,
 
J'ai sur ma page produit à l'onglet information, une case à cocher qui copie la valeur entre le premier tiret et le deuxième tiret de ma référence produits (F13-13514401-N) pour le coller entre les deux tirets de la référence de mes déclinaisons. (F13-13514401-S/M)(F13-13514401-L/XL)
 
Voici la fonction rajouté à la ligne 2092 (PS1.5.6.1) après la fonction "protected function _applyTaxToEcotax($product)" dans AdminProductsController.php

	private function updateAttributeRef($product) {
            global $cookie;
            $sep = "-";
            $first_sep_pos = strpos($product->reference,$sep);
            $second_sep_pos = strpos(substr($product->reference,$first_sep_pos+1),$sep);
            $to_chg = substr($product->reference,$first_sep_pos+1,$second_sep_pos);

            $combinations = $product->getAttributeCombinations((int)($cookie->id_lang));
            if (is_array($combinations))
            {
                foreach ($combinations AS $k => $combination)
                {
                    $first_sep_pos = strpos($combination['reference'],$sep);

                    if ($first_sep_pos !== false) {
                        $second_sep_pos = strpos(substr($combination['reference'],$first_sep_pos+1),$sep);
                        $new_ref = substr($combination['reference'],0,$first_sep_pos+1).$to_chg.substr(substr($combination['reference'],$first_sep_pos+1),$second_sep_pos);
                        Db::getInstance()->ExecuteS('UPDATE `'._DB_PREFIX_.'product_attribute` SET reference = "'.$new_ref.'" WHERE id_product_attribute = '.$combination['id_product_attribute'].';');
                    }

                }
            }
        } 

Comment pourrais je changer ce code pour qu'il colle plutôt l'Id_product_attribut après le premier tiret de la référence déclinaison en sachant qu'il n'y aura plus q'un seul tiret. (F13-id_product_attribut)

 

Merci d'avance pour votre aide.

Edited by Shogun Distribution (see edit history)
Link to comment
Share on other sites

Ce bout de code peut peut-être en intéresser certain tel quel.

Pour qu'il fonctionne, il faut aussi modifier le code dans Admin\Themes\default\template\controllers\products\informations.tpl à la ligne 134 (dans PS 1.5.6.1)

<tr>
			<td class="col-left"><label>{$bullet_common_field} {l s='Reference:'}</label></td>
			<td style="padding-bottom:5px;">
				<input size="55" type="text" name="reference" value="{$product->reference|htmlentitiesUTF8}" style="width: 130px; margin-right: 44px;" />
				<span class="hint" name="help_box">{l s='Special characters allowed:'}.-_#\<span class="hint-pointer"> </span></span>
			</td>
		</tr>

par ;

<tr>
			<td class="col-left"><label>{$bullet_common_field} {l s='Reference:'}</label></td>
			<td style="padding-bottom:5px;">
				<input size="55" type="text" name="reference" value="{$product->reference|htmlentitiesUTF8}" style="width: 130px; margin-right: 4px;" /><input type="checkbox" name="chg_attr_ref" value="1"/> {l s='Modify attributes'}.
				<span class="hint" name="help_box">{l s='Special characters allowed:'}.-_#\<span class="hint-pointer"> </span></span>
			</td>
		</tr>
Edited by Shogun Distribution (see edit history)
Link to comment
Share on other sites

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...