Archives pour la catégorie Magento

[Magento] Remise à zéro des commandes

Si vous avez besoin de remettre à zéro toutes les commandes passées en test sur votre serveur de développement avant de passer en serveur de production, vous pouvez exécuter la commande SQL suivante :

Attention, cela supprime aussi les clients de test, les factures et autres. Pensez à faire une sauvegarde avant !!

Magento = 1.7.*.* :

Cette requête supprimera :

  • Les clients
  • Les recherches du moteur de recherche
  • Les commandes
  • Les factures
  • Les expéditions
  • Les avoirs
  • Les rapports de taxes au moment d’une commande
  • Les listes d’envies
  • Les tags des internautes
  • Les logs
SET FOREIGN_KEY_CHECKS=0;
-- Reset Customers / Customer Address
TRUNCATE customer_address_entity;
TRUNCATE customer_address_entity_datetime;
TRUNCATE customer_address_entity_decimal;
TRUNCATE customer_address_entity_int;
TRUNCATE customer_address_entity_text;
TRUNCATE customer_address_entity_varchar;
TRUNCATE customer_entity;
TRUNCATE customer_entity_datetime;
TRUNCATE customer_entity_decimal;
TRUNCATE customer_entity_int;
TRUNCATE customer_entity_text;
TRUNCATE customer_entity_varchar;
ALTER TABLE customer_address_entity AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_datetime AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_decimal AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_int AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_text AUTO_INCREMENT=1;
ALTER TABLE customer_address_entity_varchar AUTO_INCREMENT=1;
ALTER TABLE customer_entity AUTO_INCREMENT=1;
ALTER TABLE customer_entity_datetime AUTO_INCREMENT=1;
ALTER TABLE customer_entity_decimal AUTO_INCREMENT=1;
ALTER TABLE customer_entity_int AUTO_INCREMENT=1;
ALTER TABLE customer_entity_text AUTO_INCREMENT=1;
ALTER TABLE customer_entity_varchar AUTO_INCREMENT=1;
-- Reset Catalog Search
TRUNCATE `catalogsearch_query`;
ALTER TABLE `catalogsearch_query` AUTO_INCREMENT=1;
-- Reset Sales (Credit Memo / Invoice / Order / Quote / Shipment)
TRUNCATE `sales_flat_creditmemo`;
TRUNCATE `sales_flat_creditmemo_comment`;
TRUNCATE `sales_flat_creditmemo_grid`;
TRUNCATE `sales_flat_creditmemo_item`;
TRUNCATE `sales_flat_invoice`;
TRUNCATE `sales_flat_invoice_comment`;
TRUNCATE `sales_flat_invoice_grid`;
TRUNCATE `sales_flat_invoice_item`;
TRUNCATE `sales_flat_order`;
TRUNCATE `sales_flat_order_address`;
TRUNCATE `sales_flat_order_grid`;
TRUNCATE `sales_flat_order_item`;
TRUNCATE `sales_flat_order_payment`;
TRUNCATE `sales_flat_order_status_history`;
TRUNCATE `sales_flat_quote`;
TRUNCATE `sales_flat_quote_address`;
TRUNCATE `sales_flat_quote_address_item`;
TRUNCATE `sales_flat_quote_item`;
TRUNCATE `sales_flat_quote_item_option`;
TRUNCATE `sales_flat_quote_payment`;
TRUNCATE `sales_flat_quote_shipping_rate`;
TRUNCATE `sales_flat_shipment`;
TRUNCATE `sales_flat_shipment_comment`;
TRUNCATE `sales_flat_shipment_grid`;
TRUNCATE `sales_flat_shipment_item`;
TRUNCATE `sales_flat_shipment_track`;
TRUNCATE `sales_invoiced_aggregated`;
TRUNCATE `sales_invoiced_aggregated_order`;
TRUNCATE `sales_order_aggregated_created`;
TRUNCATE `sales_order_tax` ;
TRUNCATE `sales_order_tax_item` ;
TRUNCATE `eav_entity_store` ; -- Reset numbers to 100000001
ALTER TABLE `sales_flat_creditmemo` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_shipping_rate` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_track` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_aggregated_created` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_tax` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_tax_item` AUTO_INCREMENT=1;
ALTER TABLE `eav_entity_store` AUTO_INCREMENT=1;
-- Reset Admin Panel (Best Sellers)
TRUNCATE `sales_bestsellers_aggregated_daily`;
TRUNCATE `sales_bestsellers_aggregated_monthly`;
TRUNCATE `sales_bestsellers_aggregated_yearly`;
ALTER TABLE `sales_bestsellers_aggregated_daily` AUTO_INCREMENT=1;
ALTER TABLE `sales_bestsellers_aggregated_monthly` AUTO_INCREMENT=1;
ALTER TABLE `sales_bestsellers_aggregated_yearly` AUTO_INCREMENT=1;
-- Reset Report index
TRUNCATE `report_viewed_product_index`;
TRUNCATE `report_compared_product_index`;
ALTER TABLE `report_viewed_product_index` AUTO_INCREMENT=1;
ALTER TABLE `report_compared_product_index` AUTO_INCREMENT=1;
-- Reset Tag
ALTER TABLE `tag` AUTO_INCREMENT=1;
ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
TRUNCATE `tag`;
TRUNCATE `tag_relation`;
TRUNCATE `tag_summary`;
-- Reset Wishlist
TRUNCATE `wishlist`;
ALTER TABLE `wishlist` AUTO_INCREMENT=1;
-- Reset log
TRUNCATE `log_customer`;
TRUNCATE `log_quote`;
TRUNCATE `log_summary`;
TRUNCATE `log_summary_type`;
TRUNCATE `log_url`;
TRUNCATE `log_url_info`;
TRUNCATE `log_visitor`;
TRUNCATE `log_visitor_info`;
TRUNCATE `log_visitor_online`;
ALTER TABLE `log_customer` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;
ALTER TABLE `log_summary` AUTO_INCREMENT=1;
ALTER TABLE `log_summary_type` AUTO_INCREMENT=1;
ALTER TABLE `log_url` AUTO_INCREMENT=1;
ALTER TABLE `log_url_info` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor_info` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor_online` AUTO_INCREMENT=1;
TRUNCATE `sendfriend_log`;
TRUNCATE `report_event`;
ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1;
ALTER TABLE `report_event` AUTO_INCREMENT=1;
-- Reset Poll answer
UPDATE poll_answer SET votes_count = 0;
SET FOREIGN_KEY_CHECKS=1;

Continuer la lecture

[Magento] Modifier le nom des PDF

Voici où vous pouvez changer le nom du fichier pdf (invoice2013-24-09_13-08-00):

Copiez le fichier

app/code/core/Mage/Adminhtml/Controller/Sales/Invoice.php

Dans

app/code/local/Mage/Adminhtml/Controller/Sales/Invoice.php

Ligne 87 et 109:

Remplacez :

$this->_prepareDownloadResponse('invoice'.Mage::getSingleton('core/date')->date('Y-m-d_H-i-s').'.pdf', $pdf->render(), 'application/pdf');

Par le nom que vous souhaitez, ici le nom de la compagnie et le numéro de commande:

$this->_prepareDownloadResponse('COMPANY-NAME'.$invoice->getIncrementId().'.pdf', $pdf->render(), 'application/pdf');

Par contre, je n’ai pas compris la différence entre les 2 méthodes printAction() et pdfinvoicesAction(). Il semblerait que ce soit toujours printAction() qui soit appelé, mais je n’en suis pas sûre.

Un deuxième truc utile pour la traduction de Invoice et Order: il suffit de supprimer l’espace à la fin pour que la traduction automatique fonctionne.

Exemple : « Invoice #  » ===> « Invoice # »
« Order #  » ===> « Order # »

respectivement dans

app/code/local/Mage/Sales/Model/Order/Pdf/Invoice.php

et

app/code/local/Mage/Sales/Model/Order/Pdf/Abstract.php

[Magento] Modifier les factures PDF – Partie 2

Je vous invite à visualiser d’abord la partie 1 si vous ne l’avez pas encore fait

1 – Ajouter un attribut produit dans la facture

Il arrive que vous ajoutez certains attributs à vos produits que vous souhaitez afficher dans votre facture exemple : code barre (ean13) je vous explique comment procéder pour le faire

app/code/local/Mage/Sales/Model/Order/Pdf/Invoice.php

Commençons par ajouter l’entête cherchez ce code deux fois dans le fichier (lignes 88 et 151 pour Magento 1.7.2)

$page->drawText(Mage::helper('sales')->__('SKU'), 255, $this->y, 'UTF-8');

Ajouter après (Changez EAN13 par le nom que vous souhaitez)

$page->drawText(Mage::helper('sales')->__('EAN13'), 310, $this->y, 'UTF-8');

Ajoutons maintenant l’attribut du produit pour tout les produits (on va le mettre après la colonne SKU)

app/code/local/Mage/Sales/Model/Order/Pdf/Items/Invoice/Default.php

Cherchez (ligne 55)

$lines[0][] = array(
            'text'  => Mage::helper('core/string')->str_split($this->getSku($item), 25),
            'feed'  => 255
        );

Si vous allez ajouter un attribut standard à magento présent par défaut (par exemple le poid) ajouter

$lines[0][] = array(
            'text'  => $item->getWeight(),
            'feed'  => 310
        );

Par contre s’il s’agit d’un attribut que vous avez créer il faut charger le produit de nouveau { remplacer getean_13() par getCodeDeVotreAttribut() }

$Product = Mage::getModel('catalog/product')->load($item->getProductId());
         $lines[0][] = array(
            'text'  => $Product->getean_13(),
            'feed'  => 320
        );

Continuer la lecture

[Magento] Modifier les factures PDF – Partie 1

Tout d’abord, à chaque manipulation sur les fichiers, copiez les fichiers situé dans le répertoire

app/code/core/Mage/Sales/Model/Order/Pdf/

dans

app/code/local/Mage/Sales/Model/Order/Pdf/

afin de pouvoir mettre à jour votre Magento par la suite.

1 – Changez le logo

Système > configuration > Ventes > VENTES > Design de facture et de bordereau de livraison

Cliquez sur parcourir pour mettre votre logo, et dans le champ adresse; ajoutez les informations qui concernent votre boutique.

2 – Ajouter Numéro de TVA intracommunautaire du client dans le PDF

Activez d’abord la saisie au clients dans Système > configuration > Clients > configuration clients > Option de nom et d’adresse > Afficher le numéro de TVA intracommunautaire.
Ensuite modifiez le fichier Abstract.php aux alentours de la ligne 313 sous Magento 1.7 CE

app/code/local/Mage/Sales/Model/Order/Pdf/Abstract.php
$billingAddress = $this->_formatAddress($order->getBillingAddress()->format('pdf'));

Et ajoutez après

if($order->getData('customer_taxvat')!='')$billingAddress['customer_taxvat'] = __('Tax/VAT number').': '. $order->getData('customer_taxvat');

Le numéro de TVA s’affichera maintenant à la fin de l’adresse de facturation du client.
Continuer la lecture

[Magento] Suppression de la totalité du tunnel de commande

Pour un client j’ai du modifier quelque peux le fonctionnement de Magento.

Catalogue au seul client

Il fallait, dans un premier temps, afficher le catalogue au seule personne connectée. J’ai trouvé cette extension gratuite login only catalog qui fonctionne très bien.

Identification du checkout

Ensuite, j’ai supprimée la partie d’identification du panier (vu que l’on est déjà connecté) : skip-checkout-step-1.

Modes de livraisons et infos de paiement

Pour supprimer les modes de livraison et les informations de paiement, je suis tombée sur ce module magento-onestep-checkout-remove-payment-and-shipping-method-step.
Continuer la lecture

[Magento] Variables et conditions utiles

Sous Magento, il n’y a pas de réel Codex comme sous WordPress. Pour récupérer des variables en front-office, il est nécessaire d’aller voir dans les fichiers Mage pour découvrir certaines valeurs assez utiles.

Variables :

  1. URL de la page courante
  2. URL des images et des CSS
  3. URL des dossiers de base

    1. URL de la racine
    2. URL des liens (utile en multi-domaine)
    3. URL du dossier des JS
    4. URL du dossier des medias
    5. URL du dossier des skins
  4. URL spécifiques

    1. URL du compte client
    2. URL du panier
    3. URL du tunnel de commande
    4. URL de la page de connexion
    5. URL de la page de déconnexion
    6. URL du mot de passe perdu
  5. Catégories

    1. URL d’une catégorie (via son identifiant)
    2. Description d’une catégorie (via son identifiant)
    3. Nom d’une catégorie (via son identifiant)
    4. Catégorie courante
    5. Id de la catégorie courante
    6. Id du parent d’une catégorie (via son identifiant)
    7. Id de la catégorie principale (root)
    8. Niveau dans l’arborescence
  6. Page CMS

    1. Nom de la page CMS courante
    2. Identifiant (clef-URL) de la page CMS courante
    3. Id de la page CMS courante
    4. Contenu d’une page CMS
  7. Blocs statiques CMS

    1. Contenu d’un bloc statique
    2. Titre d’un bloc statique
  8. Listing des pages CMS et des blocs statiques
  9. Titre de la catégorie voulue
  10. Variables d’administration

    1. Le numéro de téléphone du magasin
    2. Autres
  11. Panier

    1. Récupérer le montant total du panier
    2. Récupérer le nombre d’articles différents du panier
    3. Récupérer le nombre d’articles au total du panier
    4. Parcourir tous les articles du panier
    5. Ajouter un article au panier
    6. Enlever un article du panier
    7. Ajouter un lien « Ajouter au panier »
  12. Website / Store group / Store view

Continuer la lecture

[Magento] Vérifier la page courante

Code permettant de savoir si on est sur la page d’accueil (équivalent de is_home() de WordPress) :
Depuis la version 1.4 et l’apparition de nombreuses nouvelles méthodes, voici getIsHomePage(). Elle est présente dans header.phtml, ce qui est bien plus pratique pour détecter la page d’accueil.
if ($this->getIsHomePage()):
ATTENTION : Ne marche que sur le header.phtml

Comparer l’url de base à l’url en cours :
Avant la version 1.4, pour détecter la page d’accueil il fallait mettre ce code dans header.phtml :

$host = parse_url(Mage::helper('core/url')->getCurrentUrl(),PHP_URL_HOST);
$path = parse_url(Mage::helper('core/url')->getCurrentUrl(),PHP_URL_PATH);
$headUrl = "http://$host$path";
if ($headUrl== Mage::getBaseUrl()) { echo "je suis sur la page d'accueil de magento"; }
//echo $headUrl ; // http://localhost/magento/ 

Continuer la lecture

[Magento] Faire des liens

Comment naviguer dans Magento ? Cet article vous aidera à comprendre comment créer des liens vers vos fichiers media, js, skin et autres.

Magento gère les ULR dans les phtml ou les pages CMS grâce à la méthode getBaseUrl() qui se trouve dans la classe store.php (magentoappcodecoreMageCoreModelstore.php). D’autres méthodes alternatives permettent de naviguer tel que getJsUrl() ou getSkinUrl().

URL dans les Phtml
Lien vers la racine de votre site magento : http://www.boutique-magento.com/
Ex 1 :
Ex 2 : ;getUrl(); ? >

Lien vers la page index.php de votre site magento : hhttp://www.boutique-magento.com/index.php/
Ex 1 :

Lien vers le dossier JS : http://www.boutique-magento.com/js/
Ex 1 :
Ex 2 : getJsUrl(); ? >
Ex 3 :
Continuer la lecture