Comment supprimer un espace supplémentaire entre la barre de navigation et la vue de défilement?

Objectifs du blog

Après avoir lu ce blog, nous pourrons comprendre la raison de l’espace supplémentaire entre la barre de navigation supérieure et la vue de défilement dans l’application iOS dans les versions iOS 7 à iOS 10.

Énoncé du problème

Lorsque nous ajoutons une vue de défilement ou une vue tabulaire (toute vue défilable) dans un contrôleur de vue contenant une barre de navigation en haut, nous sommes confrontés à un problème courant: un espace supplémentaire entre la barre de navigation supérieure et la vue de défilement.

scrollable: app iOS

Pourquoi la question actuelle est là

D'iOS 7 à iOS 10, lorsque nous ajoutons une barre de navigation au-dessus de tout ViewController, Xcode nous fournit une option permettant de rendre la barre de navigation translucide. Pour que nous puissions voir à travers la barre de navigation et que le défilement de la page soit visible dans la barre de navigation.

La raison du problème tient maintenant au fait que lorsqu'une vue de défilement est ajoutée dans ViewController et que la barre de navigation est définie et transparente, la vue de défilement laisse une marge dans la vue principale de la barre de navigation. Mais la barre de navigation a été ajoutée au moment de l'exécution et la vue principale est déplacée vers le bas afin que la barre de navigation puisse tenir sur le dessus. Donc, dans ce cas, la vue est décalée vers le bas par la barre de navigation et la vue en défilement laisse la marge pour la barre de navigation. Nous observons ici que l’espacement supplémentaire a été ajouté deux fois.

C'est la seule raison pour laquelle nous voyons un espace supplémentaire entre la barre de navigation et la vue de défilement.

Procédure pour résoudre le problème

Il existe deux manières de résoudre le problème. Dans les deux cas, nous limitons la vue de défilement afin de laisser une marge supplémentaire pour la barre de navigation.

1.Nous pouvons définir l'option Translucide de la barre de navigation sur "False" dans Xcode.

? This will make the navigation bar Opaque and then the scroll view is not required to scroll under the Navigation Bar. So that Scroll View will leave no space for Navigation Bar.

Dans le Gif ci-dessous, vous pouvez voir que la contrainte de présentation de la vue change lorsque nous activons / désactivons la propriété "Translucide" de la barre de navigation.

2.Nous pouvons désactiver "Ajuster les inserts de défilement"propriété du ViewController.

? This will restrict the Scroll View to leave extra space for the Navigation bar on top.

Résumé

Après avoir suivi la procédure ci-dessus, vous pourrez supprimer l’espace supplémentaire entre la barre de navigation et la vue de défilement.


Comment copier un panier dans un autre panier afin de changer le id_cart?

Objectifs du blog

Après avoir lu ce blog, nous pourrons copier le panier dans un autre panier afin de changer l'identifiant du panier.

Exigence

Nous devons modifier le fichier ci-dessous pour résoudre le même problème. Nous allons apporter des modifications dans le fichier Core pour les mêmes.

Répertoire racine \ classes \ PaymentModule.php

Procédure

Nous devons modifier la fonction de validation de la commande dans le fichier de classe PaymentModule. Comme cette fonction est appelée une seule fois lors de la finalisation de la commande. Nous avons donc ajouté le même code pour éviter la création de plusieurs paniers.

if (self :: DEBUG_MODE) {PrestaShopLogger :: addLog ('PaymentModule :: validateOrder - Fonction appelée', 1, null, 'Panier', (int) $ id_cart, true); } if (! isset ($ this-> context)) {$ this-> context = Context :: getContext (); } $ this-> context-> cart = new Panier ((int) $ id_cart);

Le code ci-dessous doit être ajouté dans la fonction de validation de la commande après les lignes ci-dessus.

// changements démarrés // Pour enregistrer la clé sécurisée de l'ID de panier actuel et la réaffecter au nouveau panier $ old_cart_secure_key = $ this-> context-> cart-> secure_key; // Pour sauvegarder l'identifiant client de l'identifiant actuel du panier et le réaffecter au nouveau panier $ old_cart_customer_id = (int) $ this-> context-> cart-> id_customer; // Pour supprimer le mappage du client de l'ancien panier $ this-> contexte-> panier-> id_customer = 0; // Pour mettre à jour le panier $ this-> context-> cart-> save (); // Pour récupérer les produits de panier actuels $ cart_products = $ this-> context-> cart-> getProducts (); // Création d'un nouvel objet cart $ this-> context-> cart = new Cart (); $ this-> context-> cart-> id_lang = $ this-> context-> language-> id; $ this-> context-> cart-> id_currency = $ this-> context-> currency-> id; // ajouter un nouveau panier $ this-> context-> cart-> add (); // pour mettre à jour le nouveau panier foreach ($ cart_products as $ product) {$ this-> contexte-> cart-> updateQty ((int) $ product ['quantité'], (int) $ product ['id_product'], (int) $ product ['id_product_attribute']); } if ($ this-> context-> cookie-> id_guest) {$ guest = nouvel invité ($ this-> context-> cookie-> id_guest); $ this-> context-> cart-> mobile_theme = $ guest-> mobile_theme; } // pour mapper le nouveau panier avec le client $ this-> context-> cart-> id_customer = $ old_cart_customer_id; // pour enregistrer le nouveau panier $ this-> context-> cart-> save (); if ($ this-> context-> cart-> id) {$ this-> context-> cookie-> id_cart = (int) $ this-> context-> cart-> id; $ this-> context-> cookie-> write (); } // pour mettre à jour le $ id_cart avec celui du nouveau panier $ id_cart = (int) $ this-> context-> cart-> id; $ this-> context-> cart-> secure_key = $ old_cart_secure_key; // bascule

