Neu MPN / HAN Nummer nach Woocommerce übertragen

Agentur Wolkenlos

Aktives Mitglied
7. Februar 2017
72
10
Hi @ Interessierte!

Ich hätte gerne gewusst, wie ich die HAN alias MPN Nummer nach Woocommerce übertragen kann? Ich benötige das für Google Shopping Anzeigen, bzw. für meine Rezensionen, bekomme aber auf Teufel komm raus die Nummer nicht übertragen.
Hat hier jemand eine Idee? Ein Drittplugin oder ähnliches? Ich habe Yoast Seo - aber die Felder bleiben leider leer?

Jemand bitte bitte eine Idee?

Vielen DANK!
 
  • Gefällt mir
Reaktionen: JooFlo

Agentur Wolkenlos

Aktives Mitglied
7. Februar 2017
72
10
Leider habe ich noch keine Lösung gefunden. Bisher übertrage ich die alle manuell, aber das muss doch anders gehen?
Wie macht ihr das zurzeit?

Viele liebe Grüße
 

JooFlo

Mitglied
15. Februar 2022
7
2
Hi @ Interessierte!

Ich hätte gerne gewusst, wie ich die HAN alias MPN Nummer nach Woocommerce übertragen kann? Ich benötige das für Google Shopping Anzeigen, bzw. für meine Rezensionen, bekomme aber auf Teufel komm raus die Nummer nicht übertragen.
Hat hier jemand eine Idee? Ein Drittplugin oder ähnliches? Ich habe Yoast Seo - aber die Felder bleiben leider leer?

Jemand bitte bitte eine Idee?

Vielen DANK!
Hi,

nach einiger Recherche habe ich eine Lösung für Ihr Problem gefunden.

Sie können das JTL-Connector-Plugin leicht modifizieren (bitte beachten muss nach jeder Aktualisierung gemacht werden außer es wird gepacht).

Im Pfad des Plugins können Sie die Datei Product.php verändern, damit auch die HAN in das Germanized Plugin und damit auch in Yoast gesetzt wird.

Sie müssen dafür die gesamte updateProductMeta function durch die folgende ersetzen und es funktioniert wunderbar:

Die Datei finden Sie unter : "src/Controllers/Product/Product.php" im Plugin Ordner des JTL-Connectors.


private function updateProductMeta(ProductModel $product, \WC_Product $wcProduct)
{
$parent = $product->getMasterProductId()->getEndpoint();

$wcProduct->set_sku($product->getSku());
$wcProduct->set_parent_id(empty($parent) ? 0 : (int)$parent);
$wcProduct->set_menu_order($product->getSort());
$wcProduct->set_featured($product->getIsTopProduct());
$wcProduct->set_height($product->getHeight());
$wcProduct->set_length($product->getLength());
$wcProduct->set_width($product->getWidth());
$wcProduct->set_weight($product->getShippingWeight());

if (SupportedPlugins::isActive(SupportedPlugins::pLUGIN_WOOCOMMERCE_GERMANIZED)
|| SupportedPlugins::isActive(SupportedPlugins::pLUGIN_WOOCOMMERCE_GERMANIZED2)
|| SupportedPlugins::isActive(SupportedPlugins::pLUGIN_WOOCOMMERCE_GERMANIZEDPRO)) {
$productId = $product->getId()->getEndpoint();
if (Util::useGtinAsEanEnabled()) {
\update_post_meta(
$productId,
'_ts_gtin',
(string)$product->getEan(),
\get_post_meta($productId, '_ts_gtin', true)
);
\update_post_meta(
$productId,
'_ts_mpn',
(string)$product->getManufacturerNumber(),
\get_post_meta($productId, '_ts_mpn', true)
);
} else {
\update_post_meta(
$productId,
'_ts_gtin',
'',
\get_post_meta($productId, '_ts_gtin', true)
);
\update_post_meta(
$productId,
'_ts_mpn',
'',
\get_post_meta($productId, '_ts_mpn', true)
);
}
}

if (SupportedPlugins::isActive(SupportedPlugins::pLUGIN_GERMAN_MARKET)) {
$productId = $product->getId()->getEndpoint();

if (Util::useGtinAsEanEnabled()) {
\update_post_meta(
$productId,
'_gm_gtin',
(string)$product->getEan(),
\get_post_meta($productId, '_gm_gtin', true)
);
} else {
\update_post_meta(
$productId,
'_gm_gtin',
'',
\get_post_meta($productId, '_gm_gtin', true)
);
}
}

if (!is_null($product->getModified())) {
$wcProduct->set_date_modified($product->getModified()->getTimestamp());
}

if (!is_null($product->getTaxClassId()) && !empty($product->getTaxClassId()->getEndpoint())) {
$taxClassName = $product->getTaxClassId()->getEndpoint();
} else {
$taxClassName = $this->database->queryOne(SqlHelper::taxClassByRate($product->getVat())) ?? '';
if (count($product->getTaxRates()) > 0 && !is_null($product->getTaxClassId())) {
$taxClassName = $this->findTaxClassName(...$product->getTaxRates()) ?? $taxClassName;
//$product->getTaxClassId()->setEndpoint($taxClassName === '' ? 'default' : $taxClassName);
}
}

$wcProduct->set_tax_class($taxClassName === 'default' ? '' : $taxClassName);
$wcProduct->save();

$tags = array_map('trim', explode(' ', $product->getKeywords()));
\wp_set_post_terms($wcProduct->get_id(), implode(',', $tags), 'product_tag', false);

$shippingClass = get_term_by(
'id',
\wc_clean($product->getShippingClassId()->getEndpoint()),
'product_shipping_class'
);

if (!empty($shippingClass)) {
\wp_set_object_terms(
$wcProduct->get_id(),
$shippingClass->term_id,
'product_shipping_class',
false
);
}
//Map to Delivery-time
(new ProductDeliveryTime())->pushData($product, $wcProduct);
//Map to Manufacturer
(new ProductManufacturer())->pushData($product);
}
 
  • Ich liebe es
Reaktionen: Agentur Wolkenlos

Agentur Wolkenlos

Aktives Mitglied
7. Februar 2017
72
10
Hi JooFlo!

DANKE Dir, ich habe das erst jetzt gesehen, dass Du Dich auf diesen Beitrag gemeldet hast.
Ich benutze jedoch German Market, kann ich hier den Code einfach auf den Teil umarbeiten der GM betrifft?

Vielen Dank für Deine Mühen!
 

JooFlo

Mitglied
15. Februar 2022
7
2
Hi JooFlo!

DANKE Dir, ich habe das erst jetzt gesehen, dass Du Dich auf diesen Beitrag gemeldet hast.
Ich benutze jedoch German Market, kann ich hier den Code einfach auf den Teil umarbeiten der GM betrifft?

Vielen Dank für Deine Mühen!
Hi,


ja, das dürfte kein Problem sein. Es macht aber auch nichts, wenn du den Code von oben benutzt, da die Attribute, die von anderen Plug-ins sind, einfach ignoriert werden, für den Fall, dass du diese nicht installiert haben solltest.


Liebe Grüße,

JooFlo :)
 

Ähnliche Themen