Score:0

Commerce Stores สามารถนำเข้าด้วย Feeds ได้อย่างไร?

ธง cn

ฉันกำลังพยายามตั้งค่าฟีดเพื่อนำเข้าเอนทิตีของร้านค้า Commerce

ฉันติดตั้งโมดูล Feeds และ ฟีดการค้า โมดูล.

จากนั้นฉันสร้างฟีดไฟล์ CSV ด้วยการแมปต่อไปนี้:

  • Name: ชื่อร้าน
  • อีเมล: จัดเก็บการแจ้งเตือนทางอีเมล
  • สกุลเงิน: สกุลเงินเริ่มต้น
  • เขตเวลา: เขตเวลาของร้านค้า

อย่างไรก็ตาม เมื่อฉันพยายามนำเข้าฟีด ฉันได้รับข้อผิดพลาด:

ที่อยู่ (ที่อยู่): ค่านี้ไม่ควรเป็นค่าว่าง กรุณาตรวจสอบของคุณ การทำแผนที่

สิ่งนี้สมเหตุสมผลเพราะฉันไม่ได้ตั้งค่าการแมปสำหรับที่อยู่

อย่างไรก็ตาม ในการแมป ฉันไม่เห็นตัวเลือกใดๆ สำหรับที่อยู่:

ตัวเลือกการนำเข้าที่เก็บฟีด

ฟีดรองรับฟิลด์ที่อยู่ฉันต้องทำอย่างไรเพื่อตั้งค่าฟิลด์ที่อยู่เอนทิตีของร้านค้า

No Sssweat avatar
ua flag
ฟีดการค้าระบุไว้ในคำอธิบายว่า [สำหรับผลิตภัณฑ์](https://git.drupalcode.org/project/commerce_feeds/-/blob/8.x-1.x/commerce_feeds.info.yml#L3) และ ไม่กล่าวถึงร้านค้า การรวมช่องที่อยู่ฟีดทำได้ผ่าน [โมดูลช่องที่อยู่](https://www.drupal.org/project/address/issues/2882589) ดังนั้นคุณจะต้องดูที่โค้ดของโมดูลฟิลด์ฟีดและที่อยู่เพื่อลองค้นหาว่าปัญหาอยู่ที่ใด ตรวจสอบอีกครั้งว่าแบบฟอร์มร้านค้าโมดูลการค้าใช้โมดูลช่องที่อยู่จริง
No Sssweat avatar
ua flag
อีกทางเลือกหนึ่งที่คุณสามารถพิจารณาได้คือการใช้การโยกย้ายของ Drupal core https://drupal.stackexchange.com/questions/208908/migrate-address-field
cn flag
@NoSssweat ขอบคุณ ดูเหมือนว่าฟิลด์ที่อยู่เพิ่มไปยังร้านค้านั้นไม่ได้มาตรฐาน (เช่น ไม่ปรากฏใน UI ของฟิลด์) ดังนั้นฉันจึงพยายามหาว่ามันเป็นไปได้หรือไม่ที่จะปฏิบัติเหมือนฟิลด์ที่อยู่ทั่วไป
Score:0
ธง cn

ปัจจุบันยังไม่รองรับการนำเข้าร้านค้าด้วย Feeds หรือ Commerce Feeds ฉันทำ คำขอฟีเจอร์ในคิวปัญหา Commerce Feeds

ในระหว่างนี้ ฉันได้ตั้งค่าประเภทฟีดสำหรับการนำเข้าร้านค้า Commerce ที่ใช้การแมปสำหรับทุกฟิลด์ยกเว้นที่อยู่ (เนื่องจากไม่มีการสนับสนุนสำหรับที่อยู่)

ฉันต้องการอัปเดตร้านค้าของฉัน ดังนั้นฉันจึงใช้ฟีดนี้เพื่ออัปเดตร้านค้า แต่การสร้างเอนทิตีร้านค้าด้วยตนเองใน hook_module_update() ดังที่แสดงด้านล่าง

ใช้ \Drupal\commerce_store\Entity\Store;

MYMODULE_update_9001() {
  // ค่าที่อยู่เริ่มต้นที่จะใช้
  $address_default = [
    'country_code' => 'JP',
    'administrative_area' => 'โตเกียว',
    'locality' => 'สถานที่',
    'postal_code' => '111-1111',
    'address_line1' => 'สถานที่',
    'address_line2' => 'ที่ไหนสักแห่ง',
  ];

  // ค้นหา ID สำหรับประเภทฟีดของร้านค้าที่เราต้องการใช้เพื่ออัปเดตร้านค้านี้
  $store_feed_id_query = 
 \Drupal::entityQuery('feeds_feed')
    ->เงื่อนไข ('ประเภท', 'store_feed_type_machine_name');
  $store_feed_result = $store_feed_id_query->ดำเนินการ ();
  $store_feed_id = 0;
  ถ้า (isset($store_feed_result)) {
    // จำเป็นต้องทำซ้ำผ่านผลลัพธ์; ควรมีเพียงผลลัพธ์เดียว แต่ถ้ามีหลายรายการ ให้เลือกผลลัพธ์ล่าสุด
    แต่ละรายการ ($store_feed_result เป็น $only_result) {
      $store_feed_id = $only_result;
    }
  }
  ถ้า ($store_feed_id > 0) {
    $store = ร้านค้า::สร้าง([
      'type' => 'store_type_machine_name',
      'name' => 'ร้านสุดเจ๋งของฉัน',
      'เมล' => '[email protected]',
      'default_currency' => 'เยน',
      'ที่อยู่' => $address_default,
      'เขตเวลา' => 'เอเชีย/โตเกียว',
      'is_default' => 1,
      'path' => '/ร้านค้า',
      'uid' => 2,
    ]);
    $store->feeds_item->target_id = $store_feed_id;
    $store->feeds_item->guid = 'รหัสร้านค้าของฉัน'; // ไม่บังคับ ตั้งค่าเฉพาะเมื่อคุณใช้ GUID เพื่อทำให้ฟีดของคุณไม่ซ้ำใคร
    $store->save();
  } อื่น {
    ส่ง new \Exception("ไม่สามารถรับรหัสฟีดร้านค้า: $store_feed_id");
  }
}

โปรดทราบว่าในการแมปของฉันสำหรับ รายการฟีด ฟิลด์ฉันได้ตั้งค่า คู่มือ เพื่อเป็นค่าเฉพาะ สิ่งนี้ทำให้ฉันสามารถใช้ประเภทฟีดของฉันเพื่ออัปเดตค่าที่เก็บได้ ข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับรายการฟีดโดยทางโปรแกรม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา