Question

Nous traitons beaucoup de commandes B2B (la plupart du temps par courrier et par téléphone) par le Magento panneau d'administration, fonctionne très bien, mais ce qui nous manque est une option pour donner un rabais ou des frais supplémentaires à un client.

Dans le monde idéal, nous aimerions ajouter une ligne de commande supplémentaire qui a une description personnalisée, le prix personnalisé et un qté personnalisé. Ce n'est pas possible car il attend un produit.

Pour contourner ce que nous avons créé un produit factice qui peut être ajouté à l'ordre, nous changeons le prix et le tour est joué et qté nous avons une ligne de commande supplémentaire. J'ai ajouté une option personnalisée (textfield) au produit qui nous permet d'ajouter une description agréable pour le client.

De cette façon, nous pouvons ajouter des frais supplémentaires à l'ordre, qui est grand. Nous voulons aussi diverses lignes de commande d'actualisation à l'ordre. Pour ce faire, je besoin de créer des lignes de commande avec un prix négatif dans le panneau d'administration.

Y at-il une modification relativement sauvegarde faire pour permettre cela?

Peut-être comme une alternative, peut-être un rabais personnalisé peut aussi être une option, mais puisque cela permet seulement pour une réduction à ajouter ce n'est pas idéal. Toutes les suggestions pour cela?

Était-ce utile?

La solution

Il n'y a pas moyen facile de créer une ligne de négatif dans l'ordre parce que le noyau Magento est plein de code comme $value = max(0, $value) quand il est sur les prix. Cela ne veut pas dire qu'il est impossible.

Tout d'abord vous devez remplacer cette méthode: Mage_Adminhtml_Model_Sales_Order_Create::_parseCustomPrice. Il y a une ligne là-dedans qui vérifie si le prix est au moins 0. Il doit être supprimé.

price = $price>0 ? $price : 0;

vous devez regarder dans le code pour le texte max( et voir si les lignes liées à la caisse.
Par exemple, il est dans ce Mage_Tax_Block_Sales_Order_Tax::_initSubtotal

subtotalIncl = max(0, $subtotalIncl);
$baseSubtotalIncl = max(0, $baseSubtotalIncl);

Vous devrez peut-être supprimer un grand nombre de ces types de lignes.
Je ne sais pas si cela est le chemin à parcourir, mais je suis sûr qu'il est possible.

Qu'est-ce que je ferais à votre place est de créer une règle de réduction à chaque fois que je besoin de quelque chose comme ça avec le plein montant utilisable une seule fois, avec un code promo étrange, et l'appliquer à votre commande. Je ne sais pas si cela correspond à vos besoins (probablement pas), mais ce que je suis arrivé à ce jour.

Autres conseils

Ceci est inutile. Le panneau d'administration de Magento vous permet de définir les prix des produits personnalisés pour passer des commandes à partir du back-end:

Avant:

entrer image description ici

Après:

entrer image description ici

Tout ce que je devais faire était cocher « prix personnalisé » et cliquez sur « les éléments de mise à jour et qtys ».

Vive.

Vous pouvez essayer de faire ce qui suit (Je ne sais pas si cela fonctionnera bien ...)

  • Créer un simple "produit discount" avec un prix de 1 EUR
  • Créer une règle de prix qui donne un rabais de 200% (Je ne sais pas si cela va fonctionner ...) du montant du produit.
  • Lorsque vous ajoutez ce produit à votre panier, vous pouvez définir le rabais que vous voulez donner via Cdt.

Juste une idée aléatoire qui est tiré d'une valeur d'un car il ne nécessiterait pas de codage du tout ...

Je l'ai accompli cela sur un de nos sites qui ont des exigences de réduction et de charge en raison de la nécessité d'intégrer un CRM personnalisée en étendant les devis, commande, facture et articles note de crédit pour inclure un champ d'escompte et frais.

J'ai ensuite ajouté un champ d'entrée pour chaque dans la ligne de l'élément sur la page d'édition dans la zone d'administration.

Les collecteurs de sous-total et fiscaux nécessaires pour être supplantée pour prendre la réduction et la charge en compte, ainsi que le calcul du total de la ligne sur chacun des éléments. Y compris, mais sans s'y limiter:

Mage_Sales_Model_Order_Creditmemo_Total_Subtotal
Mage_Sales_Model_Order_Creditmemo_Total_Tax
Mage_Sales_Model_Order_Creditmemo_Item::calcRowTotal

En outre,

Mage_Sales_Model_Service_Order::prepareCreditmemo
Mage_Sales_Model_Service_Order::prepareInvoice
Mage_Adminhtml_Model_Sales_Order_Create::initFromOrder

Tous ont besoin d'être supplantée pour déplacer les champs supplémentaires autour lorsque les commandes sont annulées ou facturées.

Tous les points d'affichage pour les éléments doivent être ajustés pour prendre les champs de charge et à rabais pour compte.

Dans l'ensemble une entreprise de développement assez sérieux, et non pas pour les faibles de cœur, mais il est réalisable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top