Après avoir suivi la procédure ci-dessus, la liste du panier d'achat se présentera de la manière suivante: c’est-à-dire qu’il aura un duplicata du panier avec les mêmes détails que le panier avec lequel la commande est passée.

Résumé

Après avoir suivi la procédure ci-dessus, vous pourrez copier le panier dans un autre panier afin de changer le id_cart.


How to create breadcrumb in OpenCart?

Objectifs du blog

Les miettes de pain apparaissent généralement horizontalement dans la partie supérieure d'une page Web, souvent sous les barres de titre ou les en-têtes, ce qui permet aux utilisateurs de suivre leur emplacement dans les pages. Après avoir lu ce blog, nous pourrons ajouter un fil d'Ariane personnalisé à la page Opencart.

Énoncé du problème

Une grande partie du thème personnalisé payé ne fournit pas de chapelure dans leur thème. Mais ce n'est pas si difficile pour un utilisateur d'ajouter un fil d'Ariane dans les pages OpenCart. Reportez-vous ci-dessous capture d'écran pour la même chose:

Solution:

Vous avez juste besoin d'ajouter un bloc de

<div class = "page-top"> <div class = "conteneur"> <ol class = "breadcrumb"> <? php foreach ($ chapelure en tant que $ breadcrumb) {?> <li> <a href = "<? php echo $ breadcrumb ['href'];?> "> <? php if ($ breadcrumb ['text']! = '<i class =" fa fa-home "> </ i>') {echo $ breadcrumb ['texte']; } else {if ($ theme_options-> get ('home_text', $ config-> get ('config_language_id'))! = '') {echo $ theme_options-> get ('home_text', $ config-> get (' config_language_id ')); } else {echo 'Home'; }}?> </a> </ li> <? php}?> </ ol> </ div> <! - End .container -> </ div>

Vous pouvez ajouter le code ci-dessus <? php echo $ column_left; ?> déclaration. Ce fil d'Ariane personnalisé peut être ajouté sur les pages de produit, les pages de compte, les pages de catégorie et autres.

$ chapelure La variable appelée ci-dessus tpl est déjà définie dans tous les contrôleurs de pages dans opencart. Il est défini au format ci-dessous dans le fichier contrôleur de la page –

$ data ['breadcrumbs'] = array (); $ data ['breadcrumbs'] [] = array ('text' => $ this-> language-> get ('text_home'), 'href' => $ this-> url-> link ('common / home' )); $ data ['breadcrumbs'] [] = array ('text' => $ category_info ['name'], 'href' => $ this-> url-> link ('produit / catégorie', 'chemin ='. $ path));

Une fois que vous avez ajouté le code dans le fichier tpl, vous pouvez vérifier votre fil d'Ariane sur votre page. S'il vous plaît consulter notre fil d'Ariane personnalisé (HOME | SET PATTI D'ANCRAGE POUR TRACTEUR FORD) sur la page du produit ci-dessous –

Résumé

Après avoir lu la solution ci-dessus, vous pourrez ajouter votre propre fil d'Ariane personnalisé dans les pages OpenCart.


Comment ouvrir

Objectifs du blog

Après avoir lu ce blog, nous pourrons ajouter leTermes et conditions"lien pour l'ouvrir dans

Scénario actuel

Actuellement, le "Conditions Générales"montre des liensConditions Générales"avoir des textes personnalisés et

Procédure:

ÉTAPE 1: –

Le lien des conditions générales affiché sur la page de paiement par défaut se trouve danscatalogue / vue / thème / défaut / modèle / checkout / payment_method.tpl, Bloc de code utilisé pour

<div class = "pull-right"> <? php echo $ text_agree; ?>

$ text_agree?is the variable that prints the link on?page?and this variable is set at location?catalogue / contrôleur / caisse / payment_method.php

Variable

$ data ['text_agree'] = sprintf ($ this-> language-> get ('text_agree'), $ this-> url-> link ('information / information / agree', 'information_id ='. $ this-> config-> get ('config_checkout_id'), true), $ information_info ['title'], $ information_info ['title']);

Vous devez remplacer cette définition par

