Jump to content

Ebay Syncronisierung Größe


Recommended Posts

Achja, wäre ja auch schön, wenn an diesem einst si hoch gepriesenen eBay Modul bzw. der hochgradig hervorgehobenen Kooperation eBay <> Prestashop mal etwas funktionieren würde.

 

Ich habe jetzt 100 neue Artikel eingestellt. Leggings und Tops hauptsächlich.

 

Alle Artikel haben 3 Bilder, Eine Eigenschaft "Größe" und "Marke" sowie eine Beschreibung und Artikelnamen und alles was man sonst so braucht. 

 

Im Modul selbst ist bei "Leggings" u.A. von eBay eine "Hosengröße" verlangt. Diesem Wert habe ich "Größe" zugewiesen, weil dieser Wert bei den Artikel die Größe des Artikels enthält.

 

Dann wollte ich die neuen Artikel Synchronisieren ABER....ja, was aber. Aber das Modul hat nur 3 Leggings und 4 Tops Synchronisiert.....Alle Artikel sind jedoch identisch. Nur die Inhalte ändern sich. Nicht jedoch die Bezeichnungen der Felder.

 

Tja, der Rest ist unter einer Fehlermeldung aufgelistet:

Das Artikelmerkmal Größe fehlt. Fügen Sie diesem Angebot Größe hinzu, geben Sie einen gültigen Wert ein und versuchen Sie es dann erneut.
Das Artikelmerkmal Größe fehlt.

Ähnliches Problem wie einst EAN. Naja nicht ganz. Denn hier gibt es für mich absolut keinen Ansatz wie ich da eine Lösung hervorrufen kann.

 

In der Log bei einem der Artikel die nicht Übertragen wurden stehen bei den Eigenschaften nur diese Werte:

		<PrimaryCategory>
			<CategoryID>53159</CategoryID>
		</PrimaryCategory>
		<ConditionID>1000</ConditionID>
					<StartPrice>26.95</StartPrice>
				<CategoryMappingAllowed>true</CategoryMappingAllowed>
		<Country>DE</Country>
		<Currency>EUR</Currency>
		<DispatchTimeMax>1</DispatchTimeMax>
		<ListingDuration>Days_30</ListingDuration>
		<ListingType>FixedPriceItem</ListingType>
		<PaymentMethods>PayPal</PaymentMethods>
		<PayPalEmailAddress>xxxxxxxxxxxxxx</PayPalEmailAddress>
		<PostalCode>1xxxx</PostalCode>
					<Quantity>1</Quantity>
				<ItemSpecifics>
							<NameValueList>
					<Name><![CDATA[Anlass]]></Name>
					<Value><![CDATA[Freizeit]]></Value>
				</NameValueList>
							<NameValueList>
					<Name><![CDATA[Marke]]></Name>
					<Value><![CDATA[TOOFAST]]></Value>
				</NameValueList>
					</ItemSpecifics>

Marke ist ja drinnen, aber Größe Fehlt gänzlich....was merkwürdig ist, weil es ja Artikel gibt, die Synchronisiert wurden...der gleiche Artikel mit anderem Namen. Mit genau den gleichen inhalten und Feldnamen... AHHHHH ...

 

Aber was besonders interessant ist, ist die Tatsache das ich dieses Merkmal:

							<NameValueList>
					<Name><![CDATA[Anlass]]></Name>
					<Value><![CDATA[Freizeit]]></Value>
				</NameValueList> 

Also "Anlass" gar nicht gesetzt habe....trotzdem ist es jetzt da. Verrückt....

 

 

In der "AddFixedPriceItem.tpl" steht eigentlich alles richtig drinnen:

		<ItemSpecifics>
			{foreach from=$item_specifics key=name item=value}
				<NameValueList>
					<Name><![CDATA[{$name}]]></Name>
					<Value><![CDATA[{$value}]]></Value>
				</NameValueList>
			{/foreach}
		</ItemSpecifics>

Könnte man jetzt nur mal schauen, wo die "$item_specifics" zusammengesetzt wird. Aber auch hier wundert es mich, dass es bei einigen Artikel geklappt hat und somit eigentlich es ausgeschlossen sein müsste das der Code Fehler enthält sondern beim parsen etwas schief geht....

 

