public function CSVExportForm::exportProducts in Commerce Smart Importer 8
Export whole product to CSV fromatted.
1 call to CSVExportForm::exportProducts()
- CSVExportForm::putExportedProductsInCsv in src/
Form/ CSVExportForm.php - Writes formated product to CSV file.
File
- src/
Form/ CSVExportForm.php, line 357
Class
- CSVExportForm
- Form for exporting products in CSV format.
Namespace
Drupal\commerce_smart_importer\FormCode
public function exportProducts($start, $limit, $field_definitions, array $field_value) {
$product_data = [];
$config = $this->smartImporterService
->getConfig();
if (empty($field_value)) {
$query = $this->database
->select('commerce_product')
->fields('commerce_product', [
'product_id',
])
->condition('type', $config['commerce_product_bundle'])
->range($start, $limit)
->execute()
->fetchAll();
}
else {
$query = $this->database
->query("SELECT cp.product_id FROM {commerce_product} cp JOIN {commerce_product__" . $field_value[0] . "} tax ON tax.entity_id=cp.product_id WHERE cp.type= '" . $config['commerce_product_bundle'] . "'tax." . $field_value[0] . "_target_id=" . $field_value[1])
->fetchAll();
}
foreach ($query as $product) {
$product_temp_data = [];
$product_temp_data['product'] = $product->product_id;
$variation_query = $this->database
->query('SELECT variation_id FROM {commerce_product_variation_field_data} WHERE product_id=' . $product->product_id)
->fetchAll();
foreach ($variation_query as $variation) {
$product_temp_data['variation'][] = $variation->variation_id;
}
$product_data[] = $product_temp_data;
}
$empty_product = array_fill(0, count($field_definitions['product']), '');
$rows = [];
foreach ($product_data as $product_datum) {
$first = TRUE;
foreach ($product_datum['variation'] as $variation_id) {
if ($first) {
$temp_row = $this->smartImporterService
->exportMultipleFields('commerce_product', $product_datum['product'], $field_definitions['product']);
$first = FALSE;
}
else {
$temp_row = $empty_product;
}
$temp_row = array_merge($temp_row, $this->smartImporterService
->exportMultipleFields('commerce_product_variation', $variation_id, $field_definitions['variation']));
$rows[] = $temp_row;
}
}
return $rows;
}