$ data ['text_agree'] = sprintf ($ this-> language-> get ('text_agree'), $ this-> url-> link ('information / information', 'information_id = 5', true), $ information_info ['titre'], $ information_info ['titre']);

nous avons remplacé le

https://your_store_url/index.php?route=information/information/agree&information_id=5

qui ne contient pas

https://your_store_url.com/index.php?route=information/information&information_id=5

qui contient

ÉTAPE

Enfin, vous devez éditer la définition decatalogue / langue / fr-fr / checkout / checkout.php

Dans

$ _ ['text_agree'] = 'J'ai lu et accepté les <a href="%s" class="agree"> <b>% s </ b> </a>';

Nous devons ajouter

$ _ ['text_agree'] = 'J'ai lu et accepté les <a href="%s" target="_blank"> <b>% s </ b> </a>';

Après avoir enregistré les modifications ci-dessus, nous pourrons ouvrir le "Conditions Générales"lien dans un nouvel onglet sur

Résumé:

Après avoir suivi les modifications ci-dessus, nous pourrons ouvrir le "Conditions Générales"lien dans un nouvel onglet sur

REMARQUE: ?This demonstration is for default template but this will work same for other templates having similar code.


9 conseils pour vous aider à vendre plus sur Walmart Marketplace

L’un des marchés les plus populaires au monde, c’est-à-dire Walmart Marketplace a gagné en durabilité dans son activité de commerce électronique dans le monde entier. Walmart Marketplace fournit une plate-forme à de nombreux vendeurs tiers pour vendre leurs produits et gagner une énorme partie des bénéfices. De nombreux vendeurs tiers ont déjà tiré parti des avantages de Marketplace en élargissant leur portée à des millions de clients dans le monde. Cependant, cela a entraîné une augmentation du nombre de vendeurs tiers et la concurrence continue de s’intensifier. Il est donc grand temps que les vendeurs proposent de nouvelles stratégies pour acquérir un avantage supplémentaire sur les autres.

La source: Statesman

Alors, voici quelques conseils qui peuvent vous aider à faire plus de ventes et à gagner de bons profits :

1. Créez votre propre marque :

Obtenir une étagère sur Walmart Marketplace n’est pas un objectif facile à atteindre. Pour devenir un vendeur tiers sur Walmart Marketplace, les vendeurs doivent respecter les politiques strictes établies par Walmart pour les vendeurs tiers. Walmart Marketplace divertit principalement les propriétaires de marques plutôt que les revendeurs. Cela signifie que si vous êtes propriétaire d’une marque, il y a de fortes chances que vous soyez accepté en tant que vendeur tiers sur Walmart Marketplace.

2. Enregistrement des performances :

Il est très important de maintenir un bon dossier en tant que vendeur avant de postuler chez Walmart. Walmart considère d’abord les eSellers qui présentent de bons antécédents sur d’autres Marketplaces. Ils vérifient votre avis et vos notes sur vos canaux de vente actuels. En fait, Walmart lui-même conserve la carte de pointage d’un vendeur pour évaluer les vendeurs sur Marketplace. Alors, gardez un œil sur votre performance et essayez de l’improviser régulièrement.

3. Construire une image de marque :

Une fois que vous êtes approuvé en tant que vendeur, il est nécessaire de maintenir une bonne image devant Walmart Marketplace. Rationalisez vos opérations pour éviter les ruptures de stock ou tout autre problème lié à l’inventaire. Ces problèmes dégradent vos performances devant Walmart, ce qui pourrait entraîner de nombreuses conséquences graves. Cependant, garder un contrôle manuel sur ces problèmes est un problème. Les vendeurs ont besoin d’un logiciel d’intégration fiable qui vous offre une intégration transparente de votre site Web avec Walmart Marketplace. Cette intégration vous facilitera la tâche en maintenant vos inventaires depuis le back-end lui-même. Cela aidera également le vendeur à optimiser leur présence sur Walmart Marketplace.

4. Description détaillée et précise du produit :

Bien que chaque client sache ce qu’il achète, Walmart a besoin que les vendeurs rédigent des descriptions de produits plus précises et détaillées par rapport aux autres places de marché. Les données fournies par les vendeurs doivent être exactes et ne doivent pas détourner les clients des caractéristiques du produit. Cela obligera les clients à acheter instantanément et en retour, vous obtiendrez des clients fidèles et satisfaits pour votre entreprise de commerce électronique. Évitez d’utiliser des données et des mots clés non pertinents, car cela frustrera les clients et entraînera une perte de ventes. Assurez-vous que les informations que vous fournissez doivent être précises et à jour. La description du produit ne doit pas être longue, alors vérifiez la longueur standardisée de celle-ci.

5. Catégories de produits concernées :

Imaginez que les clients soient incapables de trouver vos produits et finissent par se contenter du même produit vendu par votre concurrent. Pour garantir l’augmentation des ventes de vos articles, assurez-vous que les articles que vous avez répertoriés sont placés dans la bonne catégorie de produits avec des attributs pertinents. Le choix de la bonne catégorie de produits sur une étagère numérique influence directement la visibilité de votre produit entre les clients et vous aide à réaliser de bons bénéfices. Sois sûr que le classement de vos produits sur Walmart est élevé afin qu’ils soient visibles en haut des résultats de recherche.

