diff --git a/lang/en/lang.php b/lang/en/lang.php index 53370c9..37723c5 100644 --- a/lang/en/lang.php +++ b/lang/en/lang.php @@ -41,12 +41,18 @@ 'user_defined_id' => 'Reference', 'weight' => 'Weight (g)', 'link' => 'Link to product', + 'admin_link' => 'Edit product', ], 'ux' => [ 'export_button' => 'Export data', 'import_button' => 'Update data', + 'only_variants' => 'Only product variants', + 'only_variants_comment' => 'for products with variants, keep only the variants', 'export_links' => 'Export link to product', + 'export_links_comment' => 'a link to the public product page is added', + 'export_admin_links' => 'Export link to product’s backend', + 'export_admin_links_comment' => 'a link to the edit product page is added', 'return_list' => 'Back to the product list', ], ]; diff --git a/lang/fr/lang.php b/lang/fr/lang.php index 0d1dd23..7f0b955 100644 --- a/lang/fr/lang.php +++ b/lang/fr/lang.php @@ -41,12 +41,18 @@ 'user_defined_id' => 'Référence', 'weight' => 'Poids (g)', 'link' => 'Lien vers le produit', + 'admin_link' => 'Editer le produit', ], 'ux' => [ 'export_button' => 'Exporter les données', 'import_button' => 'Mettre à jour les données', + 'only_variants' => 'Uniquement les variantes', + 'only_variants_comment' => 'pour les produits avec variantes, ne conserver que les variantes', 'export_links' => 'Exporter un lien vers le produit', + 'export_links_comment' => 'un lien vers la page publique du produit est ajouté', + 'export_admin_links' => 'Exporter le lien vers le backend du produit', + 'export_admin_links_comment' => 'un lien vers la page de modification du produit est ajouté', 'return_list' => 'Retourner à la liste des produits', ], diff --git a/models/ProductExport.php b/models/ProductExport.php index b30fc7a..fe450a8 100644 --- a/models/ProductExport.php +++ b/models/ProductExport.php @@ -1,5 +1,6 @@ exportLink) { $columns['link'] = 'hounddd.mallimportexport::lang.columns.link'; } + if ($this->exportAdminLink) { + $columns['admin_link'] = 'hounddd.mallimportexport::lang.columns.admin_link'; + } return $columns; } + public function exportData($columns, $sessionKey = null) { $columns[] = 'additional_prices'; @@ -86,7 +94,9 @@ public function exportData($columns, $sessionKey = null) $products = collect(); $productsWithVariants->each(function ($product, $key) use ($products) { - $products->push($product); + if (! (bool)$this->only_variants || $product->inventory_management_method === 'single') { + $products->push($product); + } if ($product->inventory_management_method === 'variant') { $product->variants->each(function ($item) use ($products) { $products->push($item); @@ -106,6 +116,14 @@ public function exportData($columns, $sessionKey = null) }); } + if ($this->admin_link) { + $this->exportAdminLink = true; + $columns[] = 'admin_link'; + $products = $products->map(function ($product) { + return $this->addAdminLink($product); + }); + } + $products = $products->each(function ($product) use ($columns) { $product->addVisible($columns); }); @@ -156,6 +174,22 @@ protected function addLink($product) return $product; } + /** + * Add admin_link property to product's edit page + * + * @param Product $product + * @return Product + */ + protected function addAdminLink($product) + { + $productId = $product->id; + if ($product instanceof Variant) { + $productId = $product->product->id; + } + $product['admin_link'] = Backend::url('offline/mall/products/update/'. $productId); + return $product; + } + /** * Return formated price without currency symbol * diff --git a/models/product/export_fields.yaml b/models/product/export_fields.yaml index a4971d4..add3d74 100644 --- a/models/product/export_fields.yaml +++ b/models/product/export_fields.yaml @@ -4,7 +4,26 @@ fields: + only_variants: + label: 'hounddd.mallimportexport::lang.ux.only_variants' + comment: 'hounddd.mallimportexport::lang.ux.only_variants_comment' + type: checkbox + span: storm + cssClass: col-md-3 + default: true + link: label: 'hounddd.mallimportexport::lang.ux.export_links' + comment: 'hounddd.mallimportexport::lang.ux.export_links_comment' + type: checkbox + span: storm + cssClass: col-md-3 + default: false + + admin_link: + label: 'hounddd.mallimportexport::lang.ux.export_admin_links' + comment: 'hounddd.mallimportexport::lang.ux.export_admin_links_comment' type: checkbox - default: true \ No newline at end of file + span: storm + cssClass: col-md-3 + default: false \ No newline at end of file