Pregunta

Tengo 4 métodos de envío.

El viejo cliente obtiene sólo 2 métodos. He creado el mismo cliente de correo electrónico con otro. Se pone todos los métodos de envío 4.

Me sumergió en código y tabla de DB sales_flat_quote_shipping_rate .

Clasificar por address_id tenemos: para el viejo cliente: 2 registros de tasa; para el mismo nuevo cliente:. 4 registros de tipos

¿Por qué sucede? y donde se registro la tasa creada?

ACTUALIZACIÓN 1:

I no depende de la dirección. Depende de producto. Si el producto ha llenado de peso, entonces los clientes no pueden ver algunos de los métodos de envío. Ahora la pregunta es ¿por qué?)

¿Fue útil?

Solución

La razón estaba en función de la clase proccessAdditionalValidation Mage_Shipping_Model_Carrier_Abstract:

    /**
         * Processing additional validation to check is carrier applicable.
         *
         * @param Mage_Shipping_Model_Rate_Request $request
         * @return Mage_Shipping_Model_Carrier_Abstract|Mage_Shipping_Model_Rate_Result_Error|boolean
         */
        public function proccessAdditionalValidation(Mage_Shipping_Model_Rate_Request $request)
        {
            $maxAllowedWeight = (float) $this->getConfigData('max_package_weight');
            $error = null;
            $showMethod = $this->getConfigData('showmethod');
            foreach ($request->getAllItems() as $item) {
                if ($item->getProduct() && $item->getProduct()->getId()) {

// here I got true

                    if ($item->getProduct()->getWeight() > $maxAllowedWeight) {                         $error = Mage::getModel('shipping/rate_result_error');
                        $error->setCarrier($this->_code)
                            ->setCarrierTitle($this->getConfigData('title'));
                        $errorMsg = $this->getConfigData('specificerrmsg');
                        $error->setErrorMessage($errorMsg?$errorMsg:Mage::helper('shipping')->__('The shipping module is not available.'));
                        break;
                    }
                }
            }
            if (null !== $error && $showMethod) {
                return $error;
            } elseif (null !== $error) {
                return false;
            }
            return $this;
        }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top