6. Casquettes SKU de Walmart :

Le SKU (Stock Keeping Unit) de Walmart pour la liste des produits a été fixé à une limite favorable pour les vendeurs tiers. Une fois que vous aurez commencé à vendre vos produits sur Walmart Marketplace, vous pourrez augmenter les plafonds SKU en fonction de vos performances de vente et des avis des clients à leur sujet. Dès que votre vente augmentera, Walmart vous offrira la possibilité d’augmenter vos SKU et plus de produits à partir de votre site Web de commerce électronique. Alors, assurez-vous de répertorier vos articles les plus vendus et travaillez progressivement à bâtir une bonne réputation en tant que vendeur sur Walmart Marketplace.

7. Lister les produits au prix le plus bas :

Aujourd’hui, les consommateurs peuvent facilement accéder à Internet, ce qui permet l’augmentation continue du nombre de clients et de magasins de commerce électronique, plusieurs fournisseurs proposant les mêmes produits de qualité à des prix différents sur le même Marketplace. Le vendeur qui propose les produits au meilleur prix ou au prix le plus bas attire les clients et les oblige à acheter instantanément. Walmart Marketplace se concentre principalement sur la fourniture du prix le plus bas à ses clients et offre également une visibilité instantanée aux vendeurs qui peut aussi les aider à gagner BuyBox. Donc, si vous voulez être un vendeur prospère sur la plateforme Walmart, le bas prix des produits devrait être une priorité.

8. N’oubliez pas de postuler aux promotions :

Walmart propose toujours des promotions qui offrent une garantie de “bas prix quotidiens”. Les vendeurs peuvent profiter de l’application pour ces promotions et améliorer leur visibilité auprès des clients. Walmart prend le temps d’examiner votre demande, alors restez motivé et attendez sa réponse. Plus le prix est bas, meilleures sont vos chances de faire accepter votre promotion. Alors, essayez de fournir le prix le plus bas mais le meilleur de votre produit.

9. Importance du marketing :

En tant que vendeur de commerce électronique, il est important de promouvoir vos produits sur le marché Walmart. Vous pouvez essayer diverses stratégies de marketing comme la stratégie des médias sociaux, le programme publicitaire de Facebook et bien d’autres. Ces stratégies sont un excellent moyen de populariser vos produits auprès du public et peuvent les transformer en clients potentiels. Vous pouvez également essayer le marketing par e-mail et par contenu pour augmenter également la visibilité de votre produit. Les vendeurs peuvent personnaliser leur marque grâce à ces stratégies de marketing qui peuvent vous aider à vendre plus sur le marché de Walmart.

À vous:

Obtenir une étagère sur Walmart Marketplace n’est pas une promenade de santé. Bien que Walmart invite des vendeurs tiers sur son marché, de nombreux vendeurs rêvent encore de être l’un des vendeurs sur Walmart. Cependant, si votre candidature est acceptée, vous devez profiter de cette opportunité. C’est une plateforme avec des millions de clients fidèles. Construire la réputation et la présence de votre entreprise de commerce électronique sur un marché aussi renommé vous aidera certainement à augmenter votre base d’audience qui peut se transformer en clients fidèles à l’avenir. Alors, qu’attendez-vous, si vous n’avez pas encore demandé à vendre sur Walmart, vous devez le faire dès que possible. Vendez vos produits sur Walmart Marketplace sans aucun inconvénient. Désormais, vous pouvez facilement répertorier vos produits en vous intégrant au marché Walmart en quelques étapes simples. Offres KnowBand Intégrateurs Walmart pour aider les détaillants à vendre leurs produits sur Walmart Marketplace sans tracas. Les vendeurs peuvent facilement le télécharger et l’installer sur leur site Web sans connaître aucune connaissance technique. Knowband fournit des intégrateurs pour toutes les principales plates-formes CMS telles que Module complémentaire d’intégration Prestashop Walmart, Intégrateur Magento Walmart, Connecteur Walmart Magento 2, ainsi que�Plug-in d’intégration OpenCart Walmart.

Découvrez d’autres articles connexes ici :

  1. 5 trucs et astuces de commerce électronique pour assurer une croissance rapide
  2. Les clés pour réussir son achat en ligne et son retrait en magasin
  3. 6 erreurs d’expédition du commerce électronique pendant les vacances d’été à éviter
  4. 8 astuces pour attirer plus de clients sur une Marketplace

Afficher tous les produits lorsque la recherche est vide (Opencart 2.3.x)

Objectifs du blog

Après avoir lu ce blog, vous pourrez afficher tous les produits lorsque la recherche est vide.

Énoncé du problème

