Scriu un modul de migrare personalizat dintr-un sistem vechi. Am toate comenzile și articolele mele în curs de migrare, dar commerce_order__order_items
tabelul nu este populat.
Migrarea comenzilor mele:
id: my_order_data
etichetă: Comenzile mele
migration_group: grupul meu
migration_tags:
- Kentico
- Comenzi
sursă:
plugin: csv
ID-uri: [ID comandă]
cale: „public://import/program/orders.data.csv”
header_row_count: 1
proces:
order_number: OrderInvoiceNumber
tip:
plugin: static_map
sursa: tip
default_value: implicit
Hartă:
commerce_order: implicit
uid:
-
plugin: migration_lookup
migrare: my_user_data
sursa: OrderCreatedByUserID
no_stub: adevărat
-
plugin: default_value
valoare_default: 0
strict: adevărat
-
plugin: entity_exists
entity_type: utilizator
-
plugin: default_value
valoare_default: 0
stat:
plugin: default_value
default_value: finalizat
creată:
plugin: callback
sursa: OrderDate
apelabil: strtotime
schimbat:
plugin: callback
sursa: OrderLastModified
apelabil: strtotime
plasat:
plugin: callback
sursa: OrderDate
apelabil: strtotime
efectuat:
plugin: callback
sursa: OrderDate
apelabil: strtotime
mail: CustomerEmail
store_id:
plugin: default_value
valoare_default: 1
billing_profile_data:
-
plugin: migration_lookup
migrare: my_profile_data
sursa: OrderBillingAddressID
no_stub: adevărat
billing_profile/target_id:
-
plugin: skip_on_empty
metoda: proces
sursa: „@billing_profile_data”
-
plugin: extrage
index: [0]
billing_profile/target_revision_id:
-
plugin: skip_on_empty
metoda: proces
sursa: „@billing_profile_data”
-
plugin: extrage
index: [0]
total_price/number: OrderTotalNumber
preț_total/cod_valută:
plugin: default_value
default_value: „USD”
total_paid/number: OrderTotalNumber
total_paid/currency_code:
plugin: default_value
default_value: „USD”
ajustari:
plugin: my_order_adjustment_shipping
destinaţie:
plugin: entity:commerce_order
module_destinație: comandă_comerț
dependențe_migrație:
necesar:
- my_user_data
- datele_profilului_meu
dependențe:
aplicat:
modul:
- migrația_mea
Articolele comandate:
id: my_order_item_data
etichetă: articolele comandate
migration_group: grupul meu
migration_tags:
- Kentico
- Comenzi
- articole
sursă:
plugin: csv
ID-uri: [OrderItemID]
cale: „public://import/program/order-items.data.csv”
header_row_count: 1
proces:
tip:
plugin: default_value
default_value: „implicit”
Comanda ID:
-
plugin: migration_lookup
migrare: my_order_data
sursa: OrderItemOrderID
no_stub: adevărat
-
plugin: default_value
valoare_default: 0
strict: adevărat
-
plugin: entity_exists
entity_type: commerce_order
-
plugin: default_value
valoare_default: 0
buyed_entity:
bar:
plugin: static_map
sursa: OrderItemSKUID
Hartă:
377: 67
378: 66
...
valoare_default: 0
titlu: OrderItemSKUName
cantitate: OrderItemUnitCount
unit_price/number: OrderItemUnitPrice
unit_price/currency_code:
plugin: default_value
default_value: „USD”
total_price/number: OrderItemTotalPriceInMainCurrency
preț_total/cod_valută:
plugin: default_value
default_value: „USD”
creată:
plugin: callback
sursa: OrderItemLastModified
apelabil: strtotime
schimbat:
plugin: callback
sursa: OrderItemLastModified
apelabil: strtotime
uses_legacy_adjustments:
plugin: default_value
default_value: fals
destinaţie:
plugin: entity:commerce_order_item
module_destinație: comandă_comerț
dependențe_migrație:
necesar:
- datele_comenzii_mea
dependențe:
aplicat:
modul:
- migrația_mea
Am încercat să caut funcții personalizate de proces, dar mă tem că nu știu de unde să încep cu adevărat. Modulul de migrare a comerțului nu este foarte util cu exemplul său CSV.