Search the Community
Showing results for tags 'creation'.
-
Hi everybody. I'm currently using the webservice API and I have a problem when creating an order: the API doesn't honor the current_state value. And I'm forced to change the state later. The problem is that in the history the first state is visible. Below are provided the full http messages/responses, but for the sake of the explanation I copy there some excerpts: I send <id_cart>375</id_cart> <id_currency>1</id_currency> <id_lang>1</id_lang> <id_customer>1</id_customer> <id_carrier>1</id_carrier> <current_state>5</current_state> I receive: <ID><ID><![CDATA[218]]><![CDATA[21 </ID> <ID_ADDRESS_DELIVERY xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></ID_ADDRESS_DELIVERY> <ID_ADDRESS_INVOICE xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></ID_ADDRESS_INVOICE> <ID_CART xlink:href="http://XXXXXXXXXXXX.fr/api/carts/375"><![CDATA[375]]></ID_CART> <ID_CURRENCY xlink:href="http://XXXXXXXXXXXX.fr/api/currencies/1"><![CDATA[1]]></ID_CURRENCY> <ID_LANG xlink:href="http://XXXXXXXXXXXX.fr/api/languages/1"><![CDATA[1]]></ID_LANG> <ID_CUSTOMER xlink:href="http://XXXXXXXXXXXX.fr/api/customers/1"><![CDATA[1]]></ID_CUSTOMER> <ID_CARRIER xlink:href="http://XXXXXXXXXXXX.fr/api/carriers/1"><![CDATA[1]]></ID_CARRIER> <CURRENT_STATE xlink:href="http://XXXXXXXXXXXX.fr/api/order_states/"></CURRENT_STATE> As you see the current_state 5 is not there. When I retrieve the full order I get: <ID><ID><![CDATA[218]]><![CDATA[218]]></ID></ID> <ID_ADDRESS_DELIVERY<ID_ADDRESS_DELIVERY xlink:hrefxlink:href="http://XXXXXX.fr/api/addresses/1"><![CDATA[1]]></ID_ADDRESS_DELIVERY> <ID_ADDRESS_INVOICE xlink:href="http://XXXXXX.fr/api/addresses/1"><![CDATA[1]]></ID_ADDRESS_INVOICE> <ID_CART xlink:href="http://XXXXXX.fr/api/carts/375"><![CDATA[375]]></ID_CART> <ID_CURRENCY xlink:href="http://XXXXXX.fr/api/currencies/1"><![CDATA[1]]></ID_CURRENCY> <ID_LANG xlink:href="http://XXXXXX.fr/api/languages/1"><![CDATA[1]]></ID_LANG> <ID_CUSTOMER xlink:href="http://XXXXXX.fr/api/customers/1"><![CDATA[1]]></ID_CUSTOMER> <ID_CARRIER xlink:href="http://XXXXXX.fr/api/carriers/1"><![CDATA[1]]></ID_CARRIER> <CURRENT_STATE xlink:href="http://XXXXXX.fr/api/order_states/11"><![CDATA[11]]></CURRENT_STATE> As you see, the current_state is at the value 11 The problems are that: the state 11 is a prestashop state, state that marks the order as payed, and generates an order receipt I need to use a state that doesn't mark the order as payed, and so on I don't want to mess with prestashop states I can change the state later but in the history the previous state is visible[1] Have someone an idea about how to force prestashop to accept at order's creation time a specific state, or to set a default arbitrary state (instead of 11) ? [1] to be more precise I would like to have the order in a state of quotation, then change the price of a product in the order, and finally to mark as payed the order ; when I do this the history keep the first price as, I suppose, the order was marked as payed P.S. : here the full Http messages Cart creation message sent: <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <cart> <id/> <id_address_delivery>1</id_address_delivery> <id_address_invoice>1</id_address_invoice> <id_currency>1</id_currency> <id_customer>1</id_customer> <id_guest/> <id_lang>1</id_lang> <id_shop_group>1</id_shop_group> <id_shop>1</id_shop> <id_carrier>1</id_carrier> <recyclable/> <gift/> <gift_message/> <mobile_theme/> <delivery_option/> <secure_key/> <allow_seperated_package/> <date_add/> <date_upd/> <associations> <cart_rows> <cart_row> <id_product>330</id_product> <id_product_attribute>0</id_product_attribute> <id_address_delivery>1</id_address_delivery> <quantity>1</quantity> </cart_row> </cart_rows> </associations> </cart> </prestashop> Cart creation message answer : <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <cart> <id><![CDATA[375]]></id> <id_address_delivery xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_delivery> <id_address_invoice xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_invoice> <id_currency xlink:href="http://XXXXXXXXXXXX.fr/api/currencies/1"><![CDATA[1]]></id_currency> <id_customer xlink:href="http://XXXXXXXXXXXX.fr/api/customers/1"><![CDATA[1]]></id_customer> <id_guest></id_guest> <id_lang xlink:href="http://XXXXXXXXXXXX.fr/api/languages/1"><![CDATA[1]]></id_lang> <id_shop_group><![CDATA[1]]></id_shop_group> <id_shop><![CDATA[1]]></id_shop> <id_carrier><![CDATA[1]]></id_carrier> <recyclable></recyclable> <gift></gift> <gift_message></gift_message> <mobile_theme></mobile_theme> <delivery_option></delivery_option> <secure_key></secure_key> <allow_seperated_package></allow_seperated_package> <date_add><![CDATA[2018-06-11 14:39:08]]></date_add> <date_upd><![CDATA[2018-06-11 14:39:08]]></date_upd> <associations> <cart_rows nodeType="cart_row" virtualEntity="true"> <cart_row> <id_product xlink:href="http://XXXXXXXXXXXX.fr/api/products/330"><![CDATA[330]]></id_product> <id_product_attribute xlink:href="http://XXXXXXXXXXXX.fr/api/combinations/0"><![CDATA[0]]></id_product_attribute> <id_address_delivery xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_delivery> <quantity><![CDATA[1]]></quantity> </cart_row> </cart_rows> </associations> </cart> </prestashop> Now to the order creation message: <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <order> <id/> <id_address_delivery>1</id_address_delivery> <id_address_invoice>1</id_address_invoice> <id_cart>375</id_cart> <id_currency>1</id_currency> <id_lang>1</id_lang> <id_customer>1</id_customer> <id_carrier>1</id_carrier> <current_state>5</current_state> <module>XXXXX_lodgepayment</module> <invoice_number/> <invoice_date/> <delivery_number/> <delivery_date/> <valid/> <date_add/> <date_upd/> <shipping_number/> <id_shop_group>1</id_shop_group> <id_shop>1</id_shop> <secure_key/> <payment>CB - Paiement à la loge</payment> <recyclable/> <gift/> <gift_message/> <mobile_theme/> <total_discounts/> <total_discounts_tax_incl/> <total_discounts_tax_excl/> <total_paid>3.5</total_paid> <total_paid_tax_incl/> <total_paid_tax_excl/> <total_paid_real>3.5</total_paid_real> <total_products>2.92</total_products> <total_products_wt>3.5</total_products_wt> <total_shipping/> <total_shipping_tax_incl/> <total_shipping_tax_excl/> <carrier_tax_rate/> <total_wrapping/> <total_wrapping_tax_incl/> <total_wrapping_tax_excl/> <round_mode/> <round_type/> <conversion_rate>1</conversion_rate> <reference/> <associations> <order_rows> <order_row> <id/> <product_id>330</product_id> <product_attribute_id>0</product_attribute_id> <product_quantity>1</product_quantity> <product_name/> <product_reference/> <product_ean13/> <product_isbn/> <product_upc/> <product_price/> <unit_price_tax_incl/> <unit_price_tax_excl/> </order_row> </order_rows> </associations> </order> </prestashop> and the server response: <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <order> <id><![CDATA[218]]></id> <id_address_delivery xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_delivery> <id_address_invoice xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_invoice> <id_cart xlink:href="http://XXXXXXXXXXXX.fr/api/carts/375"><![CDATA[375]]></id_cart> <id_currency xlink:href="http://XXXXXXXXXXXX.fr/api/currencies/1"><![CDATA[1]]></id_currency> <id_lang xlink:href="http://XXXXXXXXXXXX.fr/api/languages/1"><![CDATA[1]]></id_lang> <id_customer xlink:href="http://XXXXXXXXXXXX.fr/api/customers/1"><![CDATA[1]]></id_customer> <id_carrier xlink:href="http://XXXXXXXXXXXX.fr/api/carriers/1"><![CDATA[1]]></id_carrier> <current_state xlink:href="http://XXXXXXXXXXXX.fr/api/order_states/"></current_state> <module><![CDATA[triethic_lodgepayment]]></module> <invoice_number></invoice_number> <invoice_date></invoice_date> <delivery_number></delivery_number> <delivery_date></delivery_date> <valid></valid> <date_add></date_add> <date_upd></date_upd> <shipping_number notFilterable="true"></shipping_number> <id_shop_group><![CDATA[1]]></id_shop_group> <id_shop><![CDATA[1]]></id_shop> <secure_key></secure_key> <payment><![CDATA[CB - Paiement à la loge]]></payment> <recyclable></recyclable> <gift></gift> <gift_message></gift_message> <mobile_theme></mobile_theme> <total_discounts></total_discounts> <total_discounts_tax_incl></total_discounts_tax_incl> <total_discounts_tax_excl></total_discounts_tax_excl> <total_paid><![CDATA[3.5]]></total_paid> <total_paid_tax_incl></total_paid_tax_incl> <total_paid_tax_excl></total_paid_tax_excl> <total_paid_real><![CDATA[3.5]]></total_paid_real> <total_products><![CDATA[2.92]]></total_products> <total_products_wt><![CDATA[3.5]]></total_products_wt> <total_shipping></total_shipping> <total_shipping_tax_incl></total_shipping_tax_incl> <total_shipping_tax_excl></total_shipping_tax_excl> <carrier_tax_rate></carrier_tax_rate> <total_wrapping></total_wrapping> <total_wrapping_tax_incl></total_wrapping_tax_incl> <total_wrapping_tax_excl></total_wrapping_tax_excl> <round_mode></round_mode> <round_type></round_type> <conversion_rate><![CDATA[1]]></conversion_rate> <reference></reference> <associations> <order_rows nodeType="order_row" virtualEntity="true"> <order_row> <id><![CDATA[304]]></id> <product_id><![CDATA[330]]></product_id> <product_attribute_id><![CDATA[0]]></product_attribute_id> <product_quantity><![CDATA[1]]></product_quantity> <product_name><![CDATA[Repassage | Jogging]]></product_name> <product_reference><![CDATA[BSREP0289]]></product_reference> <product_ean13></product_ean13> <product_isbn></product_isbn> <product_upc></product_upc> <product_price><![CDATA[2.916667]]></product_price> <unit_price_tax_incl><![CDATA[3.500000]]></unit_price_tax_incl> <unit_price_tax_excl><![CDATA[2.916667]]></unit_price_tax_excl> </order_row> </order_rows> </associations> </order> </prestashop> And when you check the full order (through a call to http://XXXXXXXXXXXX.fr/api/orders/218) : <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <order> <id><![CDATA[218]]></id> <id_address_delivery xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_delivery> <id_address_invoice xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_invoice> <id_cart xlink:href="http://XXXXXXXXXXXX.fr/api/carts/375"><![CDATA[375]]></id_cart> <id_currency xlink:href="http://XXXXXXXXXXXX.fr/api/currencies/1"><![CDATA[1]]></id_currency> <id_lang xlink:href="http://XXXXXXXXXXXX.fr/api/languages/1"><![CDATA[1]]></id_lang> <id_customer xlink:href="http://XXXXXXXXXXXX.fr/api/customers/1"><![CDATA[1]]></id_customer> <id_carrier xlink:href="http://XXXXXXXXXXXX.fr/api/carriers/1"><![CDATA[1]]></id_carrier> <current_state xlink:href="http://XXXXXXXXXXXX.fr/api/order_states/11"><![CDATA[11]]></current_state> <module><![CDATA[triethic_lodgepayment]]></module> <invoice_number><![CDATA[203]]></invoice_number> <invoice_date><![CDATA[2018-06-11 14:40:37]]></invoice_date> <delivery_number><![CDATA[0]]></delivery_number> <delivery_date><![CDATA[0000-00-00 00:00:00]]></delivery_date> <valid><![CDATA[1]]></valid> <date_add><![CDATA[2018-06-11 14:40:36]]></date_add> <date_upd><![CDATA[2018-06-11 14:40:37]]></date_upd> <shipping_number notFilterable="true"></shipping_number> <id_shop_group><![CDATA[1]]></id_shop_group> <id_shop><![CDATA[1]]></id_shop> <secure_key><![CDATA[3ebfc2cd81af35637a9baffa10eaca19]]></secure_key> <payment><![CDATA[CB - Paiement à la loge]]></payment> <recyclable><![CDATA[0]]></recyclable> <gift><![CDATA[0]]></gift> <gift_message></gift_message> <mobile_theme><![CDATA[0]]></mobile_theme> <total_discounts><![CDATA[0.000000]]></total_discounts> <total_discounts_tax_incl><![CDATA[0.000000]]></total_discounts_tax_incl> <total_discounts_tax_excl><![CDATA[0.000000]]></total_discounts_tax_excl> <total_paid><![CDATA[3.500000]]></total_paid> <total_paid_tax_incl><![CDATA[3.500000]]></total_paid_tax_incl> <total_paid_tax_excl><![CDATA[2.920000]]></total_paid_tax_excl> <total_paid_real><![CDATA[3.500000]]></total_paid_real> <total_products><![CDATA[2.920000]]></total_products> <total_products_wt><![CDATA[3.500000]]></total_products_wt> <total_shipping><![CDATA[0.000000]]></total_shipping> <total_shipping_tax_incl><![CDATA[0.000000]]></total_shipping_tax_incl> <total_shipping_tax_excl><![CDATA[0.000000]]></total_shipping_tax_excl> <carrier_tax_rate><![CDATA[20.000]]></carrier_tax_rate> <total_wrapping><![CDATA[0.000000]]></total_wrapping> <total_wrapping_tax_incl><![CDATA[0.000000]]></total_wrapping_tax_incl> <total_wrapping_tax_excl><![CDATA[0.000000]]></total_wrapping_tax_excl> <round_mode><![CDATA[2]]></round_mode> <round_type><![CDATA[2]]></round_type> <conversion_rate><![CDATA[1.000000]]></conversion_rate> <reference><![CDATA[MBUHDONBV]]></reference> <associations> <order_rows nodeType="order_row" virtualEntity="true"> <order_row> <id><![CDATA[304]]></id> <product_id><![CDATA[330]]></product_id> <product_attribute_id><![CDATA[0]]></product_attribute_id> <product_quantity><![CDATA[1]]></product_quantity> <product_name><![CDATA[Repassage | Jogging]]></product_name> <product_reference><![CDATA[BSREP0289]]></product_reference> <product_ean13></product_ean13> <product_isbn></product_isbn> <product_upc></product_upc> <product_price><![CDATA[2.916667]]></product_price> <unit_price_tax_incl><![CDATA[3.500000]]></unit_price_tax_incl> <unit_price_tax_excl><![CDATA[2.916667]]></unit_price_tax_excl> </order_row> </order_rows> </associations> </order> </prestashop>
-
Force ID for Product on backend creation
Velocity posted a topic in Configuring and using PrestaShop
Hi! I have been looking at the code on Product.php, AdminProductsController.php but I can't find the way to override the saving function to manually assign an id_product on manually creating a product from the backend (without CSV importing it). Obviously id_product field on ps_product needs to be set autoincrement = off, but when I try to save the product, it saves with id_product = 0 (I already modified the adminproduct template to show the id_product on a exiting product {$product->id}). Anyone can point me in the right direction? I think it wont be that difficult but i can't find there exactly the product is written on the database when click on save. Thanks & Best Regards. -
Hello everyone, Don't why it is happening suddenly! It was working well but now from My Account or Authentication page "Create An Account" is not working. But Creating Account from Checkout Page fine. Note: When entering existing email on Create An Account field error working well. Don't why, while entering new email nothing happen. Please help with it. Thanks
- 1 reply
-
- authentication
- account
-
(and 1 more)
Tagged with:
-
Bonjour, Je suis sous la version Prestashop 1.6.1.0. Il y a encore 2 semaines le site ne présentait aucun problèmes, cependant récemment, j'ai eu de nombreux soucis. En effet, je souhaite réinstaller un module que se nomme E-transaction (par le Crédit agricole) ce n'est pas la version qui s'installe sur la boutique addons, mais sur le site du crédit agricole (mon commerce). https://www.ca-moncommerce.com/espace-client-mon-commerce/ Apres téléchargement, je l'ai correctement installé avec FileZilla. Jusque la pas de problème puisque qu'il s'affiche dans mes modules et services, mais lorsque je clique sur installer Prestashop me dit qu'il y a une "Erreur lors de la création des tables du module (consulter les fichiers de log du module pour plus d'informations)". J'ai énormément cherché pour trouver la solution à ce problème cependant rien ne change.. C'est pour cela que je m'en remets à vous. Je vous remercie pour vos futures réponses.
-
"re" Bonjour, Je cherche, un peu en vain, une méthode propre pour ajouter un onglet et son contenu à la page de création de produit. L’idéal serait de le faire via un module. Après 2 bonnes heures de recherche et de tests, j’ai un nouvel onglet dans cette page en utilisant le dossier override. Cependant, j’aimerais pouvoir le faire via module. Quelqu’un peut m’aider ? Aurait un exemple ? Ai-je raté loupé quelque chose dans mes recherches ? Merci d’avance
-
Hey Guys, once again, I come across a little problem, here's the deal: I want to display the features in the Information (1st) tab of the product creation/edition page (AdminProductController). By : - overriding AdminProductController.php - copying admin product templates in the (correct) override folder (tested) - adding some content from features.tpl into informations.tpl (basically, the table listing the features) - in AdminProductController, adding some code from initFormFeatures into the initFormInformation, inorder to populate the features table... ...I'm now able to display already set features. But if I modify one of them and save the product, the modification isn't taken into account. Does someone have some code sample/snippet, or any idea in order to make such a thing (moving an attribute of the Product object model from one tab of the creation/editing page to another) ? Have a nice day/evening/nite.
- 1 reply
-
- controller
- product
-
(and 2 more)
Tagged with:
-
Bonjour, Alors que j'ajoutais de nouveaux produits au catalogue de ma boutique Prestashop, je me suis rendue compte que la mise à jour des fiches ne se réalisait pas malgré l'apparition du petit encart vert "enregistré". Je crée ma fiche produit, je renseigne toutes les informations. Puis je clique sur "mettre en ligne" et enregistre une fois de plus pour être sûr. Le procédé que je suis à chaque fois. Cependant maintenant, après avoir rempli ma fiche et enregistré, le produit n'apparaît pas dans ma liste; comme si rien n'avait été fait. Je n'ai pourtant rien changé dans les paramètres et tout fonctionnait bien jusqu'à maintenant. Le bug est vraiment arrivé d'une minute à l'autre. Avez-vous des explications et solutions à mon problème ? En vous remerciant.
-
Bonjour à tous, J'ai un gros soucis sur mon BO . Je ne peux plus ajouter , modifier , dupliquer les produits. (Je suis sous presta 1.7.3.3 , j'ai tenté de mettre à jour mon prestashop avec 1-Click Upgrade mais cela bug et ne fonctionne pas, la mise à jour s'arrête en plein milieu, bref) Ce bug est survenu après m'être aventuré à vouloir ajouter un onglet de description sur la fiche produit (en vain), j'ai pourtant réinitialisé les fichiers telle qu'ils étaient avant ces modifs. Je ne sais pas si cela vient de cette manip du coup. Voici ce que le débug montre en cliquant sur "AJOUTER UN PRODUIT" Qu'en pensez vous ? Une piste ? merci infiniment pour votre aide
-
- impossible
- bug
-
(and 2 more)
Tagged with:
-
Bonjour, J'aimerai avoir votre avis sur mon site de vente de mercerie, Je met des nouvelles annonces tous les jours, mais je ne sais pas comment faire pour augmenter le positionnement de mon site avec le mot clé : mercerie Si quelqu'un souhaite faire un échange de lien je suis preneur. Je l'ai lancer lors de la fermeture du site www.alittlemercerie.com Mercerie Center : Vente de fournitures pour la réalisation de créations fait main. Retrouvez une large gamme de perles, fils, textiles et loisirs créatif. Mercerie / Boutique en ligne pour vos Bijoux - Perles, Apprêts - Finitions - Attaches Tétines,... Cordialement.
-
Bonjour J'utilise actuellement l'API webservice de prestashop, et je rencontre un problème lors de la création d'une commande : l'API ne respecte pas le status de commande indiqué lors de la création de ladite commane. Et je suis ainsi obligé de changer l'état plus tard. Le problème est que dans l'historique de la commande figure le mauvais état initial. Vous trouverez à la fin de ce post les message HTTP complets, mais pour l'explication je vous montre tout de suite quelques extraits: Quand j'envoie pour la création d'une commande <id_cart>375</id_cart> <id_currency>1</id_currency> <id_lang>1</id_lang> <id_customer>1</id_customer> <id_carrier>1</id_carrier> <current_state>5</current_state> I reçois: <ID><ID><![CDATA[218]]><![CDATA[21 </ID> <ID_ADDRESS_DELIVERY xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></ID_ADDRESS_DELIVERY> <ID_ADDRESS_INVOICE xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></ID_ADDRESS_INVOICE> <ID_CART xlink:href="http://XXXXXXXXXXXX.fr/api/carts/375"><![CDATA[375]]></ID_CART> <ID_CURRENCY xlink:href="http://XXXXXXXXXXXX.fr/api/currencies/1"><![CDATA[1]]></ID_CURRENCY> <ID_LANG xlink:href="http://XXXXXXXXXXXX.fr/api/languages/1"><![CDATA[1]]></ID_LANG> <ID_CUSTOMER xlink:href="http://XXXXXXXXXXXX.fr/api/customers/1"><![CDATA[1]]></ID_CUSTOMER> <ID_CARRIER xlink:href="http://XXXXXXXXXXXX.fr/api/carriers/1"><![CDATA[1]]></ID_CARRIER> <CURRENT_STATE xlink:href="http://XXXXXXXXXXXX.fr/api/order_states/"></CURRENT_STATE> Comme le montre ces deux extraits, je demande un état de commande à 5 mais l'API me retourne un état vide. Quand je récupère la commande complète (via un http://XXXXXXXXXXXX.fr/api/orders/218), j'obtiens : <ID><ID><![CDATA[218]]><![CDATA[218]]></ID></ID> <ID_ADDRESS_DELIVERY<ID_ADDRESS_DELIVERY xlink:hrefxlink:href="http://XXXXXX.fr/api/addresses/1"><![CDATA[1]]></ID_ADDRESS_DELIVERY> <ID_ADDRESS_INVOICE xlink:href="http://XXXXXX.fr/api/addresses/1"><![CDATA[1]]></ID_ADDRESS_INVOICE> <ID_CART xlink:href="http://XXXXXX.fr/api/carts/375"><![CDATA[375]]></ID_CART> <ID_CURRENCY xlink:href="http://XXXXXX.fr/api/currencies/1"><![CDATA[1]]></ID_CURRENCY> <ID_LANG xlink:href="http://XXXXXX.fr/api/languages/1"><![CDATA[1]]></ID_LANG> <ID_CUSTOMER xlink:href="http://XXXXXX.fr/api/customers/1"><![CDATA[1]]></ID_CUSTOMER> <ID_CARRIER xlink:href="http://XXXXXX.fr/api/carriers/1"><![CDATA[1]]></ID_CARRIER> <CURRENT_STATE xlink:href="http://XXXXXX.fr/api/order_states/11"><![CDATA[11]]></CURRENT_STATE> où l'on voit que l'état de commande est à 11. Mes problèmes sont : l'état 11 est un état « officiel » de prestashop, état qui marque la commande comme payée et génère une facture j'ai besoin d'utilisé un état ne marquant pas la commande comme payée par défaut je préfère ne pas bidouiller les états standards de prestashop je peux faire passer la commande à un autre état mais l'historique garde trace de la manipulation[1] Est-ce que quelqu'un a une idée sur la manière de forcer prestashop à utiliser un état particulier au moment de la création ? ou alors la possibilité de régler prestashop pour utiliser un autre état par défaut (autre que 11 et qui ne marquerait pas la commande comme payée ? [1] pour être plus précis j'aimerais avoir tout d'abord la commande à un état « devis » (qui correspond au fait que nous allons chercher le prix d'un prestation ; le terme est impropre mais c'est celui utilisé), puis changer le prix de l'article dans la commande, pour finir par la passer en paiement ; quand je fais cela le « premier paiement » est gardé en mémoire par prestashop P.S. : Message envoyé pour la création du panier: <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <cart> <id/> <id_address_delivery>1</id_address_delivery> <id_address_invoice>1</id_address_invoice> <id_currency>1</id_currency> <id_customer>1</id_customer> <id_guest/> <id_lang>1</id_lang> <id_shop_group>1</id_shop_group> <id_shop>1</id_shop> <id_carrier>1</id_carrier> <recyclable/> <gift/> <gift_message/> <mobile_theme/> <delivery_option/> <secure_key/> <allow_seperated_package/> <date_add/> <date_upd/> <associations> <cart_rows> <cart_row> <id_product>330</id_product> <id_product_attribute>0</id_product_attribute> <id_address_delivery>1</id_address_delivery> <quantity>1</quantity> </cart_row> </cart_rows> </associations> </cart> </prestashop> Réponse reçue : <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <cart> <id><![CDATA[375]]></id> <id_address_delivery xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_delivery> <id_address_invoice xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_invoice> <id_currency xlink:href="http://XXXXXXXXXXXX.fr/api/currencies/1"><![CDATA[1]]></id_currency> <id_customer xlink:href="http://XXXXXXXXXXXX.fr/api/customers/1"><![CDATA[1]]></id_customer> <id_guest></id_guest> <id_lang xlink:href="http://XXXXXXXXXXXX.fr/api/languages/1"><![CDATA[1]]></id_lang> <id_shop_group><![CDATA[1]]></id_shop_group> <id_shop><![CDATA[1]]></id_shop> <id_carrier><![CDATA[1]]></id_carrier> <recyclable></recyclable> <gift></gift> <gift_message></gift_message> <mobile_theme></mobile_theme> <delivery_option></delivery_option> <secure_key></secure_key> <allow_seperated_package></allow_seperated_package> <date_add><![CDATA[2018-06-11 14:39:08]]></date_add> <date_upd><![CDATA[2018-06-11 14:39:08]]></date_upd> <associations> <cart_rows nodeType="cart_row" virtualEntity="true"> <cart_row> <id_product xlink:href="http://XXXXXXXXXXXX.fr/api/products/330"><![CDATA[330]]></id_product> <id_product_attribute xlink:href="http://XXXXXXXXXXXX.fr/api/combinations/0"><![CDATA[0]]></id_product_attribute> <id_address_delivery xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_delivery> <quantity><![CDATA[1]]></quantity> </cart_row> </cart_rows> </associations> </cart> </prestashop> Message envoyé pour la création de la commande : <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <order> <id/> <id_address_delivery>1</id_address_delivery> <id_address_invoice>1</id_address_invoice> <id_cart>375</id_cart> <id_currency>1</id_currency> <id_lang>1</id_lang> <id_customer>1</id_customer> <id_carrier>1</id_carrier> <current_state>5</current_state> <module>XXXXX_lodgepayment</module> <invoice_number/> <invoice_date/> <delivery_number/> <delivery_date/> <valid/> <date_add/> <date_upd/> <shipping_number/> <id_shop_group>1</id_shop_group> <id_shop>1</id_shop> <secure_key/> <payment>CB - Paiement à la loge</payment> <recyclable/> <gift/> <gift_message/> <mobile_theme/> <total_discounts/> <total_discounts_tax_incl/> <total_discounts_tax_excl/> <total_paid>3.5</total_paid> <total_paid_tax_incl/> <total_paid_tax_excl/> <total_paid_real>3.5</total_paid_real> <total_products>2.92</total_products> <total_products_wt>3.5</total_products_wt> <total_shipping/> <total_shipping_tax_incl/> <total_shipping_tax_excl/> <carrier_tax_rate/> <total_wrapping/> <total_wrapping_tax_incl/> <total_wrapping_tax_excl/> <round_mode/> <round_type/> <conversion_rate>1</conversion_rate> <reference/> <associations> <order_rows> <order_row> <id/> <product_id>330</product_id> <product_attribute_id>0</product_attribute_id> <product_quantity>1</product_quantity> <product_name/> <product_reference/> <product_ean13/> <product_isbn/> <product_upc/> <product_price/> <unit_price_tax_incl/> <unit_price_tax_excl/> </order_row> </order_rows> </associations> </order> </prestashop> et la réponse du serveur : <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <order> <id><![CDATA[218]]></id> <id_address_delivery xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_delivery> <id_address_invoice xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_invoice> <id_cart xlink:href="http://XXXXXXXXXXXX.fr/api/carts/375"><![CDATA[375]]></id_cart> <id_currency xlink:href="http://XXXXXXXXXXXX.fr/api/currencies/1"><![CDATA[1]]></id_currency> <id_lang xlink:href="http://XXXXXXXXXXXX.fr/api/languages/1"><![CDATA[1]]></id_lang> <id_customer xlink:href="http://XXXXXXXXXXXX.fr/api/customers/1"><![CDATA[1]]></id_customer> <id_carrier xlink:href="http://XXXXXXXXXXXX.fr/api/carriers/1"><![CDATA[1]]></id_carrier> <current_state xlink:href="http://XXXXXXXXXXXX.fr/api/order_states/"></current_state> <module><![CDATA[triethic_lodgepayment]]></module> <invoice_number></invoice_number> <invoice_date></invoice_date> <delivery_number></delivery_number> <delivery_date></delivery_date> <valid></valid> <date_add></date_add> <date_upd></date_upd> <shipping_number notFilterable="true"></shipping_number> <id_shop_group><![CDATA[1]]></id_shop_group> <id_shop><![CDATA[1]]></id_shop> <secure_key></secure_key> <payment><![CDATA[CB - Paiement à la loge]]></payment> <recyclable></recyclable> <gift></gift> <gift_message></gift_message> <mobile_theme></mobile_theme> <total_discounts></total_discounts> <total_discounts_tax_incl></total_discounts_tax_incl> <total_discounts_tax_excl></total_discounts_tax_excl> <total_paid><![CDATA[3.5]]></total_paid> <total_paid_tax_incl></total_paid_tax_incl> <total_paid_tax_excl></total_paid_tax_excl> <total_paid_real><![CDATA[3.5]]></total_paid_real> <total_products><![CDATA[2.92]]></total_products> <total_products_wt><![CDATA[3.5]]></total_products_wt> <total_shipping></total_shipping> <total_shipping_tax_incl></total_shipping_tax_incl> <total_shipping_tax_excl></total_shipping_tax_excl> <carrier_tax_rate></carrier_tax_rate> <total_wrapping></total_wrapping> <total_wrapping_tax_incl></total_wrapping_tax_incl> <total_wrapping_tax_excl></total_wrapping_tax_excl> <round_mode></round_mode> <round_type></round_type> <conversion_rate><![CDATA[1]]></conversion_rate> <reference></reference> <associations> <order_rows nodeType="order_row" virtualEntity="true"> <order_row> <id><![CDATA[304]]></id> <product_id><![CDATA[330]]></product_id> <product_attribute_id><![CDATA[0]]></product_attribute_id> <product_quantity><![CDATA[1]]></product_quantity> <product_name><![CDATA[Repassage | Jogging]]></product_name> <product_reference><![CDATA[BSREP0289]]></product_reference> <product_ean13></product_ean13> <product_isbn></product_isbn> <product_upc></product_upc> <product_price><![CDATA[2.916667]]></product_price> <unit_price_tax_incl><![CDATA[3.500000]]></unit_price_tax_incl> <unit_price_tax_excl><![CDATA[2.916667]]></unit_price_tax_excl> </order_row> </order_rows> </associations> </order> </prestashop> Et voici ce que l'on a lorsque l'on vérifie la commande ainsi créée (via un appel à http://XXXXXXXXXXXX.fr/api/orders/218) : <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <order> <id><![CDATA[218]]></id> <id_address_delivery xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_delivery> <id_address_invoice xlink:href="http://XXXXXXXXXXXX.fr/api/addresses/1"><![CDATA[1]]></id_address_invoice> <id_cart xlink:href="http://XXXXXXXXXXXX.fr/api/carts/375"><![CDATA[375]]></id_cart> <id_currency xlink:href="http://XXXXXXXXXXXX.fr/api/currencies/1"><![CDATA[1]]></id_currency> <id_lang xlink:href="http://XXXXXXXXXXXX.fr/api/languages/1"><![CDATA[1]]></id_lang> <id_customer xlink:href="http://XXXXXXXXXXXX.fr/api/customers/1"><![CDATA[1]]></id_customer> <id_carrier xlink:href="http://XXXXXXXXXXXX.fr/api/carriers/1"><![CDATA[1]]></id_carrier> <current_state xlink:href="http://XXXXXXXXXXXX.fr/api/order_states/11"><![CDATA[11]]></current_state> <module><![CDATA[triethic_lodgepayment]]></module> <invoice_number><![CDATA[203]]></invoice_number> <invoice_date><![CDATA[2018-06-11 14:40:37]]></invoice_date> <delivery_number><![CDATA[0]]></delivery_number> <delivery_date><![CDATA[0000-00-00 00:00:00]]></delivery_date> <valid><![CDATA[1]]></valid> <date_add><![CDATA[2018-06-11 14:40:36]]></date_add> <date_upd><![CDATA[2018-06-11 14:40:37]]></date_upd> <shipping_number notFilterable="true"></shipping_number> <id_shop_group><![CDATA[1]]></id_shop_group> <id_shop><![CDATA[1]]></id_shop> <secure_key><![CDATA[3ebfc2cd81af35637a9baffa10eaca19]]></secure_key> <payment><![CDATA[CB - Paiement à la loge]]></payment> <recyclable><![CDATA[0]]></recyclable> <gift><![CDATA[0]]></gift> <gift_message></gift_message> <mobile_theme><![CDATA[0]]></mobile_theme> <total_discounts><![CDATA[0.000000]]></total_discounts> <total_discounts_tax_incl><![CDATA[0.000000]]></total_discounts_tax_incl> <total_discounts_tax_excl><![CDATA[0.000000]]></total_discounts_tax_excl> <total_paid><![CDATA[3.500000]]></total_paid> <total_paid_tax_incl><![CDATA[3.500000]]></total_paid_tax_incl> <total_paid_tax_excl><![CDATA[2.920000]]></total_paid_tax_excl> <total_paid_real><![CDATA[3.500000]]></total_paid_real> <total_products><![CDATA[2.920000]]></total_products> <total_products_wt><![CDATA[3.500000]]></total_products_wt> <total_shipping><![CDATA[0.000000]]></total_shipping> <total_shipping_tax_incl><![CDATA[0.000000]]></total_shipping_tax_incl> <total_shipping_tax_excl><![CDATA[0.000000]]></total_shipping_tax_excl> <carrier_tax_rate><![CDATA[20.000]]></carrier_tax_rate> <total_wrapping><![CDATA[0.000000]]></total_wrapping> <total_wrapping_tax_incl><![CDATA[0.000000]]></total_wrapping_tax_incl> <total_wrapping_tax_excl><![CDATA[0.000000]]></total_wrapping_tax_excl> <round_mode><![CDATA[2]]></round_mode> <round_type><![CDATA[2]]></round_type> <conversion_rate><![CDATA[1.000000]]></conversion_rate> <reference><![CDATA[MBUHDONBV]]></reference> <associations> <order_rows nodeType="order_row" virtualEntity="true"> <order_row> <id><![CDATA[304]]></id> <product_id><![CDATA[330]]></product_id> <product_attribute_id><![CDATA[0]]></product_attribute_id> <product_quantity><![CDATA[1]]></product_quantity> <product_name><![CDATA[Repassage | Jogging]]></product_name> <product_reference><![CDATA[BSREP0289]]></product_reference> <product_ean13></product_ean13> <product_isbn></product_isbn> <product_upc></product_upc> <product_price><![CDATA[2.916667]]></product_price> <unit_price_tax_incl><![CDATA[3.500000]]></unit_price_tax_incl> <unit_price_tax_excl><![CDATA[2.916667]]></unit_price_tax_excl> </order_row> </order_rows> </associations> </order> </prestashop>
- 1 reply
-
- webservice
- 1.7
- (and 4 more)
-
Bonjour, J'ai vu des sujets similaires sur le forum, mais soit le problème ne semble pas être le même, soit mes compétences sont trop limitées. J'espère ne pas gêner. Quand le formulaire de création de compte est rempli (adresse : http://editions.solstices-project.com/authentification?back=my-account), la page qui s'affiche à la validation est blanche. Rien ne se passe, et je ne sais absolument pas pourquoi... Cela fonctionnait jadis très bien. Etrange...! Si vous parvenez à m'aider, je vous en serais très reconnaissant.
-
Résolu, merci
- 2 replies
-
- e-commerce
- creation
-
(and 3 more)
Tagged with:
-
Bonjour à tous, Depuis quelques temps j'ai un problème lors de la création d'un produit, et plus particulièrement lors de l'enregistrement. Je rempli toutes les caractéristiques du produit et au moment d'enregistrer le site mouline et m'affiche "erreur 504 gateway time-out" Au début où je rencontrais ce problème, je faisais un retour et ma fiche avait été enregistrée, mais depuis quelques jours l'enregistrement n'est pas complet. Le produit n'est pas assigné à sa catégorie et parfois le prix ne s'enregistre pas. Donc j'aimerais comprendre pourquoi l'enregistrement demande autant de temps (même sans ajouter d'image) et pourquoi ce bug au niveau des catégories. Pour plus d'infos: configuration: 1.6.1.15 thème: water sport 1.0 hebergment: ovh mutualisé Merci
-
bonjours j'ai besoin d'aide, car mon informaticien m'a planter avant même de commencer. Pour faire j'ai pris un accès sur 1and1.com et j'ai donc installer Prestashop dessus avec APP center , jusque là pas de soucis. j'ai pris le thème de base (histoire de sous) que j'ai commencer à modifier sauf le slide qui défile (impossible de le trouver), les ennuis ont donc commencer. Ensuite j'ai une base de donnée de mon fournisseur, que j'ai réussi tant bien que mal à mettre sur le serveur FTP, et là les ennuis continue, impossible pour moi de l'installer sur mon back-office. du coup je suis coincé et je ne sais comment faire, un peu d'aide ne serait pas de refus merci d'avance
-
Salut, Pour simplifier la création de produit, j'aimerais: 1) masquer certains onglets "inutiles" pour mon client (documents joints par exemple): OK, commentés dans AdminProductController (que j'ai surchargé, of course, on n'est pas des sagouins) 2) fusionner plusieurs tabs en 1: OK pour l'affichage, en fusionnant les templates des onglets et en fusionnant les fonctions initFormXX() dans AdminProductController pour bien les alimenter (une bonne alimentation c'est important). EDIT OK pour la sauvegarde: Pour la pauvre âme devant passer par la, la clé est bien dans processUpdate() et processAdd() ainsi que dans copyFromPost(), une super fonction permettant un échauffement du serveur PHP tout en douceur avant de procéder aux modifs en base. Des fois, un esprit mal tourné pourrait penser que la grandeur du modèle MVC souvent mis en avant est quelque peu occultée par l'énorme surcouche de bidouilles imposées d'office à l'utilisateur lambda de PS, sous prétexte de répondre au besoin spécifique du vendeur ougandais se pliant à des règles de taxes basées sur l’alignement des planètes et les résultats de ligue des champions de la semaine précédente... mais bon. 3) Remplacer les 2 champs (liste + champ texte) associés à chaque caractéristique du produit par un champ unique doté de l'autocomplete. KO (EDIT: mais ca avance) car je ne sais pas par ou commencer, modifier la classe Feature ou rajouter un autocomplete maison qui appelle une classe PHP maison aussi tapant direct en base ? => Pour l'instant j'ai une solution provisoire, mais qui met à mal le modèle MVC puisque le contrôleur tape en base pour faire une association value <=> ID. Je dois déporter tout ça dans un override de la classe FeatureValue mais la je bosse sur l'autocomplete. Au passage: - La version 1.6.1.2 utilise le plugin jquery autocomplete au lieu de la librairie jQuery UI autocomplete. Ca n'aide pas à la recherche de documentation. Ca apporte néanmoins un coté vintage qui peut plaire à certains. - J'aimerais bien rencontrer le gars qui a déboulé un matin avec le concept de feature value "custom" Si je ne me trompe, coté classe Feature, on créé la feature value si elle n'existe pas de toute façon, donc un simple champ texte avec l'autocomplete prenant comme source les features values deja existantes, c'est à mon sens bien plus pratique et moins "bidouille style" que ces 2 champs actuels. Pour les 2 points KO, auriez vous des pistes ? Je ne comprends pas le cheminement effectué pour mettre à jour l'objet produit à partir des valeurs contenues dans les tabs... Pour info, j'essaye actuellement avec un cas simple: déplacer le poids de l'article (initialement dans l'onglet Livraison) vers l'onglet Informations. Impossible de conserver sa valeur. Voila, bonne journée à tous. EDIT: Pour la sauvegarde, c'est de plus en plus flou. J'utilise firePHP pour logguer un peu ce qui se passe, du genre ces 2 lignes au début des fonctions susceptibles de m'interesser: $f = FirePHP::getInstance(true); $f->fb(__FUNCTION__ . ' called', FirePHP::INFO); initProcess est bien appelé pour chaque onglet par exemple, mais processAdd() et processUpdate() ne semblent pas appelés alors que le nom de l'article est bien mis à jour après un clic sur "enregistrer". Je vous laisse, je pars égorger un poulet sur une étoile satanique vaudou histoire d'y voir plus clair.
-
Hey guys, I'm currently customizing the product creation page in the Back office (AdminProductController). For the "features" tab, I'd like to replace the current fields (drop down + textbox for new value) by a single one, having an autocomplete... feature Any idea on how to do such a thing? I'm aware of this post, "tags autocomplete": https://www.prestashop.com/forums/topic/294242-tags-autocomplete-on-prestashop-product-edit-page/?hl=%2Bautocomplete&do=findComment&comment=1916242 but I can't get it to work. have a nice day
-
- autocomplete
- features
-
(and 3 more)
Tagged with:
-
Hi all. I'm new to Prestashop development. The first thing I've tried is to create a new theme copying the default theme directory in Prestashop 1.6. The problem I have is that, once created, the theme is not detected by Prestashop: is like the directory wasn't there. If I create a new theme from the admin panel and replace the directory content with the same files, it works ok. What should I do to make Prestashop detect my theme? I haven't found any information about it. Thanks a lot.
-
Hi guys, I need to develop a BO module in order to create new Products from a single page, without tabs. Since most of the infos asked by PS are irrelevant to my customers needs. I could retrieve them from a custom 'new_products_default_values' datatable for example. Anyway, from your point of view, which solution sounds better: 1) Creating a new admin page from scratch and create the new Product in PHP. This sounds simple but I can't find ant documentation, or example, about the product creation API. 2) Create a new admin page from scratch and create a new Product via a PS webservice. Once again, no useful documentation about creating new products using WS... 3) Duplicate then customize the default product creation page, removing tabs and replacing 'useless' (to my customer) fields by hidden ones, automatically filled-in when the page is displayed. If you encountered the same kind of problem, would you be kind enough to share some of your experience? Do you guys see any other way to do such a task ? Thank you guys, and have a nice day. Note 1: As a side note, I can't find anything about Product creation in the official documentation, nor ine the 'Prestashop Module Development' book by Fabien Serny. Note 2: This looks like some kind of taboo subject => https://www.prestashop.com/forums/topic/277608-one-page-product-creation/ Note 3: If I create the Product via the PHP Porduct class, I already know I'll have to put some AJAX button somewhere across the form in order to create the Product object and retrieve its ID before doing such tasks like adding images...
-
- back-office
- product
-
(and 1 more)
Tagged with:
-
Bonjour, Je dois développer dans le B.O un module de création de produit en une seule page*. *: avec surement un bouton en milieu de formulaire pour créer l'objet Product et pouvoir par la suite y rattacher les divers éléments une fois l'ID récupéré. La plupart des infos proposées par défaut à la création ne sont pas utiles à mon client. Je pourrais donc les puiser dans une table de constantes créée pour l'occasion par exemple. Avant de ma lancer dans de gros dev, j'aurais aimé avoir votre avis sur la manière la moins compliquée de procéder. Je vois actuellement comme solutions Solution 1: Je crée une nouvelle page d'admin à partir de zéro en me tapant la création de produit en php à la main. Mais je ne trouve pas d'exemple 'simple' de création de produit. En particulier, la gestion des images (génération des thumbnails par PS) me fait peur. Et je ne trouve aucune doc. sur l'API de création de produit (autre que 'il faut regarder dans le code'). Solution 2: Idem solution 1 mais en utilisant les WebServices proposés par PS. Cela simplifierait peut être le code, mais encore une fois, je n'ai trouvé aucune documentation utile à propos des WS ni d'exemple concret. Solution 3: Customiser (idéalement dupliquer) la page de création actuelle. Le top serait de faire sauter les tabs et de remplacer les champs inutiles par des champs cachés, remplis automatiquement par des valeurs par défaut à l'ouverture de la page. Auriez vous déjà rencontré cette problématique ? Quelques pistes ? Une autre solution ? Quelle solution vous semble la moins délirante ? PS: Je n'ai rien trouvé dans le livre 'Prestashop Module Development' de Fabien Serny non plus... PSS: Le sujet semble tabou car la personne qui a demandé en 2013 n'a jamais eu de réponse (https://www.prestashop.com/forums/topic/277608-one-page-product-creation/) Voila, comme d'hab' merci d'avance.
-
Hello to the forum people. I have made some coding experiment with Webservices of Prestashop. I have incurred in two bugs of the Product Webservices. If PHP + WebService CREATE a new Product using the postXML/add , in the MySQL table ps_category_product two associations are created when only one is desired. id_category id product position 0 12 0 9 12 1 The association desired is 9 12 0. It is created also a spurious association with id_category 0 that has no meaning (home is 2). This seems only a nuissance but I don't know if in the future will became an issue. If PHP + WebService UPDATE a product using the putXML/edit, using "$resources->associations->categories->addChild('category')->addChild('id', $n_id_category);" I can add the same product to other category. ps_category_product table id_category id_product position 9 12 0 7 12 1 The product 12 is visible in two different category (7 and 9). The BUG is the following. If I try to add an already existing category to the product, all the category are deleted! The product is no longer owned by any category. The previous two row are deleted from ps_category_product table. This happens even if the product is created from backoffice and not by webservice. $n_id_category_default seems only used in display the main category of the product in the backoffice; it has no influence on frontoffice. Thanks in advance of the aid and the time. Follow the used code (are two different PHP files). Creation of product Adapted Code from a category example http://www.prestasho...via-webservice/ <?php define('DEBUG', true); define('PS_SHOP_PATH', 'http://localhost/prestashop1520'); // Root path of your PrestaShop store define('PS_WS_AUTH_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxx'); // Auth key (Get it in your Back Office) require_once ('./PSWebServiceLibrary.php'); $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); function PS_new_product($n_id_category_default, $n_id_category, $n_price, $n_active,$n_avail4order,$n_show_price, $n_id_stock_availables ,$n_id_id_product_attribute, $n_l_id, $n_name, $n_desc, $n_desc_short, $n_link_rewrite, $n_meta_title, $n_meta_description, $n_meta_keywords,$n_available_now,$n_available_later) { global $webService; $xml = $webService -> get(array('url' => PS_SHOP_PATH . '/api/products?schema=blank')); $resources = $xml -> children() -> children(); unset($resources -> id); unset($resources -> position); unset($resources -> id_shop_default); unset($resources -> date_add); unset($resources -> date_upd); unset($resources->associations->combinations); unset($resources->associations->product_options_values); unset($resources->associations->product_features); unset($resources->associations->stock_availables->stock_available->id_product_attribute); //unset($resources->associations->categories->category->id); //unset($resources-> id_category_default); //$resources->position_in_category = '0'; //unset($resources->position_in_category); //$resources -> position = '0'; //$resources -> id; $resources-> id_manufacturer = '1'; $resources-> id_supplier = '1'; $resources-> id_category_default = $n_id_category_default; $resources-> new = '0'; ; //condition, new is also a php keyword!! $resources-> cache_default_attribute; $resources-> id_default_image; $resources-> id_default_combination = '0'; $resources-> id_tax_rules_group ='1'; //$resources-> id_shop_default; $resources-> reference; $resources-> supplier_reference; $resources-> location; $resources-> width; $resources-> height; $resources-> depth; $resources-> weight; $resources-> quantity_discount; $resources-> ean13; $resources-> upc; $resources-> cache_is_pack; $resources-> cache_has_attachments; $resources-> is_virtual; $resources-> on_sale; $resources-> online_only; $resources-> ecotax; $resources-> minimal_quantity = 1; $resources-> price = $n_price; $resources-> wholesale_price; $resources-> unity; $resources-> unit_price_ratio; $resources-> additional_shipping_cost; $resources-> customizable; $resources-> text_fields; $resources-> uploadable_files; $resources-> active = $n_active; $resources-> available_for_order = $n_avail4order; $resources-> available_date; $resources-> condition; $resources-> show_price = $n_show_price; $resources-> indexed = '1'; $resources-> visibility = 'both'; $resources-> advanced_stock_management='0'; $resources-> date_add; $resources-> date_upd; $resources->associations->categories->addChild('category')->addChild('id', $n_id_category); $node = dom_import_simplexml($resources -> name -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_name)); $resources -> name -> language[0][0] = $n_name; $resources -> name -> language[0][0]['id'] = $n_l_id; $resources -> name -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> description -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_desc)); $resources -> description -> language[0][0] = $n_desc; $resources -> description -> language[0][0]['id'] = $n_l_id; $resources -> description -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> description_short -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_desc_short)); $resources -> description_short -> language[0][0] = $n_desc_short; $resources -> description_short -> language[0][0]['id'] = $n_l_id; $resources -> description_short -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> link_rewrite -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_link_rewrite)); $resources -> link_rewrite -> language[0][0] = $n_link_rewrite; $resources -> link_rewrite -> language[0][0]['id'] = $n_l_id; $resources -> link_rewrite -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> meta_title -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_meta_title)); $resources -> meta_title -> language[0][0] = $n_meta_title; $resources -> meta_title -> language[0][0]['id'] = $n_l_id; $resources -> meta_title -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> meta_description -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_meta_description)); $resources -> meta_description -> language[0][0] = $n_meta_description; $resources -> meta_description -> language[0][0]['id'] = $n_l_id; $resources -> meta_description -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> meta_keywords -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_meta_keywords)); $resources -> meta_keywords -> language[0][0] = $n_meta_keywords; $resources -> meta_keywords -> language[0][0]['id'] = $n_l_id; $resources -> meta_keywords -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> available_now -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_available_now)); $resources -> available_now -> language[0][0] = $n_available_now; $resources -> available_now -> language[0][0]['id'] = $n_l_id; $resources -> available_now -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> available_later -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_available_later)); $resources -> available_later -> language[0][0] = $n_available_later; $resources -> available_later -> language[0][0]['id'] = $n_l_id; $resources -> available_later -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; try { $opt = array('resource' => 'products'); $opt['postXml'] = $xml -> asXML(); $xml = $webService -> add($opt); } catch (PrestaShopWebserviceException $ex) { echo '<b>Error : '.$ex->getMessage().'</b>'; // my log function } } // simple use $n_name = 'New product name3'; $n_desc = 'New product description LONG'; $n_desc_short = 'New product description SHORT'; $n_link_rewrite = 'someone_rewrite'; $n_meta_title = 'meta-title'; $n_meta_description = 'meta desc'; $n_meta_keywords = 'some,one,keywords'; $n_available_now = 'Available for order'; $n_available_later = 'Available from gg/mm/yy'; $n_id_category_default = '9'; $n_id_category = '9'; $n_price = '144.65'; $n_active = '1'; $n_avail4order = '1'; $n_show_price ='1'; $n_l_id = '1'; $n_id_stock_availables = '22'; $n_id_id_product_attribute = '0'; // run PS_new_product($n_id_category_default, $n_id_category, $n_price, $n_active,$n_avail4order,$n_show_price, $n_id_stock_availables ,$n_id_id_product_attribute, $n_l_id, $n_name, $n_desc, $n_desc_short, $n_link_rewrite, $n_meta_title, $n_meta_description, $n_meta_keywords,$n_available_now,$n_available_later); ?> UPDATE OF PRODUCT <?php define('DEBUG', true); define('PS_SHOP_PATH', 'http://localhost/prestashop1520'); // Root path of your PrestaShop store define('PS_WS_AUTH_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxxx'); // Auth key (Get it in your Back Office) require_once ('./PSWebServiceLibrary.php'); $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); function PS_update_product($n_id_category_default, $n_id_category, $n_price, $n_active,$n_avail4order,$n_show_price, $n_id_stock_availables ,$n_id_id_product_attribute, $n_l_id, $n_name, $n_desc, $n_desc_short, $n_link_rewrite, $n_meta_title, $n_meta_description, $n_meta_keywords,$n_available_now,$n_available_later) { global $webService; try { $opt2 = array('resource' => 'products', 'id'=>'12'); $xml2 = $webService->get($opt2); $resources = $xml2->children()->children(); echo '<br />'; echo 'opt2'.'<br />'; var_dump ($opt2); echo '<br />'; echo '<br />'; echo '<br />'; echo 'xml2'.'<br />'; var_dump ($xml2); echo '<br />'; echo '<br />'; } catch (PrestaShopWebserviceException $e) { // Here we are dealing with errors echo '<b>Error : '.$e->getMessage().'</b>'; } /* unset($resources->position_in_category); unset($resources->manufacturer_name); unset($resources->quantity); //name and link_rewrite must be filled */ unset($resources->position_in_category); unset($resources->manufacturer_name); unset($resources->quantity); //unset($resources -> id); //unset($resources -> position); //unset($resources -> id_shop_default); //unset($resources -> date_add); //unset($resources -> date_upd); //unset($resources->associations->combinations); //unset($resources->associations->product_options_values); //unset($resources->associations->product_features); //unset($resources->associations->stock_availables->stock_available->id_product_attribute); //unset($resources->associations->categories->category->id); //unset($resources-> id_category_default); //$resources->position_in_category = '0'; //unset($resources->position_in_category); //$resources -> position = '0'; //$resources -> id; $resources-> id_manufacturer = '2'; $resources-> id_supplier = '2'; $resources-> id_category_default = $n_id_category_default; $resources-> new = '0'; //condition, new is also a php keyword!! $resources-> cache_default_attribute; $resources-> id_default_image; $resources-> id_default_combination = '0'; $resources-> id_tax_rules_group ='0'; $resources-> id_shop_default; $resources-> reference; $resources-> supplier_reference; $resources-> location; $resources-> width; $resources-> height; $resources-> depth; $resources-> weight; $resources-> quantity_discount; $resources-> ean13; $resources-> upc; $resources-> cache_is_pack; $resources-> cache_has_attachments; $resources-> is_virtual; $resources-> on_sale; $resources-> online_only; $resources-> ecotax; $resources-> minimal_quantity = 1; $resources-> price = $n_price; $resources-> wholesale_price; $resources-> unity; $resources-> unit_price_ratio; $resources-> additional_shipping_cost; $resources-> customizable; $resources-> text_fields; $resources-> uploadable_files; $resources-> active = $n_active; $resources-> available_for_order = $n_avail4order; $resources-> available_date; $resources-> condition; $resources-> show_price = $n_show_price; $resources-> indexed = '1'; $resources-> visibility = 'both'; $resources-> advanced_stock_management='0'; $resources-> date_add; $resources-> date_upd; //$node = dom_import_simplexml($resources -> name -> language[0][0]); //$no = $node -> ownerDocument; //$node -> appendChild($no -> createCDATASection($n_name)); $resources -> name -> language[0][0] = $n_name; //$resources -> name -> language[1][0] = $n_name.'L2'; //$resources -> name -> language[2][0] = $n_name.'L3'; //$resources -> name -> language[0][0]['id'] = $n_l_id; //$resources -> name -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; //$node = dom_import_simplexml($resources -> description -> language[0][0]); //$no = $node -> ownerDocument; //$node -> appendChild($no -> createCDATASection($n_desc)); $resources -> description -> language[0][0] = $n_desc; //$resources -> description -> language[0][0]['id'] = $n_l_id; //$resources -> description -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; //$node = dom_import_simplexml($resources -> description_short -> language[0][0]); //$no = $node -> ownerDocument; //$node -> appendChild($no -> createCDATASection($n_desc_short)); $resources -> description_short -> language[0][0] = $n_desc_short; //$resources -> description_short -> language[0][0]['id'] = $n_l_id; //$resources -> description_short -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; //$node = dom_import_simplexml($resources -> link_rewrite -> language[0][0]); //$no = $node -> ownerDocument; //$node -> appendChild($no -> createCDATASection($n_link_rewrite)); $resources -> link_rewrite -> language[0][0] = $n_link_rewrite; //$resources -> link_rewrite -> language[1][0] = $n_link_rewrite.'L2'; //$resources -> link_rewrite -> language[2][0] = $n_link_rewrite.'L3'; //$resources -> link_rewrite -> language[0][0]['id'] = $n_l_id; //$resources -> link_rewrite -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; //$node = dom_import_simplexml($resources -> meta_title -> language[0][0]); //$no = $node -> ownerDocument; //$node -> appendChild($no -> createCDATASection($n_meta_title)); $resources -> meta_title -> language[0][0] = $n_meta_title; //$resources -> meta_title -> language[0][0]['id'] = $n_l_id; //$resources -> meta_title -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; //$node = dom_import_simplexml($resources -> meta_description -> language[0][0]); //$no = $node -> ownerDocument; //$node -> appendChild($no -> createCDATASection($n_meta_description)); $resources -> meta_description -> language[0][0] = $n_meta_description; //$resources -> meta_description -> language[0][0]['id'] = $n_l_id; //$resources -> meta_description -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; //$node = dom_import_simplexml($resources -> meta_keywords -> language[0][0]); //$no = $node -> ownerDocument; //$node -> appendChild($no -> createCDATASection($n_meta_keywords)); $resources -> meta_keywords -> language[0][0] = $n_meta_keywords; //$resources -> meta_keywords -> language[0][0]['id'] = $n_l_id; //$resources -> meta_keywords -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; //$node = dom_import_simplexml($resources -> available_now -> language[0][0]); //$no = $node -> ownerDocument; //$node -> appendChild($no -> createCDATASection($n_available_now)); $resources -> available_now -> language[0][0] = $n_available_now; //$resources -> available_now -> language[0][0]['id'] = $n_l_id; //$resources -> available_now -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; //$node = dom_import_simplexml($resources -> available_later -> language[0][0]); //$no = $node -> ownerDocument; //$node -> appendChild($no -> createCDATASection($n_available_later)); $resources -> available_later -> language[0][0] = $n_available_later; //$resources -> available_later -> language[0][0]['id'] = $n_l_id; //$resources -> available_later -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; try { $opt2 = array('resource' => 'products', 'id'=>'12'); echo '<br />'; echo 'opt2A'.'<br />'; var_dump ($opt2); echo '<br />'; echo '<br />'; $opt2['putXml'] = ($xml2->saveXML()); echo '<br />'; echo 'opt2B'.'<br />'; var_dump ($opt2); echo '<br />'; echo 'xml2'.'<br />'; var_dump ($xml2); echo '<br />'; echo '<br />'; echo 'xml2asxml'.'<br />'; var_dump ($xml2->asXML()); echo '<br />'; echo '<br />'; $xml3 = $webService->edit($opt2); //($opt); echo '<br />'; echo '<br />'; echo 'xml4'.'<br />'; var_dump ($xml3); echo '<br />'; echo '<br />'; // if WebService don't throw an exception the action worked well and we don't show the following message echo "Successfully updated."; } catch (PrestaShopWebserviceException $ex) { // Here we are dealing with errors echo '<b>Error : '.$ex->getMessage().'</b>'; } // simple use $n_name = 'New product 5'; $n_desc = 'New product description LONGrewr2'; $n_desc_short = 'New product description SHORTrewr2'; $n_link_rewrite = 'someone_rewriterewr2'; $n_meta_title = 'meta-titlerewr2'; $n_meta_description = 'meta descrewr2'; $n_meta_keywords = 'some,one,keywords,rewr2'; $n_available_now = 'Available for orderrewr2'; $n_available_later = 'Available from gg/mm/yyrewr2'; $n_id_category_default = '9'; $n_id_category = '7'; $n_price = '250.65'; $n_active = '1'; $n_avail4order = '1'; $n_show_price ='1'; $n_l_id = '1'; $n_id_stock_availables = '22'; $n_id_id_product_attribute = '0'; // run PS_update_product($n_id_category_default, $n_id_category, $n_price, $n_active,$n_avail4order,$n_show_price, $n_id_stock_availables ,$n_id_id_product_attribute, $n_l_id, $n_name, $n_desc, $n_desc_short, $n_link_rewrite, $n_meta_title, $n_meta_description, $n_meta_keywords,$n_available_now,$n_available_later); ?>
- 9 replies
-
- Webservices
- bug 1.5 prestashop
-
(and 6 more)
Tagged with:
-
Bonjour, Je rencontre de la difficulté à afficher un module sur un nouveau hook. Le hook à bien été créé dans ma base mysql et est bien visible en backoffice. J'ai le code suivant dans l'overide : CategoryController.php class CategoryController extends CategoryControllerCore { /** * @see CategoryControllerCore::initContent() */ public function initContent() { parent::initContent(); $this->context->smarty->assign( 'HOOK_SLIDER_TOP', Hook::exec('displaySliderTop') ); } } Dans mon fichier Index.tpl avant TAB CONTENT j'ai : <div class="test"> {if isset($HOOK_SLIDER_TOP)}{$HOOK_SLIDER_TOP}{/if} </div> {if isset($HOOK_HOME_TAB_CONTENT) && $HOOK_HOME_TAB_CONTENT|trim} .... Dans mon fichier.php du module slick j'ai : public function install() { return (parent::install() && $this->registerHook('DisplaySliderTop') && $this->registerHook('home')); } public function uninstall() { return (parent::uninstall() && $this->unregisterHook('DisplaySliderTop') && $this->registerHook('home')); } public function hookDisplayHeader($params) { $this->context->controller->addCss($this->_path . 'slick.css', 'all'); $this->context->controller->addCss($this->_path . 'slick-theme.css', 'all'); } function hookDisplaySliderTop($params) { global $smarty; return $this->display(__FILE__, 'slickslider.tpl'); } Dans le Backoffice, j'ai bien bien la position displaySliderTop avec mon module Slick accroché. Mais je ne vois rien en Front ? Je ne vois pas ou est l'erreur... Merci Claire
-
Hello, I tried to add a new field to my product creation and the result is that I can´t save the product and have the next issues: Este campo link_rewrite se requiere por lo menos en Español (Spanish). I make the next changes: 1. Add create new field in ps_product table. 2. Add create new field in ps_product_shop table. 3. Modify core files in classes/product.php /** @var enum Product condition (brand, official store, store, professional seller, private seller) */ public $seller_type; 'seller_type' => array('type' => self::TYPE_STRING, 'shop' => true, 'validate' => 'isGenericName', 'values' => array('brand', 'official store', 'store', 'professional seller', 'private seller' ), 'default' => 'brand'), 4. Modify product edit .tpl file located in this path: ADMIN_DIR/themes/default/template/controllers/products/informations.tpl <div class="form-group"> <label class="control-label col-lg-3" for="seller_type"> {include file="controllers/products/multishop/checkbox.tpl" field="seller_type" type="default"} {l s='Seller type'} </label> <div class="col-lg-3"> <select name="seller_type" id="seller_type"> <option value="brand" {if $product->seller_type == 'brand'}selected="selected"{/if} >{l s='Brand'}</option> <option value="official store" {if $product->seller_type == 'official store'}selected="selected"{/if} >{l s='Official store'}</option> <option value="store" {if $product->seller_type == 'store'}selected="selected"{/if}>{l s='Store'}</option> <option value="professional seller" {if $product->seller_type == 'professional seller'}selected="selected"{/if} >{l s='Professional seller'}</option> <option value="private seller" {if $product->seller_type == 'private seller'}selected="selected"{/if} >{l s='Private seller'}</option> </select> </div> </div> 5. Finally modify the THEME product.tpl (to show the result on my shop) {capture name=seller_type} {if $product->seller_type == 'brand'}{l s='Brand'} {elseif $product->seller_type == 'official store'}{l s='Official store'} {elseif $product->seller_type == 'store'}{l s='Store'} {elseif $product->seller_type == 'professional seller'}{l s='Professional seller'} {elseif $product->seller_type == 'private seller'}{l s='Private seller'} {/if} {/capture} <p id="product_condition"{if !$product->seller_type} style="display: none;"{/if}> <label>{l s='Seller type'}: </label> <span class="editable" itemprop="seller_type">{$smarty.capture.seller_type}</span> </p> Really need your help with this. Thank you, Alex.
-
Bonjour, Je me heurte a probleme sans trouver reponse forum prestashop 1.6.0.9 Impossible de creer compte client en FO, message erreur "technical error impossible to launch form" mais possible de creer commande "invité" Je ne trouve rien en forum malgre recherches, pourriez vous svp me donner un petit coup de main merci par avance url: www.maquillagetendance.com
-
Bonjour, Je débute dans la programmation donc je vous prie d'être indulgent dans vos propos Merci par avance. J'essaie actuellement de coder un petit module pour le site d'un camarade. J'ai inséré plusieurs scripts dans mon .tpl à l'aide de cette syntaxe Ex : <script type="text/javascript" src="js/jquery.js"></script> Or ils n'ont pas l'air de fonctionner... Pourriez vous me dire quelle syntaxe est à utiliser ?? Merci pour vos réponses ! Cordialement
-
[RESOLU]Impossible de créer un compte client
pouc posted a topic in PrestaShop pour les développeurs
Bonjour, mon problème est le suivant, je suis dans l'impossibilité de créer un compte client et le message suivant apparait :"Une erreur s'est produite pendant la création de l'objet. customer ()". Quelqu'un saurait d’où ça pourrait venir? Merci Baptiste- 1 reply
-
- impossible
- compte client
-
(and 1 more)
Tagged with: