Jump to content

Πρόβλημα κατά την εισαγωγή προϊόντων με csv


tekniksinc
 Share

Recommended Posts

Έχει μερικές μέρες που τραβάω δεδομένα σε xml από ένα api, τα μετατρέπω σε csv και τα εισάγω σε ένα eshop που δουλεύω σε 1.6.

Σήμερα τράβηξα δεδομένα από μία κατηγορία προϊόντων του API, έκανα κανονικά τη μετατροπή, πέρασα το αρχείο και με πέθανε στα errors.

Για να βρω τι φταίει πήρα μόνο ένα προϊόν και προσπαθώ να βρω τι πρόβλημα έχει αυτό.

Σας επισυνάπτω το αρχείο σε xml kai se csv.

 

Όταν πάω να το περάσω επιλέγοντας την αντιστοιχία κατηγοριών που θέλω σε όσα πεδία του αρχείου θέλω να χρησιμοποιήσω (κάνω παράληψη των υπόλοιπων στηλών), μου πετάει το 

  1. ΦΙΛΤΡΑ ΑΕΡΟΣ MEIWA - H1230 (HFA1007) VISION50-110 4T (ID: No ID) δεν μπορεί να αποθηκευτεί

Τι ζόρι τραβάει με το όνομα; Βάζω να αποθηκεύσει το Description σαν Όνομα προϊόντος, κάτι που μου δούλευε με τις άλλες κατηγορίες.

testfiltro.xml

testfiltro.csv

Share this post


Link to post
Share on other sites

Τελικά αφού αφαίρεσα όλα τα πεδία από το xml και άρχισα να τα περνάω ένα ένα, είδα ότι κόλλησε στο κείμενο της περιγραφής. Εγώ ήθελα να μπαίνει στη Σύντομη περιγραφή και ο χώρος που δίνει είναι μικρότερος από όσο το κείμενο που έμπαινε. Και έτσι σκάλωνε χωρίς όμως να πετάει το σωστό μήνυμα.

Άλλαξα το πεδίο της εισαγωγής σε Περιγραφή και μπήκαν όλα τα προϊόντα χωρίς πρόβλημα.

Share this post


Link to post
Share on other sites

