Exemple #1
0
 /**
  * Get messages
  *
  * @return array
  */
 public static function getMessages()
 {
     return parent::getMessages() + array('RELATED-PRODUCT-SKU-FMT' => 'Product with SKU "{{value}}" does not exist and relation will not be created');
 }
Exemple #2
0
 /**
  * Define columns
  *
  * @return array
  */
 protected function defineColumns()
 {
     $columns = parent::defineColumns();
     $columns['wholesalePrices'] = array(static::COLUMN_IS_MULTIPLE => true);
     return $columns;
 }
Exemple #3
0
 /**
  * Define columns
  *
  * @return array
  */
 protected function defineColumns()
 {
     $columns = parent::defineColumns();
     $columns['attachmentsPrivate'] = array(static::COLUMN_IS_MULTIPLE => true);
     return $columns;
 }
 /**
  * Define columns
  *
  * @return array
  */
 protected function defineColumns()
 {
     $columns = parent::defineColumns();
     $columns[static::VARIANT_PREFIX . 'WholesalePrices'] = array(static::COLUMN_IS_MULTIPLE => true, static::COLUMN_IS_MULTIROW => true);
     return $columns;
 }
Exemple #5
0
 /**
  * Get messages
  *
  * @return array
  */
 public static function getMessages()
 {
     return parent::getMessages() + array('PRODUCT-SALE-FMT' => 'Wrong sale format');
 }
Exemple #6
0
 /**
  * Get messages
  *
  * @return array
  */
 public static function getMessages()
 {
     return parent::getMessages() + array('PRODUCT-ATTACH-FMT' => 'The "{{value}}" file is not created');
 }
Exemple #7
0
 /**
  * Import 'stock level' value
  *
  * @param \XLite\Model\Product $model  Product
  * @param mixed                $value  Value
  * @param array                $column Column info
  *
  * @return void
  */
 protected function importStockLevelColumn(\XLite\Model\Product $model, $value, array $column)
 {
     if (!$this->hasManualPinCodes()) {
         parent::importStockLevelColumn($model, $value, $column);
     }
 }
Exemple #8
0
 /**
  * Get messages
  *
  * @return array
  */
 public static function getMessages()
 {
     return parent::getMessages() + array('USER-USE-OG-META-FMT' => 'Wrong format of UseCustomOpenGraphMeta value');
 }
Exemple #9
0
 /**
  * Import 'attributes' value
  *
  * @param \XLite\Model\Product $model  Product
  * @param array                $value  Value
  * @param array                $column Column info
  *
  * @return void
  */
 protected function importAttributesColumn(\XLite\Model\Product $model, array $value, array $column)
 {
     parent::importAttributesColumn($model, $value, $column);
     if ($this->multAttributes) {
         \XLite\Core\Database::getEM()->flush();
         $variantsAttributes = array();
         foreach ($this->multAttributes as $id => $values) {
             foreach ($values as $k => $v) {
                 if (1 === count($v)) {
                     $variantsAttributes[$k][$id] = array_shift($v);
                 } else {
                     unset($this->multAttributes[$id]);
                     break;
                 }
             }
         }
         if ($variantsAttributes) {
             $tmp = array();
             foreach ($variantsAttributes as $k => $v) {
                 $tmp[$k] = implode('::', $v);
             }
             if (count($tmp) === count($variantsAttributes)) {
                 foreach ($variantsAttributes as $rowIndex => $values) {
                     foreach ($values as $id => $value) {
                         if (!isset($this->variantsAttributes[$id])) {
                             $this->variantsAttributes[$id] = \XLite\Core\Database::getRepo('XLite\\Model\\Attribute')->find($id);
                         }
                         $attribute = $this->variantsAttributes[$id];
                         $repo = \XLite\Core\Database::getRepo($attribute->getAttributeValueClass($attribute->getType()));
                         if ($attribute::TYPE_CHECKBOX == $attribute->getType()) {
                             $values[$id] = $repo->findOneBy(array('attribute' => $attribute, 'product' => $model, 'value' => $this->normalizeValueAsBoolean($value)));
                         } else {
                             $attributeOption = \XLite\Core\Database::getRepo('XLite\\Model\\AttributeOption')->findOneByNameAndAttribute($value, $attribute);
                             $values[$id] = $repo->findOneBy(array('attribute' => $attribute, 'product' => $model, 'attribute_option' => $attributeOption));
                         }
                     }
                     $variant = $model->getVariantByAttributeValues($values);
                     if (!$variant) {
                         $variant = new \XLite\Module\XC\ProductVariants\Model\ProductVariant();
                         foreach ($values as $attributeValue) {
                             $method = 'addAttributeValue' . $attributeValue->getAttribute()->getType();
                             $variant->{$method}($attributeValue);
                             $attributeValue->addVariants($variant);
                         }
                         $variant->setProduct($model);
                         $model->addVariants($variant);
                         \XLite\Core\Database::getEM()->persist($variant);
                     }
                     $this->variants[$rowIndex] = $variant;
                 }
             }
             foreach ($model->getVariantsAttributes() as $va) {
                 $model->getVariantsAttributes()->removeElement($va);
                 $va->getVariantsProducts()->removeElement($model);
             }
             foreach ($this->variantsAttributes as $va) {
                 $model->addVariantsAttributes($va);
                 $va->addVariantsProducts($model);
             }
         }
         $model->assignDefaultVariant();
     }
 }
Exemple #10
0
 /**
  * Get messages
  *
  * @return array
  */
 public static function getMessages()
 {
     return parent::getMessages() + array('PRODUCT-FREE-SHIPPING-FMT' => 'Wrong free shipping format', 'PRODUCT-FREIGHT-FIXED-FEE-FMT' => 'Wrong freight fixed fee format');
 }