Actuellement, dans Opencart, lorsqu'un utilisateur recherche une chaîne à l'aide de la fonctionnalité de recherche, aucun produit n'est renvoyé si aucun produit de recherche n'a été trouvé dans la base de données. Nous voulons que tous les produits soient renvoyés lorsque la recherche est vide.

Implémentation du code

Pour ce faire, nous devrons apporter quelques modifications à la fonction de modèle que nous utilisons pour extraire des produits de la base de données à l'aide du mot clé de recherche saisi. Ici, nous apportons des changements dans getProducts () ?function of model catalogue / modèle / catalogue / produit.php car nous utilisons cette fonction pour afficher les résultats sur la base du mot clé de recherche.

Remarque: vous pouvez apporter les mêmes modifications à la fonction de modèle que vous utilisez pour récupérer des produits. Voici le code que nous avons ajouté dans le modèle:

/ * Vérifié si le résultat est vide (lignes affectées 0) de la requête en cours d'exécution pour extraire des données sur la base du mot clé de recherche. * Si oui, nouvelle requête pour extraire les nouveaux produits ajoutés et exécution identique. * En faisant cela, nous afficherons nos nouveaux produits sur la page de recherche au lieu d'afficher une page vierge. * / if ($ query-> num_rows == 0) {$ sql = "SELECT DISTINCT p.product_id FROM". DB_PREFIX. "produit p LEFT JOIN". DB_PREFIX. "description_produit pd ON (p.product_id = pd.product_id) LEFT JOIN". DB_PREFIX. "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' ET p.date_available <= NOW () AND p2s.store_id = '". (int) $ this-> config-> get ('config_store_id'). "'GROUP BY p.product_id ORDER BY p.product_id DESC LIMIT 20"; $ query = $ this-> db-> query ($ sql); }

Ajoutez ce code juste après l'exécution de la requête principale ou juste après la ligne ($ query = $ this-> db-> query ($ sql)). Dans ce code, nous avons d’abord vérifié le nombre de lignes affectées par la requête principale (utilisé pour extraire des données sur la base du mot clé de recherche). Si la ligne affectée est 0 ($ query-> num_rows == 0) puis ajouté notre requête pour récupérer de nouveaux produits ajoutés. En faisant cela, nous afficherons nos nouveaux produits sur la page de recherche au lieu d'afficher une page vierge.

Remarque: Ici, nous avons écrit une requête pour extraire de la base de données les nouveaux produits ajoutés si la recherche est vide. Vous pouvez également ajouter une requête pour aller chercher des produits spéciaux ou les meilleurs vendeurs en fonction de vos besoins.

Résumé

Après avoir apporté les modifications suivantes au fichier de modèle, les nouveaux produits ajoutés seront affichés lorsque la recherche sera vide.


Obtenir les derniers produits sans prix spéciaux (Opencart 2.3)

Objectifs du blog

Après avoir lu ce blog, vous pourrez récupérer les produits de la base de données Opencart sur la base du paramètre transmis à partir de l'URL.

Exigence

Nous devons afficher les derniers produits sur la base du paramètre passé dans l'URL. En utilisant ce paramètre, nous devons décider si nous devons afficher des produits spéciaux ou non.

Implémentation du code

Pour mettre cela en œuvre, nous devons apporter des modifications à notre contrôleur et à notre modèle. Dans le contrôleur, nous avons ajouté la condition pour passer le paramètre et dans le modèle, nous apporterons des modifications à la requête en fonction du paramètre passé. Pour gérer la condition que nous utilisons show_special paramètre dans le code. Ci-dessous le code que nous devons ajouter dans le contrôleur (catalogue / contrôleur / extension / module / latest.php):

