În prezent, nu există suport pentru importarea magazinelor cu Feed-uri sau Commerce Feed-uri. am făcut o cerere de caracteristică în coada de probleme pentru Feeduri de comerț.
Între timp, am configurat un tip de feed pentru importul magazinelor Commerce care utilizează mapări pentru fiecare câmp, cu excepția adresei (pentru că nu există suport pentru adresă).
Vreau să îmi pot actualiza magazinele, așa că acum folosesc acest feed pentru a le actualiza, dar creez manual entitățile magazin în hook_module_update()
așa cum se arată mai jos.
utilizați \Drupal\commerce_store\Entity\Store;
MYMODULE_update_9001() {
// Valoarea implicită a adresei de utilizat.
$address_default = [
'country_code' => 'JP',
'administrative_area' => 'Tokio',
'locality' => 'Loc',
'postal_code' => '111-1111',
'address_line1' => 'Undeva',
'address_line2' => 'Undeva',
];
// Găsiți ID-ul tipului de feed al magazinului pe care dorim să-l folosim pentru a actualiza acest magazin.
$store_feed_id_query =
\Drupal::entityQuery('feeds_feed')
->condition('tip', 'tip_aliment_magazin_nume_maşină');
$store_feed_result = $store_feed_id_query->execute();
$store_feed_id = 0;
dacă (isset($store_feed_result)) {
// Necesitatea de a repeta rezultatele; ar trebui să existe un singur rezultat, dar dacă există mai multe, luați-l pe cel mai recent.
foreach ($store_feed_result ca $only_result) {
$store_feed_id = $numai_rezultat;
}
}
dacă ($store_feed_id > 0) {
$magazin = Store::create([
'type' => 'tip_magazin_nume_mașină',
'name' => 'Magazinul meu minunat',
'mail' => '[email protected]',
'default_currency' => 'JPY',
'adresă' => $address_default,
'timezone' => 'Asia/Tokyo',
'is_default' => 1,
'path' => '/magazin',
'uid' => 2,
]);
$magazin->feeds_item->target_id = $store_feed_id;
$store->feeds_item->guid = 'my-store-id'; // Opțional, setat numai dacă utilizați GUID pentru a face feedul dvs. unic.
$magazin->salvare();
} altfel {
throw new \Exception("Nu s-a putut obține ID-ul feedului magazinului: $store_feed_id");
}
}
Rețineți că în mapările mele pentru Fluxează articolul câmp, am stabilit GUID să fie valoarea unică. Acest lucru îmi permite să folosesc tipul meu de feed pentru a actualiza valorile magazinului. Mai multe informații despre lucrul cu Elementele de feed în mod programatic.