Εδώ μπορείς να δεις τι είναι το κάθε πεδίο που αφορά το product (από το web service σε 1.7 )

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<product>
	<id_manufacturer format="isUnsignedId"></id_manufacturer>
	<id_supplier format="isUnsignedId"></id_supplier>
	<id_category_default format="isUnsignedId"></id_category_default>
	<new></new>
	<cache_default_attribute></cache_default_attribute>
	<id_default_image notFilterable="true"></id_default_image>
	<id_default_combination notFilterable="true"></id_default_combination>
	<id_tax_rules_group format="isUnsignedId"></id_tax_rules_group>
	<position_in_category notFilterable="true"></position_in_category>
	<manufacturer_name notFilterable="true" read_only="true" readOnly="true"></manufacturer_name>
	<quantity notFilterable="true" read_only="true" readOnly="true"></quantity>
	<type notFilterable="true"></type>
	<id_shop_default format="isUnsignedId"></id_shop_default>
	<reference maxSize="32" format="isReference"></reference>
	<supplier_reference maxSize="32" format="isReference"></supplier_reference>
	<location maxSize="64" format="isReference"></location>
	<width format="isUnsignedFloat"></width>
	<height format="isUnsignedFloat"></height>
	<depth format="isUnsignedFloat"></depth>
	<weight format="isUnsignedFloat"></weight>
	<quantity_discount format="isBool"></quantity_discount>
	<ean13 maxSize="13" format="isEan13"></ean13>
	<isbn maxSize="32" format="isIsbn"></isbn>
	<upc maxSize="12" format="isUpc"></upc>
	<cache_is_pack format="isBool"></cache_is_pack>
	<cache_has_attachments format="isBool"></cache_has_attachments>
	<is_virtual format="isBool"></is_virtual>
	<state format="isUnsignedId"></state>
	<additional_delivery_times format="isUnsignedId"></additional_delivery_times>
	<delivery_in_stock maxSize="255" format="isGenericName"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></delivery_in_stock>
	<delivery_out_stock maxSize="255" format="isGenericName"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></delivery_out_stock>
	<on_sale format="isBool"></on_sale>
	<online_only format="isBool"></online_only>
	<ecotax format="isPrice"></ecotax>
	<minimal_quantity format="isUnsignedInt"></minimal_quantity>
	<low_stock_threshold format="isInt"></low_stock_threshold>
	<low_stock_alert format="isBool"></low_stock_alert>
	<price required="true" format="isPrice"></price>
	<wholesale_price format="isPrice"></wholesale_price>
	<unity format="isString"></unity>
	<unit_price_ratio></unit_price_ratio>
	<additional_shipping_cost format="isPrice"></additional_shipping_cost>
	<customizable format="isUnsignedInt"></customizable>
	<text_fields format="isUnsignedInt"></text_fields>
	<uploadable_files format="isUnsignedInt"></uploadable_files>
	<active format="isBool"></active>
	<redirect_type format="isString"></redirect_type>
	<id_type_redirected format="isUnsignedId"></id_type_redirected>
	<available_for_order format="isBool"></available_for_order>
	<available_date format="isDateFormat"></available_date>
	<show_condition format="isBool"></show_condition>
	<condition format="isGenericName"></condition>
	<show_price format="isBool"></show_price>
	<indexed format="isBool"></indexed>
	<visibility format="isProductVisibility"></visibility>
	<advanced_stock_management format="isBool"></advanced_stock_management>
	<date_add format="isDate"></date_add>
	<date_upd format="isDate"></date_upd>
	<pack_stock_type format="isUnsignedInt"></pack_stock_type>
	<meta_description maxSize="255" format="isGenericName"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></meta_description>
	<meta_keywords maxSize="255" format="isGenericName"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></meta_keywords>
	<meta_title maxSize="128" format="isGenericName"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></meta_title>
	<link_rewrite maxSize="128" format="isLinkRewrite"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></link_rewrite>
	<name maxSize="128" format="isCatalogName"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></name>
	<description format="isCleanHtml"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></description>
	<description_short format="isCleanHtml"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></description_short>
	<available_now maxSize="255" format="isGenericName"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></available_now>
	<available_later maxSize="255" format="IsGenericName"><language id="1" xlink:href="https://example.gr/api/languages/1" format="isUnsignedId" ></language><language id="2" xlink:href="https://example.gr/api/languages/2" format="isUnsignedId" ></language></available_later>
<associations>
<categories nodeType="category" api="categories">
	<category>
	<id required="true"></id>
	</category>
</categories>
<images nodeType="image" api="images">
	<image>
	<id></id>
	</image>
</images>
<combinations nodeType="combination" api="combinations">
	<combination>
	<id required="true"></id>
	</combination>
</combinations>
<product_option_values nodeType="product_option_value" api="product_option_values">
	<product_option_value>
	<id required="true"></id>
	</product_option_value>
</product_option_values>
<product_features nodeType="product_feature" api="product_features">
	<product_feature>
	<id required="true"></id>
	<id_feature_value xlink:href="https://example.gr/api/product_feature_values/" required="true"></id_feature_value>
	</product_feature>
</product_features>
<tags nodeType="tag" api="tags">
	<tag>
	<id required="true"></id>
	</tag>
</tags>
<stock_availables nodeType="stock_available" api="stock_availables">
	<stock_available>
	<id required="true"></id>
	<id_product_attribute required="true"></id_product_attribute>
	</stock_available>
</stock_availables>
<accessories nodeType="product" api="products">
	<product>
	<id xlink:href="https://example.gr/api/product/" required="true"></id>
	</product>
</accessories>
<product_bundle nodeType="product" api="products">
	<product>
	<id required="true"></id>
	<quantity></quantity>
	</product>
</product_bundle>
</associations>
</product>
</prestashop>

Και εδώ μπορείς να δεις το regular expression για το validation για κάθε πεδίο .

https://github.com/pal/prestashop/blob/master/classes/Validate.php

Αν ακολουθείς τα δύο παραπάνω δεν θα χτυπάει ποτέ.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More