Erreur Spring Global (Spring Omni): Obtention d'une réponse vide lors de l'extraction d'une étiquette

Nous étions confrontés à un problème pendant que nous essayions de créer une expédition (Utilisation de l'API / expéditions) et ensuite nous avons récupéré l’étiquette (Utilisation de l'API / expéditions / {ID_expédition} / files). Le problème était que nous avions une réponse en blanc. Lorsque nous avons vérifié les envois sur le back-office, la capture d'écran ci-dessous était la suivante:

Réponse vide

Lorsque nous avons cliqué sur l'envoi (avec status = "concept"), nous avons reçu un message comme "L'envoi a été créé, mais n'a pas encore été enregistré auprès du transporteur.“

Lorsque nous avons compris le concept de ce nouveau processus de création d’envois dans Spring Omni, nous avons appris qu’à Spring Global, nous devions enregistrer un envoi au lieu de le créer uniquement avant de récupérer l’étiquette correspondant à l’envoi. Il existe deux scénarios possibles pour enregistrer un envoi:

  1. Créez l'envoi et enregistrez-le en même temps
  2. Créez l'envoi, mais enregistrez-le à un moment précis, c'est-à-dire à l'avenir

1. Pour enregistrer un envoi instantanément

Lors de l'envoi de la demande de création d'un envoi, nous devons envoyer le "register_at"valeur du paramètre sous 0 ou heure passée (horodatage UNIX) dans les données de la demande. Veuillez vous reporter au code ci-dessous pour obtenir le même résultat:

{
  "data": {
    "type": "shipments",
    "attributes": {
      "recipient_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "s.holmes@holmesinvestigations.com",
        "phone_number": "+31 234 567 890"
      },
      "return_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "s.holmes@holmesinvestigations.com",
        "phone_number": "+31 234 567 890"
      },
      "sender_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "s.holmes@holmesinvestigations.com",
        "phone_number": "+31 234 567 890"
      },
      "pickup_location": {
        "code": "205604",
        "address": {
          "street_1": "Baker Street",
          "street_2": "Marylebone",
          "street_number": 221,
          "street_number_suffix": "B",
          "postal_code": "NW1 6XE",
          "city": "London",
          "region_code": "ENG",
          "country_code": "GB",
          "first_name": "Sherlock",
          "last_name": "Holmes",
          "company": "Holmes Investigations",
          "email": "s.holmes@holmesinvestigations.com",
          "phone_number": "+31 234 567 890"
        }
      },
      "description": "Order #8008135",
      "physical_properties": {
        "height": 150,
        "width": 300,
        "length": 500,
        "volume": 22.5,
        "weight": 5000
      },
      "items": [
        {
          "sku": "123456789",
          "description": "OnePlus X",
          "item_value": {
            "amount": 995,
            "currency": "EUR"
          },
          "quantity": 2,
          "hs_code": "8517.12.00",
          "origin_country_code": "GB",
          "item_weight": 135
        }
      ],
      "customs": {
        "content_type": "merchandise",
        "invoice_number": "9000",
        "non_delivery": "return",
        "incoterm": "DAP",
        "license_number": "218532158",
        "certificate_number": "12122121"
      },
      "register_at": 0
    },
    "relationships": {
      "service_options": {
        "data": [
          {
            "type": "service-options",
            "id": "4c675b1a-516c-4410-abff-d237fd45bcd0"
          }
        ]
      },
      "shop": {
        "data": {
          "type": "shops",
          "id": "35eddf50-1d84-47a3-8479-6bfda729cd99"
        }
      },
      "service": {
        "data": {
          "type": "services",
          "id": "175a235f-aff5-4e44-87b5-3657b75c1deb"
        }
      },
      "contract": {
        "data": {
          "type": "contracts",
          "id": "2cb32706-5762-4b96-9212-327e6afaeeff"
        }
      }
    }
  }
}

Si nous envoyons la valeur de register_at en tant qu'horodatage actuel, l'enregistrement de l'envoi risque d'être retardé. Spring Global nous a donc suggéré d'envoyer la valeur de register_at au format 0 afin que l'heure soit prise en compte et que l'expédition soit enregistrée dès que possible. comme possible. Puisque l'envoi sera enregistré maintenant, nous ne pourrons pas le supprimer / le modifier.

2. Enregistrer un envoi dans le futur

Si nous souhaitons modifier / supprimer l'envoi après avoir créé celui-ci, il nous suffit de l'enregistrer ultérieurement ou à un moment donné. Par exemple, pour enregistrer un envoi dans le futur, par exemple, après le nombre d’heures de création d’un envoi 5, transmettez simplement la valeur "register_at" comme horodatage futur de cinq heures sur la base de l’heure actuelle. Maintenant, nous pourrons éditer / supprimer l'envoi jusqu'à 5 mais nous ne pourrons pas récupérer l'étiquette et la facture commerciale. À l'heure indiquée, l'envoi sera automatiquement enregistré et nous pourrons récupérer l'étiquette et la facture commerciale après l'heure indiquée.

Ce sont donc les deux manières d’enregistrer l’envoi. Nous pouvons utiliser les deux sur la base de nos besoins.

S'il vous plaît visitez ici pour des informations connexes:

Spring Global (Spring Omni) Error: la propriété phone_number est requise.

Manifeste Omni du printemps

Spring Global (Spring Omni) Error: L'envoi n'est pas enregistré

Spring Global (Spring Omni): Concept de facturation

Erreur Spring Global (Spring Omni): ressource introuvable


Problème DHL : l’emplacement de destination n’est pas valide. Veuillez vérifier les données

Lors de la réservation d’un envoi sur DHL à l’aide de l’API (dans notre cas, le pays de livraison était “Irlande”), nous avons reçu une erreur dans la réponse à la demande de capacité. L’erreur était “L’emplacement de destination n’est pas valide. Veuillez vérifier les données“.

Solution : �

Pour ce problème, nous avons émis un ticket sur DHL, et en réponse, ils ont répondu comme suit :

Lors de la demande de capacités, il est important de fournir des données d’adresse complètes et de qualité. Il est nécessaire de déterminer des informations et des capacités de routage précises pour l’origine et la destination. Ce qui suit peut être la raison de l’erreur :

  1. Il est possible qu’il y ait plus d’une ville avec le même nom dans différentes banlieues. Donc, pour obtenir une réponse réussie, nous devons ajouter des banlieues dans l’adresse de destination spécialement, pour le pays de livraison “Irlande”.
  2. Pour les pays de destination, qui n’ont pas de codes postaux, le nom de la ville doit être orthographié avec précision. Par exemple, il n’y a pas de ville appelée NORTH ROAD dans IE, la ville réelle s’appelle M50 NORTH ROAD.