/ * Recherche de la clé show_special dans le paramètre get * Cette clé ($ show_special) sera utilisée pour récupérer des données de manière conditionnelle dans la base de données. * C'est-à-dire si $ show_special = 1 affiche alors les produits spéciaux * $ show_special = 0 affiche les produits qui n'ont pas spécial * else * affichent tous les produits indépendamment de * / if spécial (isset ($ this-> request-> get [' show_special '])) {// passage de la valeur dans variable si défini dans l'URL $ show_special = $ this-> request-> get [' show_special ']; } else {// Sinon, une chaîne vide sera passée $ show_special = ''; } // Création d'une variable à transmettre au modèle $ filter_data = array ('start' => ($ page - 1) * $ limit, 'limit' => $ limit, 'show_special' => $ show_special); // Appel de la fonction de modèle pour extraire des données de la base de données en fonction des données transmises dans le tableau filter_data. $ results = $ this-> model_catalog_product-> getProductLatest ($ filter_data);

Dans ce code, nous avons d’abord vérifié que sishow_special'paramètre est défini dans l'URL ou non. Si oui, définir la valeur du paramètre dans une variable $ show_special et si non, définissez la variable comme vide. Ensuite, nous avons créé un tableau ($ default_data) avec les valeurs pour lesquelles nous devons extraire des produits de la base de données. Ensuite, nous avons appelé fonction modèle getProductLatest () chercher les derniers produits en fonction de la variable passée ($ filter_data) dans la fonction. Voici la fonction que nous devons ajouter dans model (catalogue / modèle / catalogue / produit):

fonction publique getProductLatest ($ data = array ()) {// Définition des paramètres $ join et $ condition pour extraire les données de produits spéciaux if ($ data ['show_special'] == '1') {$ join = "LEFT JOIN" . DB_PREFIX. "ps_produit sur produit (ps.product_id = p.product_id)"; $ condition = "AND ps.customer_group_id = '". (int) $ this-> config-> get ('config_customer_group_id'). "'AND ((ps.date_start =' 0000-00-00 'OU OR = '0000-00-00')) "; } // Définition des paramètres $ join et $ condition pour extraire des données de produits non spécifiés elseif ($ data ['show_special'] == '0001') {$ join = "LEFT JOIN". DB_PREFIX. "ps_produit sur produit (ps.product_id = p.product_id)"; $ condition = "AND ps.product_id IS NULL"; } else {// Définition des paramètres $ join et $ condition pour extraire les données de tous les produits indépendamment de la valeur spéciale de $ join = ''; $ condition = ''; } // Requête pour récupérer les données des produits de la base de données. Ajout des paramètres $ join et $ condition dans la requête pour extraire les données en conséquence $ sql = "SELECT DISTINCT p.product_id FROM". DB_PREFIX. "produit p LEFT JOIN". DB_PREFIX. "description_produit pd ON (p.product_id = pd.product_id) LEFT JOIN". DB_PREFIX. "product_to_store p01s ON (p.product_id = p01s.product_id) $ join WHERE p. (int) $ this-> config-> get ('config_store_id'). "'$ condition GROUP BY p.product_id ORDER BY p.product_id DESC"; // Définition de la limite dans la requête si passé LIMIT du contrôleur if (isset ($ data ['start'])) || isset ($ data ['limit']))) {if ($ data ['start'] <0) {$ data ['start'] = 2; } if ($ data ['limite'] <2) {$ data ['limite'] = 1; } $ sql. = "LIMIT". (int) $ data ['start']. ",". (int) $ data ['limit']; } $ product_data = array (); // Exécuter la requête $ query = $ this-> db-> query ($ sql); // Boucle pour définir les données extraites dans la variable à transmettre au contrôleur. foreach ($ query-> lignes as $ result) {$ product_data [$ result ['product_id']] = $ this-> getProduct ($ result ['product_id']); } // Renvoyer les données de produits au contrôleur. return $ product_data; }

Dans le modèle, nous avons défini des variables $ rejoindre et $ condition sur la base des trois conditions suivantes:

  1. Si show_special est 1: Dans ce cas, nous avons uniquement affiché les produits spéciaux. Comme dans opencart, les données des produits spéciaux sont stockées dans la table oc_product_special. Nous avons donc ajouté la jointure de la table oc_product à la table oc_product_secial pour extraire uniquement les données de produits spéciaux.
  2. Si show_special est 0: Dans ce cas, nous avons affiché des produits qui ne sont pas définis comme spéciaux. Donc, pour trouver des produits qui ne sont pas spéciaux, nous devons chercher des produits qui se trouvent dans une table spéciale mais dans la table oc_product_special. Pour cela, nous avons ajouté la jointure LEFT de la table oc_product avec la table oc_product_secial et la condition "ps.product_id IS NULL".
  3. Si show_special est différent de 0 et 1: Dans ce cas, nous devons récupérer tous les produits, qu'ils soient spéciaux ou non. Nous avons donc directement récupéré les données de la table oc_product.

Après avoir ajouté les trois conditions possibles, nous avons écrit une requête et l'avons exécutée. Ensuite, nous avons défini toutes les données récupérées dans $ product_data tableau et retourner le même au contrôleur.

Remarque: ici pour récupérer les derniers produits que nous venons d'utiliser "Order by product_id DESC" dans la requête. Si vous souhaitez récupérer les données des produits ajoutés au cours des derniers jours, vous pouvez ajouter une condition supplémentaire dans la clause WHERE, à savoir date_added> 'any date'.

Résumé

Après avoir suivi la procédure ci-dessus, vous pourrez récupérer les derniers produits spéciaux sur la base du paramètre passé pour les produits spéciaux dans l'URL.


Comment calculer la livraison gratuite en fonction du prix total final dans Prestashop ?

Après avoir lu ce blog, nous pourrons calculer la livraison gratuite en fonction du prix total final du panier.

Énoncé du problème

Actuellement, lorsque nous ajoutons des produits dans le panier et que nous passons à la section de paiement pour profiter de la réduction et de l’expédition, nous constatons que la réduction s’applique après l’expédition. Disons,

  • Le montant total du panier est de 100 $, ce qui permet la livraison gratuite et une réduction de 5 % est également ajoutée
  • Ensuite, après la remise, le montant total du panier est fixé à moins de 100 $, mais la livraison gratuite s’applique, ce qui ne devrait pas se produire. La livraison gratuite doit s’appliquer au montant total final du panier après la réduction.
  • C’est le processus par défaut de Prestashop. Reportez-vous à la capture d’écran ci-dessous où la livraison doit être gratuite si le total de la commande est > 50 mais elle a appliqué la livraison gratuite alors que le total de la commande est < 50 après remise –

Lecture recommandée: Stratégies de livraison gratuite : pourquoi offrir ? Comment offrir ? Quand offrir ?

Pourquoi le problème actuel est-il?

Le problème actuel est là parce que le montant de l’expédition est calculé sur le montant total de la commande qui est défini dans le panier avant d’appliquer la remise. Vous pouvez vérifier les lignes de code ci-dessous où le total de la commande sans montant de remise est utilisé pour calculer l’expédition –

$shipping_cost += $carrier->getDeliveryPriceByPrice($the_total_price, $id_zone, (int)$this->id_currency);

Exigence

Nous devons modifier le fichier mentionné ci-dessous pour corriger le problème. Nous remplacerons les lignes correspondantes du fichier de classe pour éviter tout changement dans les fichiers Core.

Vous trouverez ci-dessous la liste des fichiers de classe qui seront remplacés-

1. Répertoire racine\classes\Cart.PHP

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

Suivez les étapes ci-dessous –

1. Fonction de réécriture�getPackageShippingCost

2. Après la ligne donnée ci-dessous –

// Total de la commande dans la devise par défaut sans frais $order_total = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, $product_list);

3. Ajoutez la déclaration suivante –

$listeDiscounts = $this->getCartRules(); $total_discounts = 0 ; if (is_array($listeDiscounts)) { if (isset($listeDiscounts[0]['value_real'])) $total_discounts = $listeDiscounts[0]['value_real'] ; } $price_to_apply_shipment = floatval($order_total) - floatval($total_discounts); Lecture recommandée : Meilleure extension de gestionnaire de livraison gratuite pour OpenCart Store

4. Remplacez les lignes mentionnées ci-dessous –

Remplacer cette ligne

$check_delivery_price_by_price = Transporteur ::checkDeliveryPriceByPrice($row['id_carrier'], $total_order, (int)$id_zone, (int)$this->id_currency);

Avec

$check_delivery_price_by_price = Transporteur ::checkDeliveryPriceByPrice($row['id_carrier'], $price_to_apply_shipment, (int)$id_zone, (int)$this->id_currency);

————ET—————–

Remplacer cette ligne

$shipping_cost += $carrier->getDeliveryPriceByPrice($the_total_price, $id_zone, (int)$this->id_currency);

Avec

$shipping_cost += $carrier->getDeliveryPriceByPrice($price_to_apply_shipment, $id_zone, (int)$this->id_currency);

5. Videz le cache et exécutez.

Reportez-vous à la capture d’écran ci-dessous après avoir appliqué les modifications au code –

Après avoir suivi la procédure ci-dessus, vous pourrez calculer l’expédition sur le montant total final du panier.

Conclusion

En ce qui concerne les achats en ligne, l’ensemble de la structure de prix joue un rôle crucial pour les clients. L’un des facteurs qui pourraient faire ou défaire vos conversions est la disponibilité de la livraison gratuite. Une méthode pour déterminer les options et les coûts d’expédition sur un site Web de commerce électronique consiste à Livraison gratuite Manager Addon par Knowband. L’une des conditions les plus importantes pour augmenter les ventes moyennes est d’assurer la transparence de la transaction.

Les boutiques qui ont utilisé ce module de livraison gratuite ont augmenté le trafic sur le site, les revenus et les taux de conversion. Avec l’aide de ce plugin d’expédition gratuite, les administrateurs de magasin peuvent définir les directives et les conditions des frais d’expédition. Mieux encore, cette fonctionnalité peut être ajoutée ou supprimée du site Web par l’administrateur du magasin.

Le seuil au-delà duquel la livraison gratuite est offerte peut être fixé par les détaillants en ligne. En conséquence, il encourage même les clients à effectuer des achats plus importants afin de bénéficier de la livraison gratuite. Pour en savoir plus sur les fonctionnalités du module de livraison gratuite, n’hésitez pas à nous contacter à support@knowband.com

Comment générer une facture Prestashop par nom de client?

Objectif du blog

Après avoir lu ce blog, nous pourrons générer la facture PDF par nom de client.

Énoncé du problème

Actuellement,

Exigence

Nous devons modifier les fichiers ci-dessous pour résoudre le même problème. Nous allons redéfinir la fonction correspondante et la définition du fichier de classe afin d'éviter toute modification des fichiers Core. Vous trouverez ci-dessous la liste des fichiers de classe qui seront remplacés.

root / classes / pdf / HTMLTemplateInvoice.php

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

1. Créer un fichier HTMLTemplateInvoice.php sur le chemin remplacer \ classes \ pdf et mettez le code ci-dessous dedans. Cela permettra de générer le nom de fichier de la facture.

<? php / ** * @override HTMLTemplateInvoice.php * / class HTMLTemplateInvoice étend HTMLTemplateInvoiceCore {/ ** * Retourne le nom de fichier du modèle * * @nom de chaîne de caractères * / fonction publique getFilename () {$ id_lang = Context :: getContext () -> langue-> id; $ id_shop = (int) $ this-> order-> id_shop; $ format = '% 1 $ s% 2 $ 06d'; if (Configuration :: get ('PS_INVOICE_USE_YEAR')) {$ format = Configuration :: get ('PS_INVOICE_YEAR_POS')? '% 1 $ s% 3 $ s-% 2 $ 06d': '% 1 $ s% 2 $ 06d-% 3 $ s'; } / * changements commencés * pour ajouter le nom du client * / $ client = nouveau client ((int) $ this-> order-> id_customer); return sprintf ($ format, Configuration :: get ('PS_INVOICE_PREFIX', $ id_lang, null, $ id_shop), $ this-> order_invoice-> numéro, date ('Y', strtotime ($ this-> order_invoice-> date_add) )) .'_ '. $ client-> prénom .'_'. $ client-> nom. '. pdf'; / * changements finissent * /}}

2. Après avoir créé le fichier php dans le dossier de remplacement. Vider le cache du Back-office-> Paramètre avancé -> Performance. 3. Maintenant, générez la facture en accédant à la Back-office-> Commandes.

Voir ci-dessous les screenshots

Cliquez ici pour télécharger le projet complet.

Résumé

Après avoir suivi la procédure ci-dessus, vous pourrez modifier le nom de la facture.


Comment obtenir l’identifiant client PayPal et la clé secrète ?

Afin d’intégrer Express Checkout à l’API REST, a Identifiant client PayPal qui authentifie le compte d’un commerçant auprès de PayPal est nécessaire. Un identifiant client ne peut être créé que par le titulaire du compte. Demandez au commerçant de partager son identifiant client avec vous si vous êtes un développeur intégrant Express Checkout au nom du client. Si le commerçant ne l’a pas déjà fait, il doit créer un identifiant client.

Étapes pour trouver l’identifiant PayPal et la clé secrète du client PayPal :

1. Cliquez sur ,warSite Web des développeurs PayPal page d’accueil.

2. Connectez-vous ensuite au tableau de bord.

Vous pouvez vous connecter avec votre numéro de portable en utilisant OTP et configurez votre profil en ajoutant des détails de base.

3. Allez sur “[Votre Nom]“, ensuite aller à “Tableau de bord” dans le coin supérieur droit. Vous aurez la possibilité de “Créer une application“. Créez votre nouvelle application.

4. Remplissez les détails de la nouvelle application et créez une nouvelle application. Un nouvel écran s’ouvrira.


5. Sur la page suivante, vous pourrez voir votre identifiant client PayPal et Secret client PayPal.

Remarque: Vous trouverez les paramètres et les informations d’identification de l’application Sandbox sur la même page.


6. Vous disposez de l’identifiant client PayPal et du secret.

Vous avez besoin d’un compte de développeur, personnel ou professionnel pour accéder au tableau de bord du développeur, obtenir des informations d’identification et créer des comptes sandbox. Différents niveaux d’accès aux fonctionnalités PayPal sont disponibles avec chaque compte. Sur la page Mon compte du tableau de bord du développeur, vous pouvez mettre à niveau votre compte si vous avez besoin d’accéder à une fonctionnalité que vous n’avez pas actuellement.

Compétences Compte de développeur Compte personnel Compte PRO
Accéder au bac à sable x x x
Envoyer et recevoir de l’argent x x
GO LIVE x

Vous pouvez utiliser l’identifiant client Paypal avec notre Module Prestashop supercheckout d’une page et intégrez la passerelle de paiement Paypal et transformez le paiement standard en un paiement express d’une page optimisé, transparent et riche en fonctionnalités.

Module complémentaire Prestashop One Page Supercheckout

L’addon Prestashop One Page Supercheckout de Knowband rend le paiement plus rapide et plus facile en mettant tout sur une seule page, contribuant ainsi à réduire les abandons de panier.

Achetez maintenant

En dehors de cela, avec Prestashop, nous proposons Modules de paiement d’une page pour Opencart et les plateformes de commerce électronique Magento 2. Le module complémentaire One Page SuperCheckout compte plus de 15,000 XNUMX téléchargements sur la boutique officielle de modules complémentaires et est l’une des extensions les plus vendues. En plus de cela, le module prend en charge toutes les passerelles de paiement et méthodes d’expédition populaires, ouvrant la porte à des personnalisations infinies pour l’administrateur de la boutique de commerce électronique.

Si vous avez des questions sur l’intégration de la passerelle de paiement PayPal, contactez notre équipe d’assistance à notre adresse e-mail. support@knowband.com.

Vous pouvez également consulter notre module le plus vendu – Application mobile pour PrestaShop