Les packs et leurs composants

Le 27 avril 2020 par Admin
3 minutes de lecture · Référence du webservice : #SWO-P0025

Et comment ça se passe pour les packs de produits maintenant ?

La notion d’article packagé ou de packs est la faculté de combiner et regrouper différents articles sous une seule et même référence.

Cette pratique permet ainsi à un e-commerçant de vendre ses produits en lot, à un tarif souvent plus avantageux que celui de produits vendus à l’unité et/ou proposer un produit avec ses accessoires.

Dans certains cas, il est même possible de choisir soi-même le contenu de son pack et de le personnaliser.

Nous allons voir dans cet article de quelle manière sont récupérés ces packs ainsi que leurs composants et quelles sont les informations qui transitent dans les synchronisations entre OpenSi et votre boutique.

Cet article aborde les sujets suivants :

La récupération des articles packs et de leurs composants

La synchronisation des packs et de leurs composants s’effectue de la boutique vers OpenSi.

La synchronisation des packs et de leurs composants est effectuée via différents webservices qui viennent rechercher les informations sur votre boutique pour les envoyer à OpenSi où ils seront ajoutés/créés.

Vous pouvez donc gérer ces articles de la même manière que vous le faites pour les articles simples ou déclinés. Les synchronisations se chargeront de les envoyer à OpenSi.

La récupération des packs

La récupération d’un pack, c’est à dire l’article « parent » qui est composé d’autres articles, est effectuée via le webservice de création des articles. Il s’agit en effet d’un article dont seul le type est différent, mais il reste bel et bien un article 😉

Mais alors, comment différencie-t-on un article pack d’un autre ?

Dans le webservice de création des articles, tout se situe au niveau du champ « ProductType ». Sur un article standard, sa valeur sera U (article Unitaire) tandis que sur un article pack, sa valeur sera F (article Forfait).

La récupération des composants d’un pack

La synchronisation des composants d’un pack est quant-à-elle effectuée via un second webservice (webservice dédié à cette tâche). Celui-ci vient également récupérer quelques informations sur les composants avant de les envoyer à OpenSi où ils seront ajoutés au niveau de la composition de l’article « parent ».

Schéma représentant les différentes étapes de la récupération des composants d’un pack sur la boutique

Attention

Seuls les nouveaux composants sont ajoutés dans OpenSi. Si vous devez modifier la composition de votre pack avec de nouveaux composants, ceux-ci seront ajoutés à ceux existants dans OpenSi. L’inverse n’est pas vrai ! Si vous devez supprimer des composants d’un pack, ceux renseignés dans OpenSi ne seront pas automatiquement supprimés sans une action manuelle de votre part.

La synchronisation avec OpenSi

La synchronisation des packs et de leurs composants est effectuée en standard toutes les 10 minutes (cette fréquence peut néanmoins être modifiée par nos soins selon vos besoins).

Les webservices de récupération des packs et de leurs composants vont aller chercher différentes informations que vous aurez au préalable renseignées sur votre boutique. Ces différentes informations seront alors envoyés à OpenSi où elles seront créées/ajoutées.

Liste des informations synchronisables avec OpenSi

Voici la liste exhaustive des champs que vous pouvez synchroniser avec OpenSi (récupération des composants sur la boutique).
Tous ces champs sont obligatoires.

Reference *Référence de l’article (Chaîne de 40 caractères max.)
ComponentReference *Référence du composant de l’article pack (Chaîne de 40 caractères max.)
Quantity *Quantité de cet article dans le pack (Nombre décimal de 10 chiffres au total dont 3 chiffres après la virgule)
(*) Champs obligatoires

Exemples de flux XML

Voici ci-dessous l’exemple d’un article packagé retourné par la boutique et envoyé à OpenSi (flux XML – Notez le champ « ProductType ») :

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.opensi.fr/xsd" xmlns:ns2="http://www.opensi.fr">
   <SOAP-ENV:Body>
      <ns2:getProductsResponse>
         <ns2:return>
            <ns1:Reference>demo_2</ns1:Reference>
            <ns1:Name>Ensemble pantalon et top palazzo à carreaux</ns1:Name>
            <ns1:ShortDescription>Un ensemble très élégant que vous pouvez néanmoins mettre au quotidien ! En coton recyclé, aux couleurs actuelles et très agréable à porter.</ns1:ShortDescription>
            <ns1:IncludingVATPriceDefinition>true</ns1:IncludingVATPriceDefinition>
            <ns1:WholesalePrice>32.65</ns1:WholesalePrice>
            <ns1:Price>49.9</ns1:Price>
            <ns1:Ecotax>2</ns1:Ecotax>
            <ns1:VATRate>20</ns1:VATRate>
            <ns1:Barcode>3105565394204</ns1:Barcode>
            <ns1:Attributes>
               <ns1:Attribute>
                  <ns1:Name>ID de produit</ns1:Name>
                  <ns1:Value>2</ns1:Value>
               </ns1:Attribute>
            </ns1:Attributes>
            <ns1:Height>0</ns1:Height>
            <ns1:Length>0</ns1:Length>
            <ns1:Width>0</ns1:Width>
            <ns1:Weight>0.859</ns1:Weight>
            <ns1:ProductType>F</ns1:ProductType>
         </ns2:return>
      </ns2:getProductsResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Voici ci-dessous l’exemple des composants d’un article retourné par la boutique et envoyé à OpenSi (flux XML) :

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.opensi.fr/xsd" xmlns:ns2="http://www.opensi.fr">
   <SOAP-ENV:Body>
      <ns2:getProductComponentsResponse>
         <ns2:return>
            <ns1:Reference>demo_2</ns1:Reference>
            <ns1:ComponentReference>demo_3_40x60</ns1:ComponentReference>
            <ns1:Quantity>2</ns1:Quantity>
         </ns2:return>
         <ns2:return>
            <ns1:Reference>demo_2</ns1:Reference>
            <ns1:ComponentReference>demo_4</ns1:ComponentReference>
            <ns1:Quantity>1</ns1:Quantity>
         </ns2:return>
      </ns2:getProductComponentsResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>