D’après cette réponse, nous n’étions pas clairs sur les moyens de validation de l’adresse, comment savons-nous que l’adresse est correcte ou non ou que le nom de la ville est correct ou non. Par exemple, si nous envoyons le nom de la ville sous la forme “Cie Dublin” dans la demande de création d’expédition, nous obtenons une erreur d’emplacement non valide. Nous avons donc de nouveau créé un ticket pour savoir comment nous pouvons valider l’adresse et en réponse, DHL a suggéré un outil nommé DHL Capability Tool (https://dct.dhl.com/). Entrez simplement l’expéditeur et l’adresse de destination dans le formulaire et cliquez sur le bouton de recherche comme indiqué dans la capture d’écran ci-dessous :

Cet outil donnera le résultat si l’adresse est valide ou non. Donc, si vous obtenez une erreur concernant l’emplacement, vous pouvez valider l’adresse à l’aide de cet outil de capacité.

Conseils et astuces sur le commerce électronique 5 pour assurer une croissance rapide

En cette ère du monde numérique, la sensibilisation est devenue une condition préalable pour chaque individu et toutes les industries se développent si rapidement que nous ne savons jamais ce qui devient à la mode. L'industrie du commerce électronique est l'une de ces industries qui s'est développée de plus en plus et grâce au réseau Internet 4G. Pour ceux qui ne le savent pas, le secteur du commerce électronique est l’un des plus dynamiques au monde. Et le plus gros cadeau de cette industrie est la tendance des achats en ligne au pouvoir dans le monde entier. Des personnes de tous les coins de la planète s’engagent dans ce processus et économisent leur temps et leur énergie. Selon Statesman, les revenus du commerce de détail en ligne devraient atteindre 4.88, milliards de dollars américains en 2021.

Cependant, la croissance rapide a également entraîné une concurrence féroce entre différents marchands de commerce électronique. L'augmentation des activités de commerce électronique a entraîné une augmentation de la concurrence entre ces marchands. Cela les a amenés à suivre de près les nouvelles tendances du commerce électronique, en particulier celles qui impliquent des avancées techniques pour façonner le comportement des consommateurs.

Voici les conseils et astuces de 5 pour assurer une croissance rapide dans le commerce électronique:

1. Améliorer le contenu vidéo et le marketing:

Le marketing vidéo est l’un des moyens les plus populaires et les plus populaires du marketing de contenu de nos jours. Les consommateurs adorant regarder des vidéos, c’est un moyen simple et amusant d’engager activement les clients sur votre site Web de commerce électronique, ce qui se traduit par une augmentation des ventes et des revenus. Pour surmonter la concurrence, c’est le moyen le plus avantageux d’améliorer votre croissance dans le commerce électronique et de le porter à de nouveaux sommets. En intégrant des vidéos de médias sociaux tels que YouTube ou en ajoutant des éléments de conception basés sur des vidéos, les vendeurs peuvent facilement améliorer leur page d'accueil ou leur page produit, ce qui peut attirer davantage de clients vers votre magasin.

2. Servir les consommateurs Omnicanal:

À l'ère numérique interconnectée d'aujourd'hui, les clients recherchent leur produit préféré sur plus d'un canal en ligne ou sur le Marketplace. Selon Statesman, Amazon représentait X% du trafic de ce segment, eBay représentait% du trafic, Walmart 56.1% et Etsy représentait 19.5% du trafic. Ces chiffres sont clairement la ressemblance du besoin crucial de servir les consommateurs omnicanaux en commercialisant les produits et services sur tous les canaux ou marchés disponibles. Aujourd'hui, il est plus facile qu'auparavant de promouvoir votre marque ou votre produit en ligne, mais avant cela, les vendeurs devaient transformer leurs idées en une entreprise de commerce électronique. Assurez-vous simplement de commercialiser votre site Web sur différentes plates-formes telles que les médias sociaux, les marchés réputés comme Amazon, eBay, Etsy, Walmart ainsi que sur les petits magasins de détail aussi. Ne laissez jamais une occasion de promouvoir votre magasin de marque de toutes les manières possibles. Et, quel que soit le canal que vous vendez, vendez toujours des produits authentiques et fiables pour gagner la confiance des clients en votre marque et votre magasin de commerce électronique. Cela vous aidera non seulement à augmenter le trafic client, mais également à différencier votre magasin de commerce électronique des autres.

3. Marquer les moyens de réussir avec AI Chatbots:

Si vous souhaitez concurrencer d’autres vendeurs, vous pouvez vous essayer à la fonction d’assistance 24 / 7 offerte par les chatbots habilités par AI. Les clients aiment les réponses immédiates pour leurs requêtes et les chatbots sont la solution parfaite pour cela. Les chatbots automatisés peuvent résoudre n'importe quel type de requête de nombreux clients en même temps. Cependant, ils ne peuvent pas sortir des sentiers battus, reconnaître des mots mal orthographiés ou évaluer des requêtes incomplètes car leur créativité est limitée par le code qui les a créés. Mais, grâce à ces les avancées technologiques comme ils ont rendu ces chatbots intelligents et sophistiqués aussi. Ils sont également compatibles SSL et multilingues, ce qui vous aide également à atteindre la satisfaction de vos clients dans les régions. Par conséquent, le trafic des consommateurs sur votre site Web augmentera, ce qui se traduira par un montant forfaitaire de ventes et de revenus.

4. La recherche vocale est une nouvelle aubaine:

Cela se produit généralement lorsque les clients ne peuvent pas écrire l'orthographe correcte du produit souhaité ni le trouver sur le site Web. Cela conduit à une diminution du taux de conversion du site Web, les prospects qualifiés devenant également des prospects non qualifiés. La recherche vocale est la nouvelle tendance dans ces magasins en ligne, car elle a aidé de nombreuses personnes incapables d'écrire l'orthographe correcte dans l'onglet de recherche. Ils peuvent simplement dire le nom de leur produit et celui-ci sera présenté sur leurs écrans mobiles. Selon Statesman, 35 pour cent des utilisateurs ont déclaré qu’ils envisageraient à l’avenir d’acheter des aliments via leur assistant vocal. Certains des derniers gadgets de recherche vocale tels que Google Play, Alexa d’Amazon, Amazon Echo, etc. comptent parmi les meilleures innovations pour les plateformes de commerce électronique. De nombreux propriétaires de magasins en ligne ont déjà adopté la fonctionnalité de recherche vocale pour leurs activités de commerce électronique en ligne. L’avancement de la recherche vocale est une opportunité exceptionnelle pour améliorer votre référencement. Cela pourrait également être amélioré en améliorant la description de votre produit sur le site Web.

5. Méthode de paiement sécurisée:

En ce qui concerne la validation des commandes, les clients croient en une méthode de paiement sécurisée, car de nombreuses personnes laissent le chariot abandonné en raison du manque de confiance qui peut leur faire perdre des clients potentiels. La dernière étape des achats en ligne devrait être simple et fluide, car de nombreuses personnes sont frustrées par le processus de paiement complexe et les passerelles de paiement. Selon Statesman, 69.23% des paniers et paniers numériques ont été abandonnés au cours de l’année 2017 et l’achat n’a pas été finalisé. Souvent, cela est dû au manque de confiance dans les passerelles de paiement à la caisse. Donc, si vous souhaitez améliorer le taux de conversion de votre site Web et que vous souhaitez être un avantage supplémentaire par rapport à vos concurrents, veillez à fournir un processus de validation simple et des options de paiement sécurisées. Vous pouvez appliquer l’addon d’achat d’une page PrestaShop sur votre boutique en ligne.

Verdict final:

Alors que l'industrie du commerce électronique continue d'évoluer, la responsabilité la plus importante est de fournir une expérience d'achat positive aux consommateurs. Les vendeurs doivent rester informés des dernières tendances en matière de commerce électronique, notamment le marketing omnicanal, les chatbots, le contenu vidéo et le marketing, ainsi que des processus simplifiés de paiement et de paiement. Ils vous aideront certainement à vous démarquer de vos concurrents du commerce électronique. La concurrence est à son apogée et nous devons y faire face. Pour rester un avantage supplémentaire par rapport aux autres, KnowBand propose Intégrateurs de marché permettant aux vendeurs d’intégrer leur magasin de commerce électronique à des marchés renommés tels que Etsy, eBay, Walmart, Google shopping et Newegg. Vous pouvez maintenant lister les produits et les descriptions en quelques clics. Ainsi, il devient plus facile de mettre à jour les détails en bloc. De plus, la cartographie des attributs devient un jeu d'enfant avec l'approche automatisée. Alors, intégrez votre boutique en ligne et gagnez énormément de bénéfices.

Trouver plus d'articles liés ici:

  1. Clés pour acheter avec succès en ligne et récupérer en magasin
  2. Conseils 8 pour attirer plus de clients sur un marché
  3. 6 Summer Summer eCommerce erreurs d'expédition à éviter
  4. Conseils 9 pour vous aider à vendre plus sur le marché Walmart


Comment afficher les prix dans toutes les devises sur la page produit OpenCart?

Objectifs du blog

Après avoir lu ce blog, nous pourrons afficher le prix dans toutes les devises sur la page produit d'OpenCart 3.x

Énoncé du problème

Par défaut, OpenCart 3.x affiche le prix du produit dans la devise définie par défaut ou choisie par l'utilisateur final. Et pour afficher le prix dans toutes les devises disponibles, il y aura peu de changements dans les fichiers par défaut ou principaux d'OpenCart. (Si vous ne souhaitez pas modifier les fichiers principaux, vous pouvez le faire via VqMod ou OcMod.)

Exigence

Nous aurions besoin de modifier les fichiers mentionnés ci-dessous pour afficher le prix du produit dans toutes les devises disponibles dans la page du produit.

Procédure pour résoudre le problème-

Suivez les étapes ci-dessous – Ouvrez product.php à partir du catalogue / contrôleur / produit et recherchez

$ results = $ this-> model_catalog_product-> getProductImages ($ this-> request-> get ['product_id']);

2. Et ajoutez la déclaration suivante après cela –

$ c currency = $ this-> model_localisation_currency-> getCurrency ();

3. Encore une fois trouver l'extrait de code suivant dans le même fichier –

if ($ this-> customer-> isLogged () ||! $ this-> config-> get ('config_customer_price')) {$ data ['price'] = $ this-> devise-> format ($ this- > tax-> calculer ($ product_info ['price'], $ product_info ['tax_class_id'], $ this-> config-> get ('config_tax')), $ this-> session-> data ['devise'] ) } else {$ data ['price'] = false; }

4. Et remplacez-le par –

$ data ['price'] = array (); if ($ this-> customer-> isLogged () ||! $ this-> config-> get ('config_customer_price')) {foreach ($ monnaies en tant que $ currency) {if ($ currency ['status']) { $ data ['price'] [] = $ this-> devise-> format ($ this-> taxe-> calculer ($ product_info ['price'], $ product_info ['tax_class_id'], $ this-> config- > get ('config_tax')), $ currency ['code']); }}}

5. Ouvrez product.twig à partir de catalog / view / theme / default / template / product et recherchez

<h2> {{price}} </ h2>

5. Et remplacez-le par –

{% for currency_price in price%} <h2> {{currency_price}} </ h2> {% endfor%}

Ensuite, effacez tous les caches (cache ocmod, cache twig, cache vqmod). C'est tout. Reportez-vous à la capture d'écran ci-dessous après application des modifications dans le code –

Résumé

Après avoir suivi la procédure ci-dessus, vous pourrez afficher le prix dans toutes les devises disponibles dans la page du produit.


Installation et configuration de Xdebug – Partie 1

Introduction

Ce document contient les étapes pour installer Xdebug et le configurer avec Netbeans.

Étapes pour installer Xdebug et le configurer avec Netbeans

Pour installer Xdebug et le configurer avec Netbeans, procédez comme suit:

1. Installez Xdebug pour PHP en exécutant la commande suivante dans un environnement Linux

sudo apt-get install php5-xdebug

2. Configurer Xdebug.ini pour Linux

sudo vi /etc/php5/apache2/conf.d/20-xdebug.ini

Ajouter les lignes suivantes –

xdebug.profiler_output_dir=/tmp
xdebug.profiler_output_name=cachegrind.out.%p
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_autostart=0

3. Redémarrez Apache

service sudo apache2 redémarre

4. Maintenant, configurez Netbeans en suivant les étapes ci-dessous et illustrées dans la capture d'écran –

  • Allez dans Outils -> Options -> PHP -> Débogage
  • Définir le port de débogage: 9001
  • Appuyez sur le bouton OK puis démarrez le débogage de votre projet avec CTRL + F5 ou le fichier avec CTRL + SHIFT + F5

Didacticiel vidéo:

Ça a l'air utile? Lisez également l’autre partie de l’article pour des informations complètes et détaillées:

Installation et configuration de Xdebug – Partie 2


Installation et configuration de Xdebug sous NetBeans – Partie 2

Introduction

Ce document concerne l’installation de Xdebug et le configure avec Netbeans sous Windows.

Comment déboguer via Xdebug dans un projet?

Pour déboguer via Xdebug, vous devez configurer le projet dans Netbeans. Configurez le projet de système de blog dans NetBeans. Après avoir configuré le projet dans NetBeans, sélectionnez le projet pour lequel vous souhaitez déboguer. Maintenant, allez dans le menu Fichier dans la barre de menu supérieure.

Cliquez ensuite sur Propriétés du projet.

Après avoir cliqué dessus, une fenêtre contextuelle s'ouvrira où vous devrez sélectionner l'onglet Exécuter la configuration.

Après avoir cliqué dessus, une fenêtre contextuelle s'ouvrira où vous devrez sélectionner l'onglet Exécuter la configuration. Ensuite, vous pouvez voir le bouton Avancé ici. Cliquez dessus et sélectionnez le "Ne pas ouvrir Web

Maintenant, cliquez sur le débogueur pour commencer le débogage. S'il vous plaît voir en capture d'écran. Et avant cela, vous devez ouvrir le projet dans le navigateur: Par exemple: http: // localhost: 8080 / blogs / blogs.php? XDEBUG_SESSION_START = netbeans-xdebug Remarque: La partie mise en surbrillance dans l'URL ci-dessus est l'identifiant de session xdebug. Vous devez le transmettre sur la page que vous souhaitez déboguer.

Vous pouvez voir le Xdebug en cours d'exécution en dessous de la barre de notification NetBeans dans l'instantané ci-dessous:

Ensuite, vous devez ajouter un point d'arrêt dans le fichier de code. Le code s'arrêtera à ce point et vous pourrez vérifier les valeurs. Vous pouvez suivre le code en cliquant sur F7 dans NetBeans. Vous pouvez vérifier la valeur des variables dynamiques en les survolant. Vous pouvez également ajouter la variable dans la liste de surveillance.

Tant que vous ne compléterez pas ou n'atteindrez pas la dernière ligne du code que vous déboguez, dans le navigateur, le code s'arrêtera. Il a juste montré le chargement. Une fois le débogage terminé ou la session de débogage terminée, la page (dans le navigateur) que vous ouvrez apparaît.

Regardez le tutoriel complet dans la vidéo suivante:

Ça a l'air utile? Lisez également l’autre partie de l’article pour des informations complètes et détaillées:

Installation et configuration de Xdebug


Comment imprimer la dernière requête exécutée dans CakePHP2?

Follow the following steps to print last executed query in CakePHP2:

To print last executed query:

Add below code in app_model.php file which is located at root/cake/libs/model.

public function getLastQuery() {
      Configure::write('debug', '2');
      $dbo = $this->getDatasource();
      $logs = $dbo->getLog();
      $lastLog = end($logs['log']);
      return $lastLog['query'];
}

Add below line in your model where you want print query.

$last_query = $this->ModelName->getLastQuery();

As we have saved last executed query in variable $last_query then use this to print last executed query.

Remarque : the above code will work only if your model extends appModel because we have defined function in app_model.php

To print all executed queries:

Write below code in model to display all queries which were executed in code:

$log = $this->Model->getDataSource()->getLog(false, false);
debug($log);



Comment supprimer des produits du marché Go Sport?

Objectif du blog:

Après avoir lu ce blog, vous serez en mesure de comprendre comment un vendeur peut supprimer des produits du marché Go Sport.

Méthodes pour supprimer des produits du marché Go Sport

Vous pouvez supprimer des produits du marché Go Sport de deux manières: 1.En supprimant manuellement le compte marchand 2.By à l'aide du flux d'inventaire

1.0 Supprimer manuellement du compte marchand

1. Connectez-vous à lahttps://gosport-prod.mirakl.net/shop/user/api). 2. Après la connexion, vous devrez sélectionner la liste d’offres parmi "Mon inventaire"onglet comme indiqué dans l'image ci-dessous:

3. Dans la page de liste des offres, vous devrez rechercher le SKU en utilisant le champ "SKU de l'offre" et cocher les cases correspondant au SKU que vous souhaitez supprimer, comme indiqué dans l'image ci-dessous.

4. Au bas de la page, vous trouverez un bouton pour supprimer le produit, comme indiqué dans l'image ci-dessous.

5. En cliquant sur ce bouton, une fenêtre contextuelle apparaîtra à l'écran. Elle affichera la liste des SKU que vous avez choisi de supprimer et le bouton pour supprimer ces SKU. Ceci est montré dans l'image ci-dessous:

2.0 Utilisation du flux d'inventaire

Vous pouvez supprimer les produits en vrac du marché Go Sport à l'aide d'un flux d'inventaire. Vous pouvez télécharger l'exemple de flux d'inventaire à partir du lien indiqué ci-dessous:

Cliquez ici pour télécharger le flux d'inventaire

Dans ce flux, vous devez renseigner les données dans les champs suivants:

SKU: Entrez le SKU que vous souhaitez supprimer

update-delete:? Enter “EFFACER"dans cette colonne.
?
Après avoir créé le flux, vous devez le télécharger sur le compte du marchand Go Sport. Les étapes sont indiquées ci-dessous:

1. Connectez-vous au compte marchand Go Sport (URL:https://gosport-prod.mirakl.net/shop/user/api). 2.Importer à partir d'un fichier"option du"Mon inventaire"Onglet. 3. Sur la page Importer un fichier, vous devez télécharger le flux comme indiqué dans l'image:

4. Vous pouvez suivre l'état du flux téléchargé à l'aide de l'option d'importation Suivre l'offre, comme indiqué dans l'image ci-dessus. En cliquant sur l'option Suivi de l'importation des offres, une nouvelle page s'ouvrira pour vous permettre de vérifier l'état du flux téléchargé. Si le flux est importé avec succès, vous pouvez également vérifier le statut de traitement du flux, comme indiqué dans l'image ci-dessous:

Résumé

Après avoir lu ce document, vous (le vendeur) pouvez facilement supprimer vos produits du marché Go Sport.


Configuration Amazon SQS et abonnements MWS pour la notification AnyOfferChanged

Objectif du blog

Après avoir lu ce blog, vous serez en mesure de comprendre comment SQS est configuré et comment MWS est abonné pour toute notification.

Créons un Amazon SQS et activons-le pour l'abonnement MWS

L'Amazone

Créer un service Amazon Simple Queue (Amazon

1. S'identifierhttps://console.aws.amazon.com/sqs/home?region=us-west-2#?URL?and credentials. Page will look like below image.

2. Cliquer surCréer un nouveau Queue?button. Page to create and configure queue will be opened and this will look like below image.

Ici, entrezNom de la file d'attente?which you want. Select queue type. By default,?File d'attente standard?will be selected. Now click on?Configurer la file d'attente?and after click on this, you will get the options to configure queue like below image.

  • Délai de visibilité par défaut:Il s'agit du temps pendant lequel un message reçu de la file d'attente ne sera plus disponible pour recevoir à nouveau.
  • Période de rétention du message: Il s’agit de la période pendant laquelle tout message demeurera dans la file d’attente si ce message n’est pas supprimé de force. Une fois l'heure entrée, ce message sera automatiquement supprimé de la file d'attente. Ce sont deux domaines les plus importants. Les autres champs sont:
  • Taille maximale du message:
  • Délai de livraison:La durée de retarder la première livraison de tous les messages ajoutés à cette file d'attente.
  • Recevoir le message Temps d'attente:La durée la plus longue pendant laquelle un appel de réception à interrogation longue attendra qu'un message devienne disponible avant de renvoyer une réponse vide.

Après avoir entré les détails, cliquez surCréer une file d'attente?button and you will be redirected on queue list page and your new queue will also be shown as shown in below image and basic detail of queue will also be displayed.

In basic detail, there is?URL?which is the most important attribute and this will be used to register and subscribe for notification.

Maintenant, cliquez surAjouter une permission?button. A popup will be opened like below image. Enter your?AWS?account number and in action, check?Tout?Actions?checkbox and click on Add permissions.


Vous pouvez ajouter plusieurs autorisations à votre guise.

Enregistrer une destination (file d'attente créée)

Maintenant, la file d'attente a été créée et vous devez l'enregistrer pour les notifications. Pour cela, vous devez utiliser l’opération RegisterDestination surhttps://mws.amazonservices.co.uk/scratchpad/index.html?or?https://mws.amazonservices.com/scratchpad/index.html?depending on the marketplace. Select?subscriptions?from?API?Section and?RegisterDestination?from operation as below image.


Ici, entrez SellerId, AWSAccessKeyId, Clé secrète et MarketplaceI. En destination,sqsQueueUrl?and in Destination.AttributeList.member.1.Value, you need to enter?SQS?URL qui était sous les détails dans

Lors de la soumission de la demande, vous pouvez obtenir une réponse de succès ou une réponse d'erreur. Si vous obtenez une réponse en dessous, cela signifie que vous vous êtes enregistré avec succès.

<? xml version = "1.0"?> <RequestReportResponse xmlns = "https://mws.amazonservices.com/doc/2009-01-01/"> <RequestReportResult> <ReportRequestInfo> <ReportRequestId> 2291326454 </ ReportRequest> ReportType> _GET_MERCHANT_LISTINGS_DATA _ </ ReportType> <DébutDate> 2009-01TXUMD: 21: 02 + 10: 39 </ DébutDate> <FinDate> 00: 00: 2009: 02 <XDUMX x Faux -13d02-b10c-39cXNXXXXXXXXXUMXa </ RequestId> </ ResponseMetadata> </ RequestReportResponse>

Si une demande n'aboutit pas, l'élément de réponse principal sera ErrorResponse, quelle que soit l'action demandée et le détail de l'erreur sera également répondu.

<ErrorResponse xmlns = "https://mws.amazonservices.com/doc/2009-01-01/">> Erreur> <Type> Expéditeur </ Type> <Code> InvalidClientTokenId </ Code> <Message> Accès AWS L'identifiant clé que vous avez fourni n'existe pas dans nos enregistrements. </ Message> <Detail> com.amazonservices.mws.model.Error$Detail@17b6643 </ Detail> </ Error> <RequestID> b7afc6c3-6f75-4707-4-bcfXNXXXXXmnX)

Après avoir enregistré Destination, essayez l'opération SendTestNotificationToDestination pour vérifier que les notifications sont en cours de réception ou non. Cette opération envoie une notification de test à la destination que vous spécifiez.

Abonnez-vous pour notification

Pour cela, vous devez utiliser l'opération CreateSubscription. Cette opération crée un nouvel abonnement pour le type de notification et la destination spécifiés. Sélectionner


Ici, entrez SellerId, AWSAccessKeyId, Clé secrète et MarketplaceId. Subscription.NotificationType devrait êtresqsQueueUrl?and in Subscription.Destination.AttributeList.member.1.Value, you need to enter?SQS?URL which was under details in?SQS?Queue. Subscription.IsEnabled will be true.

When submitting the request, either you will get success or error in response. Once you get success in response, all is done to get notifications.

After this, you can fetch notification from SQS using CURL request.



How to use Catch_Lite?

Objectif du blog

Après avoir lu ce blog, vous pourrez comprendre comment cache_lite est utilisé pour créer un cache pour le code HTML.

Connaissons le Cache_Lite

Cache_Lite est un système de cache qui peut être utilisé pour les sites Web à fort trafic. La logique simple de cache lite est de servir le code HTML à partir du cache si le cache est déjà créé pour ce code HTML afin que le temps d'extraire / préparer à partir de la base de données / de l'exécution du code pour créer le code HTML puisse être enregistré. Cache_Lite crée un cache HTML pour une page sur la base d'un identifiant lorsque la demande de cette page arrive pour la première fois et sert simplement la page pour la première fois sans cache. Maintenant, lorsque la demande pour la même page reviendra, HTML sera simplement extrait du cache correspondant à l'identifiant et montrera la page, c'est-à-dire que le système ne créera plus de code HTML et jettera le code HTML du cache.

Vérification avant la mise en œuvre de Cache_Lite

Avant de mettre en œuvre cache_lite, vous devez vérifier si PEAR est installé ou non. Pour cela, créez un fichier à la racine, enregistrez les lignes de code ci-dessous dans ce fichier et exécutez-le sur le navigateur.

<? php require_once 'Cache / Lite.php'; var_dump (class_exists ('Cache_Lite', false)); ?>

Si vous obtenez une réponse booléenne true, le PEAR est déjà installé et contient le package Cache_Lite. Toutefois, si vous obtenez une valeur booléenne false ou toute autre erreur dans la réponse, vous devez également vérifier si PEAR n'est pas installé ou si PEAR ne possède pas le package Cache_lite. Pour cela, créez un fichier à la racine, enregistrez les lignes de code ci-dessous dans ce fichier et exécutez-le sur le navigateur.

<? php require_once 'System.php'; var_dump (class_exists ('System', false)); ?>

Si vous obtenez une réponse booléenne true, PEAR est installé mais PEAR ne dispose pas du package Cache_Lite. Dans ce cas, s'il vous plaît se référer https://pear.php.net/package/Cache_Lite. Si vous obtenez toujours boolean false ou toute autre erreur, PEAR n'est pas installé ou include_path n'est pas défini. Dans ce cas, s'il vous plaît se référer https://pear.php.net.

Implémentation Cache_Lite

Si PEAR est installé et que le package Cache_Lite est installé, vous pouvez commencer à implémenter Cache_Lite. Le processus pour créer le cache lite est comme ci-dessous:

  1. Tout d’abord, incluez le paquet Cache_Lite. Pour cela, utilisez le fichier Cache / Lite.php.
  2. Créez un identifiant unique pour ce code HTML afin qu'il puisse être identifié dans le dossier du cache au moment de l'extraction à partir du cache. Chiffrez cet identifiant à l'aide de md5.
  3. Définissez le répertoire dans lequel vous souhaitez enregistrer le cache et la durée d'actualisation après laquelle vous souhaitez actualiser le cache. Si vous souhaitez actualiser le cache une fois par jour, définissez 86400. Désormais, lorsqu'une page est ouverte pour la première fois, le cache est créé et cette page sera servie par le cache pour la prochaine heure 24 (cette heure 24 sera calculée après la création du cache). Désormais, le cache ne sera actualisé que lorsque la page sera chargée à nouveau après l'heure 24.
  4. Après cela, créez un objet de cache_lite et vérifiez si le cache est créé pour id ou non. Si le cache est créé, décompressez les données du cache et chargez-les sur le navigateur. Et si le cache n'est pas créé, obtenez les données du tampon de sortie, comprimez ces données et enregistrez-les dans le cache.

Pour plus de compréhension, consultez l'extrait de code écrit ci-dessous:

define ('CACHE_LITE_STATUS', 'ON'); // Définissez une valeur autre que ON si vous ne souhaitez pas servir le code HTML à partir du cache. Define ('CACHE_LITE_REFRESH_TIME', '43200'); // Ceci est la durée de vie du cache après laquelle vous souhaitez actualiser le cache. if (CACHE_LITE_STATUS == 'ON') {require_once ('Cache / Lite.php'); $ id = 'testid'; // C'est l'identifiant unique avec lequel le cache sera créé. $ id = md5 ($ id); $ options = array ('cacheDir' => "testDir /", // testDir est le répertoire dans lequel le cache sera sauvegardé. Le cache sera créé avec le même nom que son id. Le nom du directeur doit donc être précédé d’une barre oblique ". durée de vie '=> CACHE_LITE_REFRESH_TIME); $ Cache_Lite = new Cache_Lite ($ options); if ($ data = $ Cache_Lite-> get ($ id)) {echo gzuncompress ($ data); // Décompresser une chaîne compressée. Cela consiste à décompresser les données extraites du cache} else {ob_start (); // Activer la mise en tampon de sortie $ data = ob_get_contents (); // Ceci retournera le contenu du tampon de sortie $ data = gzcompress ($ data, 9); // Pour compresser les données du tampon de sortie $ Cache_Lite-> save ($ data); // Sauvegarder les données compressées dans le cache ob_end_flush (); // Vider le tampon de sortie et désactiver le tampon de sortie}}

Résumé

Après avoir lu ce document, vous pouvez essayer le même code sur votre système pour servir le code HTML à l'aide de Cache_Lite. S'il vous plaît laissez-nous savoir pour davantage d'amélioration.