Magento 2 – Ajuster la plage de numéros

Comme dans Magento 1 (voir ici) nous voulons aussi dans Magento 2 adapter les tranches de numéros. Les numéros attribués par défaut [Nombre de vues en magasin]000000000 ne sont pas vraiment belles et dans la plupart des cas, elles sont aussi complètement disproportionnées – qui s'y attend presque 1 milliard. Devoir attribuer des numéros de commande? Nous voulons donc les numéros de commande, Numéros de facture, Ajuster les numéros de bon de livraison et les numéros de note de crédit. Un préfixe doit être attribué pour une affectation facile à la boutique en ligne respective, pour que vous sachiez de quelle boutique il s'agit directement par virement bancaire en mentionnant le numéro de commande ou le support. En termes de nombre de postes, cependant, nous ne différencierons pas selon les magasins et toujours 6 Fournir (après le préfixe) avoir.

Nous avions donc deux exigences:
1. Réduisez le nombre de chiffres dans les nombres à 6 Fournir
2. Préfixe pour une affectation unique à un projet de magasin

Était à Magento 1 rapidement et facilement en utilisant une seule table dans la base de données a été fait, doit être dans Magento 2 (qui est surpris?) peut être fait avec beaucoup plus d'efforts.

La table dans la base de données est utilisée pour le préfixe “sales_sequence_profile” ouvert. Dans la colonne “préfixe” le préfixe souhaité peut alors être saisi – donc les signes, qui sont placés devant chaque nombre. Ceux-ci sont ADDITIONNELS aux 9 (ou. après changement 6) Placez le nombre réel.

Comme tu peux le voir, sont toujours des blocs de quatre (1-4/5-8/…) responsable d'une vue en magasin. La première ligne est le numéro de commande, le second le numéro de facture, le troisième le numéro de l'avoir et le quatrième le numéro du bon de livraison. Ceci est répété pour chaque vue de magasin. Mais vous pouvez aussi le faire dans le tableau “sales_sequence_meta” lire:

C'était la partie rapide et relativement facile de celui-ci. Donc, après avoir entré le préfixe (Bien sûr, cela fonctionne également pour le suffixe dans la colonne “suffixe”), À partir de ce moment, toutes les tranches de numéros ajustées seront fournies avec ce préfixe.

Partie 2 “Ajustement de la longueur de la plage de numéros” c'est un peu plus compliqué. Il existe une solution rapide et sale, que je ne recommanderais pas et décent.

Avec les deux solutions, la longueur de numéro standard fournie par Magento doit être 9 Créer à partir d'un fichier “/vendor/magento/module-sales-sequence/Model/Sequence.php” (comme. Ligne 22) écrasé.

Je ne ferais même pas cela dans une solution QnD directement dans le fichier. Par conséquent, l'approche QnD serait la suivante:

Ouvrez le fichier /app/etc/di.xml
Il y a le code suivant devant la fermeture </config> inséré

<type name="Magento\SalesSequence\Model\Sequence">
    <arguments>
        <argument name="pattern" xsi:type="string"><![CDATA[%s%'.06d%s]]></argument>
    </arguments>
</type>

Selon la boutique, vous devrez peut-être encore mettre à niveau / déployé / compilé ou simplement vidé le cache. Ensuite, tous les NOUVEAUX numéros attribués ne comportent que 6 chiffres.

Cependant, l'inconvénient de cette solution QnD est, que le changement peut être. pourrait être perdu dans le futur avec une mise à jour ou un di.xml adapté. Il est donc plus logique d'écrire un petit module, qui assure ce changement même après une mise à jour.

Nous le faisons comme suit:

  • Créez un chemin de répertoire pour le module tel que. “app/code/Commerces/Idlength”
  • Créer un fichier “inscription.php” dans ce répertoire. Cela a le contenu suivant
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Commercers_Idlength',
    __DIR__
);
  • Création d'un annuaire “app/code/Commerces/Idlength/etc”
  • Créez un fichier di.xml avec le contenu suivant
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\SalesSequence\Model\Sequence">
    <arguments>
        <argument name="pattern" xsi:type="string"><![CDATA[%s%'.06d%s]]></argument>
    </arguments>
</type>
</config>
  • Créez un autre fichier dans ce dossier nommé “module.xml” avec le contenu suivant
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Commercers_Idlength" setup_version="1.0.0">
    </module>
</config>

Ensuite, vous devez mettre à niveau comme ci-dessus, en fonction de la boutique / déployé / compilé ou simplement vidé le cache. Alors les nombres n'ont que 6 Fournir. Si vous voulez plus ou moins d'emplois, il vous suffit de saisir la position dans le di.xml que vous venez de créer “06%d” adapter.

Publié par Covos

Depuis 2009 Je travaille intensément avec Magento. J'ai commencé avec la création et l'exploitation des magasins B2C. Cela a été prolongé par mon travail dans le secteur de la logistique. Il en est résulté premiers systèmes de B2E spécialisés. Aujourd'hui, je travaille jour par jour avec B2C passionnant, B2B- et les projets B2E et rapports dans ce blog sur les défis et donner des conseils d'initiés.

Laisser un commentaire

Votre adresse email ne sera pas publié. les champs requis sont indiqués *