In der "loadItemsSpecifixsAndConditions.php" wird alles zusammen gesetzt:

$item_specifics = $category->getItemsSpecifics();
$item_specifics_ids = array_map('loadItemsMap', $item_specifics);

if (count($item_specifics_ids))
{
	$sql = 'SELECT `id_ebay_category_specific_value` as id, `id_ebay_category_specific` as specific_id, `value`
		FROM `'._DB_PREFIX_.'ebay_category_specific_value`
		WHERE `id_ebay_category_specific` in ('.implode(',', $item_specifics_ids).')';
	
	$item_specifics_values = DB::getInstance()->executeS($sql);
}
else
	$item_specifics_values = array();

foreach ($item_specifics as &$item_specific)
	foreach ($item_specifics_values as $value)
		if ($item_specific['id'] == $value['specific_id'])
			$item_specific['values'][$value['id']] = Tools::safeOutput($value['value']);

echo Tools::jsonEncode(array(
	'specifics' => $item_specifics,
	'conditions' => $category->getConditionsWithConfiguration($id_ebay_profile),
	'is_multi_sku' => $category->isMultiSku()
));

Dann bleibt nur noch die EbaySynchronizer.php ab Zeile 979

	private static function _getProductItemSpecifics($ebay_category, $product, $id_lang)
	{
		$item_specifics = $ebay_category->getItemsSpecificValues();
		$item_specifics_pairs = array();

		foreach ($item_specifics as $item_specific)
		{
			$value = null;
			if ($item_specific['id_feature'])
				$value = EbaySynchronizer::_getFeatureValue($product->id, $item_specific['id_feature'], $id_lang);
			elseif ($item_specific['is_brand'])
				$value = $product->manufacturer_name;
			else
				$value = $item_specific['specific_value'];

			if ($value)
				$item_specifics_pairs[$item_specific['name']] = $value;
		}

		return $item_specifics_pairs;
	}

Sieht für mich alles gut aus. Also muss es ja was mit der DB zu tun haben.

post-1091593-0-73978400-1448497296_thumb.png

 

Wie man da sieht, steht ein Wert bei "Analss" bereits drinnen. Nämlich "20553".

 

Guck ich in der "ps_ebay_category_specific_value" nach "20553" finde ich eine Referenz zur "197" also "Anlass" mit dem Wert "Freizeit:

post-1091593-0-94311700-1448497415_thumb.png

 

Das erklärt, wieso der Wert immer gesetzt ist in der Log. Nicht aber wieso er dann bei eBay in den Merkmalen nicht erscheint......

 

ein Manuelles Referenzieren der Hosengröße auf die Größe des Werts hat keinen Erfolg gebracht :S Oder ich habe es falsch gemacht.

 

 

Ich hoffe jemanden von euch fällt etwas ein.

 

Prestashop 1.6.1.1

eBay v1.11.0

 

 

Doe Log ergibt keine Nützlichen Informationen :7

 

btw.:

Die Log könnte auch automatisiert mal gelöscht werden....die ist 400 MB groß und ziemlich unhandlich geworden...

Edited by Lausli (see edit history)
Link to comment
Share on other sites

Lösung:

Warum auch immer, wird im eBay Modul bei den Artikelmerkmalen zwei mal "Größe" aufgelistet...In meinen Artikeleigenschaften habe ich es aber nur einmal.

 

Ich habe jetzt ein anderes "Größe" gewählt und die Artikel wurden eingestellt.

 

Frage mich aber wo diese zwei "Größe" herkommen damit ich es löschen kann.

 

Kann es sein, das "Größe" schon ein default Merkmal ist, welches immer da ist ohne das man es als Eigenschaft anlegt oder so?

 

DAU..ich habe einmal "Größe" als Artikeleigenschaft und einmal als Artikelvariante...

Naja, Spaß ist, wenn man trotzdem lacht :S ;)

 

Muss man erstmal wissen was was ist.

Edited by Lausli (see edit history)
Link to comment
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
×
×
  • Create New...